summaryrefslogtreecommitdiff
path: root/libavformat/rtsp.c
Commit message (Collapse)AuthorAge
...
* avio: avio_ prefixes for get_* functionsAnton Khirnov2011-02-21
| | | | | | | | | | | | | | 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>
* 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>
* avio: rename ByteIOContext to AVIOContext.Anton Khirnov2011-02-20
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Replace remaining uses of parse_date with av_parse_time.Anton Khirnov2011-02-16
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* rtsp: udp_read_packet returning 0 doesn't mean successMartin Storsjö2011-02-17
| | | | | | | | 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.
* rtsp/rdt: Assign the RTSPStream index to AVStream->idMartin Storsjö2011-02-11
| | | | | | | | | | | | 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>
* Use avformat_free_context for cleaning up muxersMartin Storsjö2011-02-04
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* libavformat: Use avcodec_copy_context for chained muxersMartin Storsjö2011-02-04
| | | | | | | | | | | | | 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>
* Free AVStream->info in chained muxersMartin Storsjö2011-02-03
| | | | | | | 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>
* rtsp: Don't store RTSPStream in AVStream->priv_dataMartin Storsjö2011-02-03
| | | | | | | | | | | | | | | | 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>
* Free the RTSPStreams in ff_rtsp_close_streamsLuca Barbato2011-02-01
| | | | | | This plugs a small memory leak Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* Replace dprintf with av_dlogLuca Barbato2011-01-29
| | | | dprintf clashes with POSIX.1-2008
* rtsp: make ff_sdp_parse return value forwardedLuca Barbato2011-01-28
| | | | | the sdp demuxer did not forward it at all while the rtsp demuxer assumed a single kind of error
* os: replace select with pollLuca Barbato2011-01-28
| | | | | Select has limitations on the fd values it could accept and silently breaks when it is reached.
* Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.Diego Elio Pettenò2011-01-26
| | | | | 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.
* Make ff_rtsp_send_cmd_with_content_async static to rtsp.c.Diego Elio Pettenò2011-01-25
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* rtspdec: Retry with TCP if UDP failedMartin Storsjö2011-01-24
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* rtsp: Use ff_rtsp_undo_setup in the cleanup code in ff_rtsp_make_requestMartin Storsjo2011-01-24
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* rtsp: Split out a function undoing the setup made by ff_rtsp_make_setup_requestMartin Storsjo2011-01-24
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* rtsp: Make make_setup_request a nonstatic functionMartin Storsjo2011-01-24
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* 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
* rtsp: Remove the start_time field from RTSPState, use ↵Martin Storsjö2010-10-08
| | | | | | AVFormatContext->start_time_realtime instead Originally committed as revision 25408 to svn://svn.ffmpeg.org/ffmpeg/trunk
* rtsp/sdp: Move code into correct ifdefsMartin Storsjö2010-10-05
| | | | | | | | | This makes the code dependencies correct. Previously, the SDP demuxer wasn't buildable on its own. This also reverts rev 25343. Originally committed as revision 25354 to svn://svn.ffmpeg.org/ffmpeg/trunk