summaryrefslogtreecommitdiff
path: root/libavformat/rtsp.c
Commit message (Collapse)AuthorAge
* avio: rename url_fopen/fclose -> avio_open/close.Anton Khirnov2011-02-23
| | | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> (cherry picked from commit 22a3212e32b696028e21f00871f3cb48c044029d)
* libavformat: Remove FF_NETERRNO()Martin Storsjö2011-02-23
| | | | | | | | | | | | | | | Map EAGAIN and EINTR from ff_neterrno to the normal AVERROR() error codes. Provide fallback definitions of other errno.h network errors, mapping them to the corresponding winsock errors. This eases catching these error codes in common code, without having to distinguish between FF_NETERRNO(EAGAIN) and AVERROR(EAGAIN). This fixes roundup issue 2614, unbreaking blocking network IO on windows. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> (cherry picked from commit 28c4741a6617a4c1d2490cb13fc70ae4c9c472da)
* avio: avio_ prefixes for get_* functionsAnton Khirnov2011-02-22
| | | | | | | | | | | | | | | In the name of consistency: get_byte -> avio_r8 get_<type> -> avio_r<type> get_buffer -> avio_read get_partial_buffer will be made private later get_strz is left out becase I want to change it later to return something useful. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> (cherry picked from commit b7effd4e8338f6ed5bda630ad7ed0809bf458648)
* avio: move init_put_byte() to a new private header and rename itAnton Khirnov2011-02-20
| | | | | | | | init_put_byte should never be used outside of lavf, since sizeof(AVIOContext) isn't part of public ABI. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> (cherry picked from commit e731b8d8729e75bfb69f5540e6446d6118dac549)
* avio: rename ByteIOContext to AVIOContext.Anton Khirnov2011-02-20
| | | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> (cherry picked from commit ae628ec1fd7f54c102bf9e667a3edd404b9b9128)
* Replace remaining uses of parse_date with av_parse_time.Anton Khirnov2011-02-18
| | | | | Signed-off-by: Mans Rullgard <mans@mansr.com> (cherry picked from commit 9fcae9735e3b97366dcee9ca3c2f6cf4faf6756f)
* rtsp: udp_read_packet returning 0 doesn't mean successMartin Storsjö2011-02-18
| | | | | | | | | If udp_read_packet returns 0, rtsp_st isn't set and we shouldn't treat it as a successfully received packet (which is counted and possibly triggers a RTCP receiver report). This fixes issue 2612. (cherry picked from commit 2c35a6bde95a382e2d48570255deb67a7633fa46)
* rtsp/rdt: Assign the RTSPStream index to AVStream->idMartin Storsjö2011-02-13
| | | | | | | | | | | | | This is used for mapping AVStreams back to their corresponding RTSPStream. Since d9c0510, the RTSPStream pointer isn't stored in AVStream->priv_data any longer, breaking this mapping from AVStreams to RTSPStreams. Also, we don't need to clear the priv_data in rdt cleanup any longer, since it isn't set to duplicate pointers. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> (cherry picked from commit b2dd842d21a0b441bb9f7092357f479beb6b6f69)
* Use avformat_free_context for cleaning up muxersMartin Storsjö2011-02-06
| | | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> (cherry picked from commit b22dbb291d41e9fb038884bcebad2394c501cbaf)
* libavformat: Use avcodec_copy_context for chained muxersMartin Storsjö2011-02-06
| | | | | | | | | | | | | | This avoids having the chained AVStream->codec point to the same AVCodecContext owned by the outer AVStream. The downside is that changes to the AVCodecContext made after calling av_write_header cannot be detected automatically within the chained muxer. This avoids having to manually unlink the chained AVStream->codec by setting it to null before freeing the chained muxer via generic freeing functions. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> (cherry picked from commit 1338dc082354b87c0e26f7f2ab09df5964b7f993)
* Free AVStream->info in chained muxersMartin Storsjö2011-02-04
| | | | | | | | This fixes memory leaks in the RTSP muxer and RTP hinting in the mov muxer present since SVN rev 25418. Signed-off-by: Luca Barbato <lu_zero@gentoo.org> (cherry picked from commit ce41c51b0c71c87f623914ba0786aef325d818fe)
* rtsp: Don't store RTSPStream in AVStream->priv_dataMartin Storsjö2011-02-04
| | | | | | | | | | | | | | | | | For mpegts in RTP, there isn't a direct mapping between RTSPStreams and AVStreams, and the RTSPStream isn't ever stored in AVStream->priv_data, which was earlier leaked. The fix for this leak, in ea7f080749d68a431226ce196014da38761a0d82, lead to double frees for other, normal RTP streams. This patch avoids storing RTSPStreams in AVStream->priv_data, thus avoiding the double free. The RTSPStreams are always available via RTSPState->rtsp_streams anyway. Tested with MS-RTSP, RealRTSP, DSS and mpegts/RTP. Signed-off-by: Luca Barbato <lu_zero@gentoo.org> (cherry picked from commit d9c0510e22821baa364306d867ffac45da0620c8)
* Free the RTSPStreams in ff_rtsp_close_streamsLuca Barbato2011-02-02
| | | | | | | This plugs a small memory leak Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net> (cherry picked from commit ea7f080749d68a431226ce196014da38761a0d82)
* Replace dprintf with av_dlogLuca Barbato2011-01-30
| | | | | dprintf clashes with POSIX.1-2008 (cherry picked from commit dfd2a005eb29e4b9f2fdb97036eb7d5c38ae4bd4)
* rtsp: make ff_sdp_parse return value forwardedLuca Barbato2011-01-30
| | | | | | the sdp demuxer did not forward it at all while the rtsp demuxer assumed a single kind of error (cherry picked from commit f81c7ac70a7e5e82b0ab0839faf8d22d555efb9d)
* os: replace select with pollLuca Barbato2011-01-30
| | | | | | Select has limitations on the fd values it could accept and silently breaks when it is reached. (cherry picked from commit a8475bbdb64e638bd8161df9647876fd23f8a29a)
* Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.Diego Elio Pettenò2011-01-28
| | | | | | This also lists the objects from those two libraries as internal (by adding the ff_ prefix) so that they can then be hidden via linker scripts. (cherry picked from commit c6610a216ed2948885772154a2eed696e0cb4aca)
* Make ff_rtsp_send_cmd_with_content_async static to rtsp.c.Diego Elio Pettenò2011-01-26
| | | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net> (cherry picked from commit 57c4d01ec9286b3b9f9a0101654f7bc8a00edb63)
* rtspdec: Retry with TCP if UDP failedMartin Storsjö2011-01-26
| | | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net> (cherry picked from commit 2762a7a28b261a505a9002b92d4f7c04eeaacc1b)
* rtsp: Use ff_rtsp_undo_setup in the cleanup code in ff_rtsp_make_requestMartin Storsjo2011-01-26
| | | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net> (cherry picked from commit aeb2de1c82f95b74e184992a10523606f4b341fa)
* rtsp: Split out a function undoing the setup made by ff_rtsp_make_setup_requestMartin Storsjo2011-01-26
| | | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net> (cherry picked from commit 93e7490ee0c456d7e0fa43e3bf2cb4a8eed19194)
* rtsp: Make make_setup_request a nonstatic functionMartin Storsjo2011-01-26
| | | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net> (cherry picked from commit fef5649a820b30432578e1440776e7a71bd523cc)
* rtsp: Properly fail if unable to open an input RTP portMartin Storsjö2011-01-09
| | | | Originally committed as revision 26285 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Allow requesting of filtering of source packetsMartin Storsjö2011-01-06
| | | | | | | | | | | | | | | | | If filtered, only packets from the right source address and port are received. To test, play back e.g. some mpeg4 video RTSP stream (where the video stream is the first stream in the presentation) over UDP. While receiving this stream, send another stream to the same port: ffmpeg -re -i <whatever> -vcodec mpeg4 -an -f rtp rtp://127.0.0.1:5000?localport=1234 Normally, the RTSP playback reports lots of errors at this point. If the RTSP stream has the ?filter_src option enabled, these interferring packets are ignored. Originally committed as revision 26246 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Parse RTP-Info headersMartin Storsjö2011-01-05
| | | | Originally committed as revision 26236 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Store the Content-Base header value straight to the targetMartin Storsjö2011-01-02
| | | | | | | This avoids having a large temporary buffer in the struct used for storing the rtsp reply headers. Originally committed as revision 26192 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Pass the method name to ff_rtsp_parse_lineMartin Storsjö2011-01-02
| | | | Originally committed as revision 26191 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Pass RTSPState to ff_rtsp_parse_line, instead of HTTPAuthStateMartin Storsjö2011-01-02
| | | | | | | | This allows ff_rtsp_parse_line to do more changes directly in RTSPState when parsing the reply, instead of having to store large amounts of temporary data in RTSPMessageHeader. Originally committed as revision 26190 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Add a method parameter to ff_rtsp_read_replyMartin Storsjö2011-01-02
| | | | Originally committed as revision 26189 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtpdec: Emit timestamps for packets before the first RTCP packet, tooMartin Storsjö2011-01-01
| | | | | | | | Emitted timestamps in each stream start from 0, for the first received RTP packet. Once an RTCP packet is received, that one is used for sync, emitting timestamps that fit seamlessly into the earlier ones. Originally committed as revision 26187 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Check if the rtp stream actually has an RTPDemuxContextMartin Storsjö2010-12-27
| | | | | | | | For example MS-RTSP doesn't have RTPDemuxContexts for all streams. This fixes issue 2448. Originally committed as revision 26107 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Require the transport reply from the server to match the requestMartin Storsjö2010-12-23
| | | | | | | | | This fixes a crash if we requested TCP interleaved transport, but the server replies with transport data for UDP. According to the RFC, the server isn't allowed to respond with another transport type than the one requested. Originally committed as revision 26077 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Don't set the RTP time base from the sample rate if no sample rate is setMartin Storsjö2010-12-15
| | | | | | | | | This also reverts SVN rev 26016, which incorrectly overwrote the time base with 90 kHz for all streams, regardless of what was set by the SDP parsing. The stream that triggered the fix in 26016 still works after this commit. Originally committed as revision 26022 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp/rtpdec: Set the AVStream time_base directly in rtsp when it is knownMartin Storsjö2010-12-07
| | | | | | | | | | | | This fixes cases where the RTP time base and the sample rate of the stream differ. Previously, the AVStream time_base was unconditionally set to the sample rate (which initially was set to one value when parsing the rtpmap field in the SDP, but later overridden by an a=SampleRate field). Additionally, this makes the code actually use the stream time base set in rtpmap for video codecs, instead of hardcoding it to always be 90 kHz. Originally committed as revision 25908 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Parse RealRTSP sample rate declarations from the SDPMartin Storsjö2010-12-07
| | | | | | The RTP time base can be different from the actual content sample rate. Originally committed as revision 25907 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Look for RTP payload handlers for static payload types, tooMartin Storsjö2010-12-05
| | | | Originally committed as revision 25893 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Factorize code for initializing the rtp payload handlerMartin Storsjö2010-12-05
| | | | Originally committed as revision 25892 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Do a forgotten reindentingMartin Storsjö2010-11-28
| | | | Originally committed as revision 25839 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Parse and use the Content-Base reply header, if presentMartin Storsjö2010-11-15
| | | | | | This fixes playing RTSP urls with query parameters. Originally committed as revision 25755 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Split out the RTSP demuxer functions to a separate, new fileMartin Storsjö2010-10-29
| | | | Originally committed as revision 25601 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Move rtsp_setup_output_streams into rtspenc.cMartin Storsjö2010-10-29
| | | | Originally committed as revision 25600 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Add stub declarations of the setup_in/output_streams functionsMartin Storsjö2010-10-27
| | | | | | | This may be needed to avoid calls to implicitly defined functions (that will be removed by dead code elimination later anyway). Originally committed as revision 25585 to svn://svn.ffmpeg.org/ffmpeg/trunk
* drop rtsp_default_protocols which is not part of public API and not used anymoreAurelien Jacobs2010-10-23
| | | | Originally committed as revision 25557 to svn://svn.ffmpeg.org/ffmpeg/trunk
* use rtp_get_local_rtp_port() instead of the deprecated rtp_get_local_port()Aurelien Jacobs2010-10-23
| | | | Originally committed as revision 25554 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Move the rtsp_probe function to the demuxer code blockMartin Storsjö2010-10-21
| | | | | | This function is only used by the RTSP demuxer. Originally committed as revision 25537 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Untangle the dependencies between the RTSP/SDP demuxers and RTSP muxerMartin Storsjö2010-10-21
| | | | | | | This allows compilation of one of them without requiring the others' dependencies to be present. Originally committed as revision 25535 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Reorder functionsMartin Storsjö2010-10-21
| | | | Originally committed as revision 25534 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add a demuxer for receiving raw rtp:// URLs without an SDP descriptionMartin Storsjö2010-10-19
| | | | | | | The demuxer inspects the payload type of a received RTP packet and handles the cases where the content is fully described by the payload type. Originally committed as revision 25527 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Factorize out code for opening a chained RTP muxerMartin Storsjö2010-10-08
| | | | | | | | The new object file is added to the SDP demuxer in the makefile, since it is needed in both the RTSP muxer and demuxer and in the SDP demuxer, due to the current code coupling. Originally committed as revision 25410 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp: Make rtsp_rtp_mux_open reusableMartin Storsjö2010-10-08
| | | | Originally committed as revision 25409 to svn://svn.ffmpeg.org/ffmpeg/trunk