Commit Graph

442 Commits

Author SHA1 Message Date
Martin Storsjö 1338dc0823 libavformat: Use avcodec_copy_context for chained muxers
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>
2011-02-04 11:28:07 -05:00
Martin Storsjö ce41c51b0c Free AVStream->info in chained muxers
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>
2011-02-03 01:03:31 +01:00
Martin Storsjö d9c0510e22 rtsp: Don't store RTSPStream in AVStream->priv_data
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 ea7f080749, 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>
2011-02-03 00:49:15 +01:00
Luca Barbato ea7f080749 Free the RTSPStreams in ff_rtsp_close_streams
This plugs a small memory leak

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-02-01 20:40:16 +01:00
Luca Barbato dfd2a005eb Replace dprintf with av_dlog
dprintf clashes with POSIX.1-2008
2011-01-29 23:55:37 +01:00
Luca Barbato f81c7ac70a rtsp: make ff_sdp_parse return value forwarded
the sdp demuxer did not forward it at all while the rtsp demuxer assumed
a single kind of error
2011-01-28 15:45:19 +01:00
Luca Barbato a8475bbdb6 os: replace select with poll
Select has limitations on the fd values it could accept and silently
breaks when it is reached.
2011-01-28 15:45:19 +01:00
Diego Elio Pettenò c6610a216e Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.
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.
2011-01-26 22:10:09 +00:00
Diego Elio Pettenò 57c4d01ec9 Make ff_rtsp_send_cmd_with_content_async static to rtsp.c.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-25 22:10:36 +01:00
Martin Storsjö 2762a7a28b rtspdec: Retry with TCP if UDP failed
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-24 22:49:36 +01:00
Martin Storsjo aeb2de1c82 rtsp: Use ff_rtsp_undo_setup in the cleanup code in ff_rtsp_make_request
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-24 22:46:43 +01:00
Martin Storsjo 93e7490ee0 rtsp: Split out a function undoing the setup made by ff_rtsp_make_setup_request
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-24 22:46:39 +01:00
Martin Storsjo fef5649a82 rtsp: Make make_setup_request a nonstatic function
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-24 22:46:36 +01:00
Martin Storsjö a3b058b7ba rtsp: Properly fail if unable to open an input RTP port
Originally committed as revision 26285 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-09 10:47:53 +00:00
Martin Storsjö a92c30d76e rtsp: Allow requesting of filtering of source packets
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
2011-01-06 15:22:58 +00:00
Martin Storsjö 29db7c3af4 rtsp: Parse RTP-Info headers
Originally committed as revision 26236 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-05 21:23:42 +00:00
Martin Storsjö d2995eb910 rtsp: Store the Content-Base header value straight to the target
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
2011-01-02 10:11:12 +00:00
Martin Storsjö 77223c5388 rtsp: Pass the method name to ff_rtsp_parse_line
Originally committed as revision 26191 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-02 10:10:12 +00:00
Martin Storsjö acc9ed1450 rtsp: Pass RTSPState to ff_rtsp_parse_line, instead of HTTPAuthState
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
2011-01-02 10:07:56 +00:00
Martin Storsjö 3df54c6bf2 rtsp: Add a method parameter to ff_rtsp_read_reply
Originally committed as revision 26189 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-02 10:06:21 +00:00
Martin Storsjö 3a1cdcc798 rtpdec: Emit timestamps for packets before the first RTCP packet, too
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
2011-01-01 22:27:16 +00:00
Martin Storsjö 9e99f84f7d rtsp: Check if the rtp stream actually has an RTPDemuxContext
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
2010-12-27 09:56:19 +00:00
Martin Storsjö 8c579c1c60 rtsp: Require the transport reply from the server to match the request
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
2010-12-23 15:05:24 +00:00
Martin Storsjö bbd8f5477d rtsp: Don't set the RTP time base from the sample rate if no sample rate is set
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
2010-12-15 21:06:25 +00:00
Martin Storsjö 86b6e387cc rtsp/rtpdec: Set the AVStream time_base directly in rtsp when it is known
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
2010-12-07 13:29:44 +00:00
Martin Storsjö bb776f3b00 rtsp: Parse RealRTSP sample rate declarations from the SDP
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
2010-12-07 13:28:45 +00:00
Martin Storsjö 6a7e31a901 rtsp: Look for RTP payload handlers for static payload types, too
Originally committed as revision 25893 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-05 19:41:44 +00:00
Martin Storsjö 003eb64217 rtsp: Factorize code for initializing the rtp payload handler
Originally committed as revision 25892 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-05 19:41:09 +00:00
Martin Storsjö 0b6a7ff4b4 rtsp: Do a forgotten reindenting
Originally committed as revision 25839 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-28 21:17:39 +00:00
Martin Storsjö dd22cfb101 rtsp: Parse and use the Content-Base reply header, if present
This fixes playing RTSP urls with query parameters.

