Commit Graph

367 Commits

Author SHA1 Message Date
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
Martin Storsjö
dfd017bf0a Add functions to send RTSP commands with content attached to them. This will
be used eventually in the RTSP muxer (see thread "[PATCH] RTSP muxer, round
3" on mailinglist).

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

Originally committed as revision 21862 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-17 19:24:02 +00:00
Martin Storsjö
9c8fa20d7e When using RTP-over-UDP, send dummy packets during stream setup, similar to
what e.g. RealPlayer does. This allows proper port forwarding setup in NAT-
based environments.

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

Originally committed as revision 21856 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-16 22:50:50 +00:00
Ronald S. Bultje
7515ed0c1d Reindent after r21741.
Originally committed as revision 21742 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-10 18:31:47 +00:00
Ronald S. Bultje
170870b77c Don't forget to set known audio parameters (samplerate, etc.) if the codec is
not supported in FFmpeg. This will cause crashes later because the samplerate
is used to initialize the timebase.

Originally committed as revision 21741 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-10 18:30:55 +00:00
Jeremy Morton
2700063655 Don't use tcp_fd if we're not using TCP-based connections (e.g. when
reading direct SDP files to set up UDP-based RTP-streams). Fixes
issue 1713. Patch by Jeremy Morton <ffmpeg game-point net>.

Originally committed as revision 21461 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-26 15:51:54 +00:00
Alan Steremberg
00eb13e05f Use the control URI from the SDP (if present) rather than the input filename,
if present. This fixes playback of a number of MS-RTSP streams, mostly these
for which playback contains a session key in the URI. Fixes issue 1697.
Patch by Alan Steremberg <$firstname dot $lastname () gmail com>.

Originally committed as revision 21381 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-22 16:04:15 +00:00
Ronald S. Bultje
2e13ecfeca Remove reply and content_ptr arguments from rtsp_send_cmd_async(), since
they are unused.

Originally committed as revision 21371 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-21 20:04:17 +00:00
Ronald S. Bultje
f8c087333d Change on rtsp_send_cmd() to the _async() version since we don't use the
response anyway.

Originally committed as revision 21370 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-21 20:01:11 +00:00
Ronald S. Bultje
7eaa646fd6 Reindent after r21368.
Originally committed as revision 21369 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-21 19:50:40 +00:00
Ronald S. Bultje
8b9457deab Pretty embarassing bug; we shouldn't use av_strlcatf() on an uninitialized
buffer, that is doomed to not work at some point.

Originally committed as revision 21368 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-21 19:48:30 +00:00
Ronald S. Bultje
9d50d39629 Fix issue1658 (trailing space in rtpmap descriptor).
Originally committed as revision 21187 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 15:55:42 +00:00
Ronald S. Bultje
8f3c87f3e2 Add correct log context to av_log() calls in parse_rtpmap().
Originally committed as revision 21072 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-07 22:44:03 +00:00
Ronald S. Bultje
c896580087 Re-indent to more closely follow general coding standards used in other
parts of FFmpeg. Also change a starting condition; while (condition) {
... bla = bla->next; } loop into a proper for() loop.

Originally committed as revision 21071 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-07 22:41:14 +00:00
Ronald S. Bultje
0e59034ed8 Remove forward declarations.
Originally committed as revision 21020 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-04 19:55:43 +00:00
Stefano Sabatini
debe86bfed Fix typo.
Originally committed as revision 20990 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-01 12:29:22 +00:00
Stefano Sabatini
702d0a9e85 Remove residual use of the doxygen markup which is deprecated,
consistent with r19122.

Originally committed as revision 20989 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-01 12:28:18 +00:00
Luca Barbato
d7250724ef Rename internal function
sdp_read_packet -> rtsp_fetch_packet

This way describes slightly better what it does.

Originally committed as revision 20982 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-30 16:19:28 +00:00
Luca Abeni
103dfbe2c4 Add some "#if"s to avoid compiling the RTSP code when the RTSP demuxer
is disabled, and remove a useless "#if CONFIG_SDP_DEMUXER"

Originally committed as revision 20530 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-13 10:19:42 +00:00
Luca Abeni
987131828c Split the sdp_read_packet() function out of rtsp_read_packet().
This allows to avoid compiling RTSP code when not needed.

Originally committed as revision 20526 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-12 15:34:17 +00:00
Luca Abeni
1ced9da357 Move some some functions around, so that splitting the SDP code out of
rtsp_read_packet() is simpler.

Originally committed as revision 20525 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-12 10:31:37 +00:00
Luca Barbato
7549632bda rtsp_close_streams frees the auth_b64 line already
Originally committed as revision 20370 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-25 00:41:10 +00:00
Luca Barbato
d243ba30b8 Support 3xx redirection in rtsp
All the error codes 3xx got managed the same way.
After setup/early play redirection will not be managed
REDIRECT method is yet to be supported (if somebody knows a server implementing
it please contact me)

Originally committed as revision 20369 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-25 00:06:31 +00:00
Luca Barbato
921da21745 Just remove params understood by the demuxer
This should unbreak certain urls.

Originally committed as revision 20364 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-24 16:53:06 +00:00
Luca Barbato
7541f32edd Suppress ?params in the rtsp uri
Right now rtsp demuxer receives it's ffmpeg specific params encoded in the url
That made the server receiving requests with the url ending with "?udp",
"?multicast" and "?tcp". That may or may not cause problems to servers with
overly strict or overly simple uri parsers

Patch from Armand Bendanan (name.surnameATfreeDOTfr)

Originally committed as revision 20363 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-24 15:18:21 +00:00
Luca Barbato
224b44957b Use sdp c= line if the rtsp Transport line doesn't have a destination
Transport:destination in rtsp is optional, c= line in sdp is compulsory

Patch from Armand Bendanan (name.surnameATfreeDOTfr)

Originally committed as revision 20362 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-24 15:10:58 +00:00
Diego Biurrun
76e6e9c330 Remove ancient redir demuxer.
HTTP supports redirection just fine without it.

Originally committed as revision 20361 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-24 12:44:27 +00:00
Ronald S. Bultje
ba93ea6d3e Unscrewup indentation (pointed out by Diego).
Originally committed as revision 19910 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-18 13:18:47 +00:00
Ronald S. Bultje
f933789789 RTSP basic authentication, patch originally by Philip Coombes
(philip coombes zoneminder com), see "[PATCH]RTSP Basic Authentication"
thread on mailinglist.

Originally committed as revision 19905 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-17 21:47:11 +00:00
Ronald S. Bultje
fccb1770e6 Implement support for EOS as used by WMS and other RTSP servers that do not
implement RTCP/bye. See "[PATCH] rtsp.c: EOS support" thread from a few
months back.

Originally committed as revision 19517 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-27 14:03:53 +00:00
Luca Barbato
ec606b36b4 Support seeking as defined by the rfc
a PLAY with Range alone while in PLAY status should be interpreted
as an enqueue
a PAUSE followed by a PLAY with Range is the proper way to ask to
seek to a point.

See rfc2326

Originally committed as revision 19143 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-10 15:08:02 +00:00
Kostya Shishkov
0e848977ce Move function for reading whole specified amount of data from RTSP
demuxer into more common place.

Originally committed as revision 19087 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-04 06:25:53 +00:00
Baptiste Coudurier
67c9cd696a fix compilation with DEBUG defined
Originally committed as revision 19016 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-31 04:32:45 +00:00
Luca Abeni
46ff7a5f4a Fix crash when receiving from SDP
Originally committed as revision 18635 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-20 20:06:55 +00:00
Ronald S. Bultje
30e79845b4 Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
Real wants OPTIONS) while the connection is idle, otherwise it will
be aborted after a short period (usually a minute). See the thread
"[PATCH] rtsp.c: keep-alive" on the mailinglist.