Originally committed as revision 25755 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-15 15:08:53 +00:00
Martin Storsjö 0526c6f7c7 rtsp: Split out the RTSP demuxer functions to a separate, new file
Originally committed as revision 25601 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-29 08:43:57 +00:00
Martin Storsjö c2688f3ac8 rtsp: Move rtsp_setup_output_streams into rtspenc.c
Originally committed as revision 25600 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-29 08:41:49 +00:00
Martin Storsjö 47bfe49c64 rtsp: Add stub declarations of the setup_in/output_streams functions
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
2010-10-27 00:42:35 +00:00
Aurelien Jacobs a5cea13202 drop rtsp_default_protocols which is not part of public API and not used anymore
Originally committed as revision 25557 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-23 16:22:36 +00:00
Aurelien Jacobs 67f34aaa97 use rtp_get_local_rtp_port() instead of the deprecated rtp_get_local_port()
Originally committed as revision 25554 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-23 16:19:53 +00:00
Martin Storsjö eced8fa02e rtsp: Move the rtsp_probe function to the demuxer code block
This function is only used by the RTSP demuxer.

Originally committed as revision 25537 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-21 12:25:12 +00:00
Martin Storsjö 44b70ce563 rtsp: Untangle the dependencies between the RTSP/SDP demuxers and RTSP muxer
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
2010-10-21 12:18:48 +00:00
Martin Storsjö 8bf0f96954 rtsp: Reorder functions
Originally committed as revision 25534 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-21 12:13:02 +00:00
Martin Storsjö 44594cc798 Add a demuxer for receiving raw rtp:// URLs without an SDP description
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
2010-10-19 07:38:53 +00:00
Martin Storsjö a493f80a2c rtsp: Factorize out code for opening a chained RTP muxer
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
2010-10-08 08:54:53 +00:00
Martin Storsjö 3d74223025 rtsp: Make rtsp_rtp_mux_open reusable
Originally committed as revision 25409 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-08 08:51:05 +00:00
Martin Storsjö 9e6acc7884 rtsp: Remove the start_time field from RTSPState, use AVFormatContext->start_time_realtime instead
Originally committed as revision 25408 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-08 08:50:29 +00:00
Martin Storsjö 5fe8021a6a rtsp/sdp: Move code into correct ifdefs
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
2010-10-05 19:46:25 +00:00
Diego Biurrun a44da176ac Remove some pointless CONFIG_RTSP_DEMUXER #ifdefs.
They reside within a large CONFIG_RTSP_DEMUXER block and are thus pointless.

Originally committed as revision 25343 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-05 11:06:32 +00:00
Diego Biurrun 2e802e3855 Add some #endif comments to ease understanding.
Originally committed as revision 25342 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-05 11:03:48 +00:00
Martin Storsjö d7810f4541 rtsp: In the muxer, show the generated with verbose log level
It is only useful for debugging, so it doesn't have to be shown every time.

Originally committed as revision 25323 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-03 11:56:38 +00:00
Martin Storsjö 6ecd741713 rtsp: Show the received SDP
Originally committed as revision 25322 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-03 11:55:16 +00:00
Martin Storsjö 321259c1ab rtsp: Return a queued packet if it has been in the queue for longer than max_delay
Originally committed as revision 25295 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-01 17:52:26 +00:00
Martin Storsjö 58ee09911e rtpdec: Reorder received RTP packets according to the seq number
Reordering is enabled only when receiving over UDP.

Originally committed as revision 25294 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-01 17:50:24 +00:00
Martin Storsjö c690fa97e5 Reindent/rewrap
Originally committed as revision 25291 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-01 17:44:53 +00:00
Martin Storsjö 38f8c80b62 rtsp: Reorganize if statements in rtsp_read_play
Originally committed as revision 25290 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-01 17:44:18 +00:00
Martin Storsjö ad4ad27fb6 rtsp/rtpdec: Allow rtp_parse_packet to take ownership of the packet buffer
Do the same change for ff_rdt_parse_packet, too, to keep the interfaces
similar.

Originally committed as revision 25289 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-01 17:43:27 +00:00
Martin Storsjö 96a7c9753e rtsp: Use a dynamically allocated receive buffer
Originally committed as revision 25288 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-01 17:41:31 +00:00
Martin Storsjö 160918d588 rtsp: Handle standard assigned codec names for private payload types, too
Originally committed as revision 25126 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-15 17:39:25 +00:00
Ronald S. Bultje 7bac991fd9 Reindent after r25032.
Originally committed as revision 25033 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-03 19:26:27 +00:00
John Wimer 619298a84d Send NAT punching messages to the address specified in the Transport:
message, if available (RFC 2326, section 12.39), fixes issue 2212.

Patch by John Wimer <john at god vtic net>.

Originally committed as revision 25032 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-03 19:25:59 +00:00
Martin Storsjö 744a882f6c rtsp: 10l, try to update the correct rtp stream
This fixes a bug from rev 22917. Now RTSP streams where the individual RTCP
sender reports aren't sent at the same time actually are synced properly.

Originally committed as revision 25029 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-03 07:10:21 +00:00
Josh Allmann b20359f51a rtsp: Return AVERROR_EOF when all streams have received an RTCP BYE packet
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24965 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-29 10:25:16 +00:00
Josh Allmann a1ba71aace rtsp: Check the RTCP file handle for new packets, too
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24962 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-29 10:16:54 +00:00
Martin Storsjö 7934b15d5a Handle IPv6 in the RTSP code
Originally committed as revision 24925 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-25 15:32:29 +00:00
Martin Storsjö 3fbd12d109 Handle IPv6 in the SDP demuxer
Originally committed as revision 24924 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-25 15:32:00 +00:00
Martin Storsjö 2401660d2f rtsp: Return EOF if the TCP control channel is closed
Originally committed as revision 24920 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-25 13:42:17 +00:00
Ronald S. Bultje 27014bf5a3 Send OPTIONS request at a regular basis to standard RTSP servers as well,
this prevents a time-out which closes the TCP connection and kills our
session.

see "Re: [FFmpeg-devel] [PATCH] rtsp.c: keep-alive" thread on mailinglist.

Originally committed as revision 24785 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-12 13:39:38 +00:00
Aurelien Jacobs be73ba2fa4 get rid of MAX_STREAMS limit in RTSP
Originally committed as revision 24752 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-09 23:00:13 +00:00
Reinhard Tartler 2901cc9a95 Fix spelling in comment(s)
Originally committed as revision 24737 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-07 14:11:43 +00:00
Josh Allmann 91af5601c1 Add RTP packetization of Theora and Vorbis
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-07 11:16:07 +00:00
Luca Barbato d93fdcbf5c Preserve status reason
It is used to provide meaningful error messages.

Originally committed as revision 24714 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-06 10:26:30 +00:00
Martin Storsjö 965a3ddb1f Remove mostly unnecessary rtpdec_*.h files, store the declarations in one file
Originally committed as revision 24596 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-30 12:04:27 +00:00
Martin Storsjö 2845006608 rtsp: Move the definition of SDP_MAX_SIZE up, use it in the RTSP muxer, too
Originally committed as revision 24571 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-28 09:26:15 +00:00
Axel Holzinger 354b757300 Zero-initialize structs/arrays with {0} instead of {}, which isn't proper C99
Patch by Axel Holzinger, aholzinger at gmx dot de