Originally committed as revision 18525 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-15 13:04:34 +00:00
Ronald S. Bultje
e6327fba98 Add a Vorbis payload parser. Implemented by Colin McQuillan as a GSoC
qualification task, see "RTP/Vorbis payload implementation (GSoC qual
task)" thread on mailinglist.

Originally committed as revision 18509 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-14 15:01:46 +00:00
Ronald S. Bultje
373afbaf76 Increase the SDP buffer size (again!) and also increase the temporary
buffer size of the fmtp parameter buffer. For Vorbis RT(S)P, these
contain full Vorbis headers, which can be up to 12kb each, formatted
in base64, so 16kb total. Patch required for proper Vorbis/RTP playback,
submitted as GSoC qualification task in the thread "RTP/Vorbis payload
implementation (GSoC qual task)" by Colin McQuillan m.niloc googlemail
com.

Originally committed as revision 18508 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-14 13:22:40 +00:00
Ronald S. Bultje
da1e126e0d strchr(string, '\0') returns non-NULL, and is thus not suited for use in
redir_isspace(char) to check if '\0' is a space or not. Therefore, we now
use memchr(), since then we can give the length of the string (i.e. the
length excluding the terminating '\0'). Fixes issue 919, see also the
follow-ups in the "[PATCH] rtsp.c small cleanups" mailinglist thread.