Originally committed as revision 24391 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 17:27:28 +00:00
Luca Barbato bf55cf19ca Report when a method gets an error status code
That makes easier understand what went wrong.
In debug mode the whole reply gets printed.

Originally committed as revision 24212 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-12 10:17:20 +00:00
Måns Rullgård f3bfe388b5 Make ff_url_split() public
ff_url_split() is retained as an alias, as it was used by ffserver,
to avoid breaking ABI compatibility with it.

Originally committed as revision 23822 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-27 14:16:46 +00:00
Josh Allmann ca937a5508 RTSP, rtpdec: Move RTPPayloadData into rtpdec_mpeg4 and remove all references to rtp_payload_data in rtpdec and rtsp
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23772 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 08:02:50 +00:00
Josh Allmann 7fc8ac7fd8 RTSP: Move more SDP/FMTP stuff from rtsp.c to rtpdec_mpeg4.c
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23770 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 08:00:05 +00:00
Josh Allmann 9b3788efc3 RTSP: Decouple MPEG-4 and AAC specific parts from rtsp.c
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23769 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 07:58:38 +00:00
Josh Allmann 30619e6e59 RTSP: Remove skip_spaces in favor of strspn
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23768 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-25 07:56:45 +00:00
Martin Storsjö 9290f15d00 Make the http protocol open the connection immediately in http_open again
Also make the RTSP protocol use url_alloc and url_connect instead of relying
on the delay open behaviour.

Originally committed as revision 23710 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-22 14:15:00 +00:00
Martin Storsjö a8ead3322f RTSP: Use the same authentication for the HTTP POST session as for the GET
Originally committed as revision 23686 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-21 19:41:02 +00:00
Martin Storsjö 10ed37b5d1 RTSP: Add the auth credentials to the HTTP tunnel URL, too
Originally committed as revision 23651 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-19 21:57:45 +00:00
Martin Storsjö 6217b6451a RTSP: Set the connection handles to null after closing them
This fixes a potential issue when doing redirects.

Originally committed as revision 23649 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-19 21:46:39 +00:00
Josh Allmann 00e4a1f4e2 RTSP: Don't store the connection handles in local variables
This removes some useless copying of handles, and simplifies error handling.

Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23648 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-19 21:36:13 +00:00
Martin Storsjö d3f84dfc0e RTSP: Clean up rtsp_hd on failure
Since rtsp_hd isn't assigned to rt->rtsp_hd until after the setup phase,
the initialized URLContext could be leaked on failures.

Originally committed as revision 23643 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-18 17:54:56 +00:00
Martin Storsjö 48e77473e9 Cosmetics: Change connexion to connection in code comments
Originally committed as revision 23601 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-14 09:09:59 +00:00
Josh Allmann afcea58c53 RTSP: Shrink SDP fmtp parsing buffer size
Since the parsing of Vorbis/Theora fmtp headers is handled by the
parse_sdp_a_line function pointer now, the buffer in sdp_parse_fmtp
doesn't need to be this large any longer.

Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23599 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-14 08:23:59 +00:00
Josh Allmann 41874d0a5d Reindent
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23598 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-14 08:12:40 +00:00
Josh Allmann f5d33f5241 Add RTSP tunneling over HTTP
Patch by Josh Allmann, joshua dot allmann at gmail dot com

Originally committed as revision 23536 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-08 12:40:34 +00:00
Martin Storsjö fc490fcf71 Cosmetics: Reindent/align/wrap
Originally committed as revision 23498 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-05 19:49:55 +00:00
Josh Allmann d0382374b7 RTSP: Propagate errors up from ff_rtsp_send_cmd*
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23497 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-05 19:45:46 +00:00
Martin Storsjö c453d1bb8c Remove unused local variables
Originally committed as revision 23496 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-05 19:43:57 +00:00
Josh Allmann b8c2c41d66 RTSP: Add a second URLContext for outgoing messages
Done in preparation for RTSP over HTTP.
Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23494 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-05 19:41:43 +00:00
Martin Storsjö 8d168a9207 Fix a crash when opening WMS RTSP streams
Fixes issue 1948

Originally committed as revision 23181 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-19 09:46:29 +00:00
Stefano Sabatini 2ef6c1242a Mark av_metadata_set() as deprecated, and use av_metadata_set2()
in its place.

av_metadata_set() is going to be dropped at the next major bump.

Originally committed as revision 22961 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-25 14:27:42 +00:00
Martin Storsjö 5948f82227 Reset RTCP timestamps after seeking, add range start offset to the packets timestamps
If these aren't reset, the timestamps make a huge jump when the next RTCP
is received.

Originally committed as revision 22918 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 07:38:52 +00:00
Martin Storsjö 2cab6b48ad Revert svn rev 21857, readd first_rtcp_ntp_time in RTPDemuxContext
In order to sync RTP streams that get their initial RTCP timestamp at
different times, propagate the NTP timestamp of the first RTCP packet
to all other streams.

This makes the timestamps of returned packets start at (near) zero instead
of at any random offset.

Originally committed as revision 22917 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 07:34:28 +00:00
Ramiro Polla adef229efb AVERROR(FF_NETERROR(x)) -> FF_NETERROR(x)
FF_NETERROR is implicitly an AVERROR.

Originally committed as revision 22888 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-16 00:20:11 +00:00
Ronald S. Bultje 4aecee7fc3 Fix compile error on mingw where ETIMEDOUT is missing (because it's a WSA error).
This patch also changes FF_NETERROR() to be an AVERROR(), i.e. it is always
negative, whereas it was previously positive.

Originally committed as revision 22887 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-15 18:27:27 +00:00
Martin Storsjö 3370289a4c Zero-initialize the reply struct
The status_code field is read in the fail codepath, where it could be
read uninitialized earlier. Found by clang.

Originally committed as revision 22801 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-04 21:59:06 +00:00
Martin Storsjö 0e64218889 Remove a redundant assignment, found by clang
Originally committed as revision 22790 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-03 12:16:33 +00:00
Sam Gerstein f3c68c5b45 ETIME -> ETIMEDOUT. Patch by Sam Gerstein <sgerstein bluefinlab com>.
Originally committed as revision 22785 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-02 20:14:55 +00:00
Josh Allmann 339f5f3957 Merge Vorbis / Theora depayloaders.
Patch by Josh Allmann <joshua DOT allmann AT gmail DOT com>.

Originally committed as revision 22768 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-01 21:43:22 +00:00
Stefano Sabatini 72415b2adb Define AVMediaType enum, and use it instead of enum CodecType, which
is deprecated and will be dropped at the next major bump.

Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Benoit Fouet 32e543f866 Replace @returns by @return.
Originally committed as revision 22729 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 15:50:57 +00:00
Reimar Döffinger c2bfd81605 Some spelling fixes.
Originally committed as revision 22720 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-29 19:17:49 +00:00
Sam Gerstein 9cba6f5f40 Add a timeout to the select() call. Patch by Sam Gerstein <sgerstein bluefinlab
com>.

Originally committed as revision 22718 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-29 17:36:08 +00:00
Martin Storsjö 4bc5cc2313 Reassemble the RTSP URL before replacing hostname with the numerical IP
Originally committed as revision 22681 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-25 22:21:09 +00:00
Martin Storsjö 7b4a36450b Simplify ff_rtsp_send_cmd_with_content_async, remove an unnecessary buffer
Originally committed as revision 22680 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-25 22:04:41 +00:00
Martin Storsjö 30af077942 Don't force basic auth in RTSP, but retry with the server-specified method on failure
Originally committed as revision 22678 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-25 21:49:43 +00:00
Martin Storsjö 2626308abb Actually parse the auth headers in RTSP
Originally committed as revision 22677 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-25 21:48:58 +00:00
Martin Storsjö aa8bf2fb80 Make RTSP use the generic http authentication code
Still hardcoded to use Basic auth, without parsing the reply headers

Originally committed as revision 22676 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-25 21:47:33 +00:00
Martin Storsjö b17d11c632 Add separate method/url parameters to the rtsp_send_cmd functions
Originally committed as revision 22675 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-25 21:46:14 +00:00
Martin Storsjö e9fea405a7 Reindent
Originally committed as revision 22672 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-25 19:47:26 +00:00
Martin Storsjö b1cc5540e7 Make ff_rtsp_send_cmd simply call ff_rtsp_send_cmd_with_content
Originally committed as revision 22663 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-24 23:06:58 +00:00
Luca Barbato 7ed8211b3e Issue a warning if the received CSeq isn't the expected one
Originally committed as revision 22661 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-24 22:38:48 +00:00
Martin Storsjö 3032276b18 Handle errors returned from ff_rtsp_read_reply in udp_read_packet properly
Originally committed as revision 22657 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-24 18:52:27 +00:00
Martin Storsjö 7a033e08ea Handle multiple RTSP transport options properly by adding all of them into the mask
Originally committed as revision 22644 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-23 08:00:37 +00:00
Martin Storsjö 602eb77975 Parse options in the RTSP URL only from the last question mark onwards
This helps if the URL (erroneously?) contains question marks within the path.

Originally committed as revision 22643 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-23 07:59:23 +00:00
Martin Storsjö 2a21adf924 Reconstruct the RTSP URL, in order to remove the auth part from the URL sent to the server
Don't modify the user-specified s->filename at all, keep all modifications
locally and in rt->control_uri.

Originally committed as revision 22642 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-23 07:55:15 +00:00
Martin Storsjö 685e76b554 Reindent
Originally committed as revision 22635 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-22 15:07:36 +00:00
Martin Storsjö b7dc88fc68 Add support for TCP as lower transport in the RTSP muxer
Originally committed as revision 22634 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-22 15:07:05 +00:00
Martin Storsjö 6e69f6c47f Use the caller's RTSPMessageHeader in rtsp_setup_input_streams
Currently, the caller doesn't get the status_code and location for rediects,
since rtsp_setup_input_streams uses a copy of RTSPMessageHeader of its own.

Originally committed as revision 22630 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-22 14:42:52 +00:00
Martin Storsjö ec55edba31 Make rtsp_skip_packet non-static, add ff prefix
Originally committed as revision 22547 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-15 16:31:15 +00:00
Martin Storsjö c040badb70 Reindent
Originally committed as revision 22546 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-15 16:15:51 +00:00
Martin Storsjö c07c6f8183 RTSP: Synchronize the start time of the chained RTP muxers
This makes sure that the streams get correctly synchronized when viewed,
previously the streams were out of sync by as much time as it took
between the initialization of the individual muxers.

Originally committed as revision 22545 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-15 14:20:07 +00:00
Aurelien Jacobs e4a9e3cc7c move ff_url_split() and ff_url_join() declarations to internal.h
those functions are not part of the public API

Originally committed as revision 22534 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-14 23:59:48 +00:00
Martin Storsjö 5c7fd91010 Cosmetics, break a long line, fix brace placement
Originally committed as revision 22465 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-11 08:33:04 +00:00
Martin Storsjö 26cb700c82 RTSP muxer: Create the SDP with the numerical IP of the peer
instead of using the original host name

Originally committed as revision 22464 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-11 08:24:18 +00:00
Dave Yeo cbfa66d0cf Include os_support.h which has a fallback declaration of socklen_t
This fixes compilation on some OSes

Patch by Dave Yeo, daveryeo at telus dot net

Originally committed as revision 22426 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-10 07:44:51 +00:00
Martin Storsjö db76ca7f35 Use rt->control_uri consequently instead of s->filename in all RTSP commands
Originally committed as revision 22403 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 16:04:41 +00:00
Martin Storsjö 03f8fc0897 RTSP: Resolve and use the actual IP address of the peer we're connected to,
instead of using the original host name, since the RTP (and UDP) protocols
may choose another IP address if the host name resolves into several different
addresses.

Originally committed as revision 22398 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-09 14:59:40 +00:00
Martin Storsjö f984dcf6dd Reindent
Originally committed as revision 22322 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-08 09:05:03 +00:00
Martin Storsjö c5c6e67c28 Rename url_split to ff_url_split
Since this function isn't in the public API, it should have an ff_ prefix.

Originally committed as revision 22321 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-08 09:03:25 +00:00
David Conrad ac11d562e5 Localize the #define _SVID_SOURCE needed for inet_aton() to os_support.c
Originally committed as revision 22284 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-07 19:48:59 +00:00
Martin Storsjö 57b5555c91 Use ff_url_join for assembling URLs, instead of snprintf
This ensures proper escaping of numerical IPv6 addresses.

The RTSP (de)muxer needs its own network initialization, since it isn't
a protocol and url_open hasn't been called yet.

Originally committed as revision 22226 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-05 22:35:21 +00:00
Martin Storsjö f65919af7e Rename RTP depacketizer files from rtp_* to rtpdec_*
Originally committed as revision 22109 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-28 11:03:14 +00:00
Martin Storsjö 9399393333 Cosmetics: reindent
Originally committed as revision 21995 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-23 11:05:36 +00:00
Ronald S. Bultje 3307e6ea86 Prefix non-static RTSP functions with ff_.
Originally committed as revision 21974 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-23 00:35:50 +00:00
Martin Storsjö 6f5a3d0a7b Add an RTSP muxer
Originally committed as revision 21971 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-22 21:28:19 +00:00
Martin Storsjö f86f665623 Free metadata in chained RTP muxers in the RTSP muxer
This fixes a minor memory leak

Originally committed as revision 21970 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-22 21:20:30 +00:00
Martin Storsjö af037f8098 Cosmetics: reindent
Originally committed as revision 21969 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-22 19:47:22 +00:00
Martin Storsjö 15ba23150e Add declarations and doxygen documentation of generic rtsp support functions
to rtsp.h, and make the functions non-static

Originally committed as revision 21968 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-22 19:44:08 +00:00
Martin Storsjö 2efc97c2fe Cosmetics: reindent after applying patches
Originally committed as revision 21967 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-22 16:11:38 +00:00
Martin Storsjö 35cfd6464e Don't follow RTSP redirects when used as a muxer
Originally committed as revision 21966 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-22 15:57:40 +00:00
Martin Storsjö 3e24c7701c Add a function rtsp_setup_output_streams for announcing the SDP
and setting up the internal RTSPStream data structures when using
the RTSP code in muxer mode.

Originally committed as revision 21965 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-22 15:56:18 +00:00
Martin Storsjö fd450a5177 Create AVFormatContext objects as private transport for output RTSP sessions
Originally committed as revision 21964 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-22 15:46:56 +00:00
Martin Storsjö 4280f9bbcd Split rtsp_read_header() into two functions, so that the main part (now also
known as rtsp_connect()) can be used in the RTSP muxer.

Patch by Martin Storsjö <$firstname $firstname st>.

Originally committed as revision 21915 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-19 23:23:40 +00:00
Martin Storsjö e23d195deb Split out input-specific parts of rtsp_read_header() into its own, new,
function (rtsp_setup_input_streams()), as preparation for the upcoming
RTSP muxer.

Patch by Martin Storsjö <$firstname $firstname st>.

Originally committed as revision 21914 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-19 23:21:44 +00:00
Martin Storsjö 30ff7c5cbc Only send out NAT-punching RTP/RTCP packets when we're in demuxer mode, i.e.
don't send them when acting as a RTSP muxer.

Patch by Martin Storsjö <$firstname $firstname st>.

Originally committed as revision 21913 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-19 23:13:21 +00:00
Martin Storsjö 69adcc4ffb Use mode=receive instead of mode=play if in RTSP muxer (instead of demuxer)
mode.

Patch by Martin Storsjö <$firstname $firstname st>.

Originally committed as revision 21912 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-19 23:11:59 +00:00
Martin Storsjö 52aa4338cc Make rtsp_close_streams() take a AVFormatContext instead of a RTSPState
argument, so we can use AVFormatContext->* here in the future.

Patch by Martin Storsjö <$firstname $firstname st>.

Originally committed as revision 21911 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-19 23:10:19 +00:00
Martin Storsjö c02fd3d2e8 Rename RTSP_STATE_PLAYING to _STREAMING, since that better covers the
future use of the rtsp* codebase for RTSP muxing.

Patch by Martin Storsjö <$firstname $firstname st>.

Originally committed as revision 21896 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-19 16:26:21 +00:00