Originally committed as revision 18177 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-24 03:24:59 +00:00
Ronald S. Bultje
cc9aced32f Remove slash-skipping code because the function called right after that
statement (get_word_sep()) already does that all by itself. See summary in
"[PATCH] rtsp.c small cleanups" thread on mailinglist.

Originally committed as revision 18128 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 21:02:08 +00:00
Ronald S. Bultje
78f731de92 Reindent something where a if () --> { <-- is on a newline rather than on the
same line as the if. See summary in "[PATCH] rtsp.c small cleanups" thread on
mailinglist.

Originally committed as revision 18127 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 21:00:51 +00:00
Ronald S. Bultje
7d09a993d1 Free metadata if already allocated; fixes a memleak if the header occurs twice
in a stream (e.g. malicious input, broken file, etc.). See summary in "[PATCH]
rtsp.c small cleanups" thread on mailinglist.

Originally committed as revision 18126 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 20:59:59 +00:00
Ronald S. Bultje
6a8c8b36b9 Fix silly bug in hex_to_data() where it compares a string pointer for whether
it is '\0' rather than its content (char *p; if (p == '\0') instead of if
(*p == '\0')). See summary in "[PATCH] rtsp.c small cleanups" thread on
mailinglist.

Originally committed as revision 18125 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 20:58:41 +00:00
Ronald S. Bultje
64917dd3df Remove useless comment about something that is deprecated. See summary in
"[PATCH] rtsp.c small cleanups" thread on mailinglist.

Originally committed as revision 18124 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 20:56:57 +00:00
Ronald S. Bultje
36aa7bc27f Use skip_spaces() in the "redir" demuxer instead of "while (isspace(&p)) p++".
See summary in "[PATCH] rtsp.c small cleanups" thread on mailinglist.

Originally committed as revision 18123 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 20:55:52 +00:00
Ronald S. Bultje
1ef36a7035 Merge functional code from get_word() and get_word_sep() into a single
function, since they both do approximately the same thing. At the same time,
remove redir_isspace() altogether since code elsewhere (including
get_word_sep()) uses strchr() for the same purpose. See summary in "[PATCH]
rtsp.c small cleanups" thread.

Originally committed as revision 18122 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 20:54:47 +00:00
Ronald S. Bultje
7e726132c2 Allow (and parse) incoming server messages (notices) interleaved with TCP
data packets or in addition to UDP data packets, over the RTSP/TCP connection.
See discussion in [PATCH] rtsp.c: read TCP server notifications/messages"
thread on mailinglist.

Originally committed as revision 18121 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 20:46:36 +00:00
Ronald S. Bultje
c4a3d03299 Reindent after r18023.
Originally committed as revision 18024 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-17 12:35:55 +00:00
Ronald S. Bultje
1a30d5415f Add RTP/ASF header parsing, which is part of the SDP of these streams. See
patch discussion in "[PATCH] RTSP-MS 10/15: ASF header parsing" thread.

Originally committed as revision 18023 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-17 12:34:57 +00:00
Ronald S. Bultje
743b389074 rtpmap is case-insensitive, see comment from Luca in "[PATCH] rtsp.c:
keep-alive" thread.

Originally committed as revision 17862 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-07 15:20:55 +00:00
Ronald S. Bultje
57f94f54c4 Oops, very silly typo.
Originally committed as revision 17853 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-06 03:12:33 +00:00
Ronald S. Bultje
29b9f58b37 Split rtsp_send_cmd() into two functions, one for the actual sending of the
command and a second, new function to read the reply to this command. This
will make it possible to read server notices that are not in response to a
command in future versions, such as EOS or interrupt notices. See "[PATCH]
rtsp.c: split rtsp_send_cmd() in a send- and a receive-function" thread.

Originally committed as revision 17797 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-04 00:57:37 +00:00
Ronald S. Bultje
bc8763cda9 Rename "fd1" variable ro "fd". There were previously two variables (fd1 and
fd2) and one was just removed, so naming the other "fd1" is counter-intuitive.
See "[RFC] rtsp.c EOF support" thread.

Originally committed as revision 17780 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 17:06:18 +00:00
Ronald S. Bultje
f0a8039464 Add url_get_file_handle(), which is used to get the file descriptor
associated with the I/O handle (e.g. the fd returned by open()). See
"[RFC] rtsp.c EOF support" thread.

There were previously some URI-specific implementations of the same idea,
e.g. rtp_get_file_handles() and udp_get_file_handle(). All of these are
deprecated by this patch and will be removed at the next major API bump.

Originally committed as revision 17779 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 17:04:51 +00:00
Ronald S. Bultje
2fea965070 Reindent after r17777.
Originally committed as revision 17778 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 16:53:04 +00:00
Ronald S. Bultje
f830c9a487 Make RTSP-MS-over-UDP negotiation work. See "[PATCH] RTSP-MS 8/15: fix
RTSP-MS UDP" thread on mailinglist.

Basically, UDP setup needs to be done in a particular order (first rtx
on two UDP ports (one for RTP, one for RTCP), then the other streams over
one, single port for all of them together). Not doing this correctly results
in a "461" error (invalid transport) during setup.

Originally committed as revision 17777 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 16:52:35 +00:00
Ronald S. Bultje
090438cc81 Recognize the "application" data type, which is required for WMS/UDP
sessions.

This type is used in RTP/ASF (served by WMS servers), and is required to
make UDP sessions work, but breaks TCP sessions. Therefore, we disable setup
for application streams in TCP/WMS streams.

See discussion in "[PATCH] RTSP-MS 8/15: fix RTSP-MS UDP" thread.

Originally committed as revision 17776 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 16:48:56 +00:00
Ronald S. Bultje
a9e534d561 Rename RTSPHeader to RTSPMessageHeader to reflect more clearly what the
structure is meant to represent. See "[PATCH] rtsp.[ch]: RTSPHeader ->
RTSPServerResponse" and "[PATCH] document rtsp.h" threads on ML.

Originally committed as revision 17504 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 22:26:44 +00:00
Ronald S. Bultje
d541a7d2d1 Change sizeof(struct_type) to sizeof(variable).
Originally committed as revision 17474 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 14:40:19 +00:00
Luca Abeni
bf6d981806 Remame rtp_get_codec_info() to ff_rtp_get_codec_info(), as it is not
a static function

Originally committed as revision 17390 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-17 08:12:51 +00:00
Ronald S. Bultje
2a1d51c573 Rename RTSP_*_LAST to RTSP_*_NB in line with PIX_FMT_* in lavc. See "[PATCH]
document rtsp.h" mailinglist thread.

Originally committed as revision 17381 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-16 16:27:35 +00:00
Luca Abeni
302879cb36 Split rtp.h in rtp.h, rtpdec.h, and rtpenc.h
Originally committed as revision 17016 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-06 10:35:52 +00:00
Ronald S. Bultje
0a861b6f8b Rename "tx_ctx" and "cur_tx" variables to "transport_priv" and
"cur_transport_priv", as discussed in the "[PATCH] rtsp.h: rename tx
variables" thread.

Originally committed as revision 17012 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-05 22:34:55 +00:00
Aurelien Jacobs
da61e4136a use new metadata API in rtsp demuxer
Originally committed as revision 16961 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-02 23:09:39 +00:00
Ronald S. Bultje
d1c6e47c16 Fix the Transport: line in the SETUP request so that it works with WMS
servers when trying to set up a session over TCP:
- add the interleave property
- add unicast, only for WMS (since it is normally only UDP, but WMS expects it
   for UDP and TCP)
- add mode=play
See discussion in "[PATCH] RTSP-MS 9/15: add interleave property to the TCP
transport line of the SETUP request" thread on mailinglist.

Originally committed as revision 16913 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-01 13:37:45 +00:00
Luca Abeni
20631a9c15 Merge rtp_internal.h in rtp.h, and remove rtp_internal.h
Originally committed as revision 16817 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-27 12:23:16 +00:00
Ronald S. Bultje
cb760a4790 Skip m= blocks in the SDP if the media type is unknown. This prevents
subsequent a= lines from the m= block to be applied to the previous
m= line, thus breaking otherwise functional RTP streams. See discussion in
[PATCH] RTSP-MS 7/15: parse and allow unknown m= line codes" thread on
mailinglist.

Originally committed as revision 16737 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-24 04:56:18 +00:00
Diego Biurrun
406792e7b0 cosmetics: Remove pointless period after copyright statement non-sentences.
Originally committed as revision 16684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-19 15:46:40 +00:00
Aurelien Jacobs
b250f9c66d Change semantic of CONFIG_*, HAVE_* and ARCH_*.
They are now always defined to either 0 or 1.

Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-13 23:44:16 +00:00
Diego Biurrun
6a5d31ac25 Fix build: Add intreadwrite.h and bswap.h #includes where necessary.
Originally committed as revision 16556 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-11 22:19:48 +00:00
Ronald S. Bultje
9211bcddb4 Reindent to properly fit a 80 chars terminal.
Originally committed as revision 16511 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-09 23:44:52 +00:00
Ronald S. Bultje
ff16f551cf Reindent after r16509.
Originally committed as revision 16510 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-09 23:36:39 +00:00
Ronald S. Bultje
83d14c85da Apply rtpmap: SDP lines to the last m= line only, since they generally just
come directly after each m= line if required. See "[PATCH] RTSP-MS 5-6/15:
parse only the last m= line stream per rtpmap line" thread on ML.

Originally committed as revision 16509 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-09 23:36:17 +00:00
Ronald S. Bultje
e49906c321 Increase buffer size for RTP packet data because some ASF streams use a
manual, non-standard blocksize which is bigger than RTP_MAX_PACKET_LENGTH.
See "[PATCH] RTSP-MS 4/15: blocksize detection" thread on mailinglist.

Originally committed as revision 16502 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-09 01:30:14 +00:00
Ronald S. Bultje
7a86bafa20 Use the "server" RTSP field to detect whether the server that we're talking
to is a Microsoft Windows Media Server (the field will be "WMServer/version").
See "[PATCH] RTSP-MS 3/15: Add Windows Media Server type" thread on
mailinglist.

Originally committed as revision 16472 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-07 14:55:47 +00:00
Ronald S. Bultje
74272b1c0c Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
access to these structures in functions that will be located in rtp_asf.c.
See "[PATCH] RTSP-MS 2/15: export RTSPState and RTSPStream" mailinglist
thread.

Originally committed as revision 16471 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-07 14:53:04 +00:00
Ronald S. Bultje
572c6a3814 Allow subscription to any of the streams, not just the first, available in
this RTSP/RDT session. This basically implies full RDT support, including
stream selection in ffmpeg and multi-stream backupping in ffmpeg (by mapping
each stream to an output). See "[PATCH] RTSP/RDT: subscriptions" thread on
mailinglist.

Originally committed as revision 16469 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-07 14:48:17 +00:00