Commit Graph
100 Commits
Author SHA1 Message Date
Ronald S. BultjeandKostya Shishkov 98287358e9 Print a warning when DATA chunk is encountered in the middle of chunk.
From multirate RM patch by Ronald S. Bultje

Originally committed as revision 21392 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-23 09:42:52 +00:00
Ronald S. Bultje 6481075443 Make style a little bit more K&R'ish.
Originally committed as revision 21383 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-22 16:12:55 +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 3b2372bff1 Add a check for struct sockaddr->sa_len, which is an indication of whether
the system wants a length entry in all socket structures or not. Patch by
Martin Storsjö <$firstname $firstname st>.

Originally committed as revision 21351 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-20 17:24:23 +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 2edabfdfdb Reindent after r21166.
Originally committed as revision 21167 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 16:36:23 +00:00
Ronald S. Bultje 7e43f74a37 Use getaddrinfo(), if available, in resolve_host(). Patch by Martin
Storsjö <$firstname()$firstname,st>.

Originally committed as revision 21143 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-11 17:14:16 +00:00
Ronald S. Bultje f9664ca026 Use the correct ByteIOContext in extradata parsing.Fixes half of issue
1658.

Originally committed as revision 21095 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-08 17:15:46 +00:00
Ronald S. Bultje 84f0aba18d handler can be NULL if we did not support this dynamic format (codec).
Fixes issue 1658 (the crasher), although the format itself is obviously
still unsupported.

Originally committed as revision 21078 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-07 23:05:19 +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
Ronald S. Bultje a2e6a14b77 Add myself as HTTP maintainer.
Originally committed as revision 21015 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-04 15:52:26 +00:00
Ronald S. Bultje 6e44ba1550 Use get_bits_left() instead of size_in_bits - get_bits_count().
Originally committed as revision 20543 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-16 17:42:43 +00:00
Ronald S. Bultje c47ca25e74 Make get_bits_left() available for use in libavcodec (was previously held
private in dv.c for some reason). See "[PATCH] get_bits_left()" thread.

Originally committed as revision 20490 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-09 22:10:43 +00:00
Ronald S. Bultje b1ade3d182 And on the sixth day, God gave us the <= operand, which makes the loop
"for (i = 1; i < num + 1; i++)" look like "for (i = 1; i <= num; i++)".
Programmers worldwide rejoiced and used the operand, e.g. in the thread
"[PATCH] remove ugliness in cel_filters.c", and He saw that it was good.

Originally committed as revision 20489 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-09 22:04:03 +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 faccfeec0e Parse frame size code, see "svq3.c: parse frame size" thread on ML.
Originally committed as revision 19583 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-08-04 21:55:47 +00:00
Ronald S. Bultje 73f04f5e7d Make me maintainer of rtp_asf.*
Originally committed as revision 19582 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-08-04 21:43:53 +00:00
Ronald S. Bultje 7a4a64e7ab Remove old_flags variable, which is a duplicate of the flags variable.
Originally committed as revision 19540 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-30 15:05:33 +00:00
Ronald S. Bultje 34bddc39b4 Don't use a pointer-to-flags/timestamp in ff_rm_parse_packet(); the function
used to return packet data, which might update the flags/timestamp to be
used for the next packet data returned by the demuxer. However, that was
separated out into a new function, and the flags/timestamp are thus never
updated within ff_rm_parse_packet() anymore, and thus do not need to be
a pointer.

Originally committed as revision 19539 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-30 15:04:19 +00:00
Ronald S. Bultje acfe8faf29 Cosmetics: remove spaces between function name and arguments in declaration,
and put return type ("static void") on the same line as function name.

Originally committed as revision 19519 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-27 14:32:54 +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
Ronald S. Bultje c2f3eec445 Implement RTSP-MS/ASF packet parsing - this completes RTSP-MS support. See
discussion in "[PATCH] RTSP-MS 14/15: ASF packet parsing" thread on mailinglist.

Originally committed as revision 19516 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-27 14:00:10 +00:00
Ronald S. Bultje 2078ca16ee Add handling of EAGAIN at packet boundaries. See "[PATCH] RTSP-MS 14/15:
ASF packet parsing" thread for discussion / reasoning.

Originally committed as revision 19509 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-26 19:09:35 +00:00
Ronald S. Bultje 684aa30251 Add doxy to av_log_missing_feature() etc. stating that the function is
primarily intended for internal use in lavc/lavf, not for use in apps.

Originally committed as revision 19296 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-29 19:17:03 +00:00
Ronald S. Bultje 4811f89bc6 Move av_log_missing_feature() from the internal.h to the public avcodec.h
header file.

Originally committed as revision 19295 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-29 19:11:53 +00:00
Ronald S. Bultje ce863d7f36 Rename ff_log_missing_feature() to av_log_missing_feature().
Originally committed as revision 19294 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-29 19:07:04 +00:00
Ronald S. Bultje 91d19d471b Remove any reference to ASFContext.packet_size and replace it with
AVFormatContext.packet_size. See "[PATCH] asf*.c/h: use
AVFormatContext->packet_size instead of own copy" thread on ML.

Originally committed as revision 19270 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-24 23:04:05 +00:00
Ronald S. Bultje b394438e8a Document making AVFormatContext.packet_size unsigned API change.
Originally committed as revision 19251 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-22 16:54:17 +00:00
Ronald S. Bultje 92400be255 Change packet_size from signed to unsigned, since it never has a negative
value. Currently, this is only used in qcp.c and mpegenc.c, and they are
practically unaffected by this change.

See "[PATCH] make packet_size in AVFormatContext unsigned" thread on ML.

Originally committed as revision 19250 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-22 16:52:02 +00:00
Ronald S. Bultje f4ca612fbd Set restrictions on packet_size, as per ISO-11172 / H-222 specifications
(max packet size should fit in 13 bits as a kB value, so 1<<23, plus the
header which is 10 bytes), and as per mpegenc.c internal assumptions
(min packet size is 20 bytes). See "[PATCH] make packet_size in
AVFormatContext unsigned" thread.

Originally committed as revision 19215 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-17 19:04:02 +00:00
Ronald S. Bultje 277a28e8fc Make asf_get_packet() and asf_parse_packet() static. See "[PATCH] asfdec.c:
make get/parse_packet static" thread from 2 months ago.

Originally committed as revision 19140 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-09 20:58:32 +00:00
Ronald S. Bultje 1d0036b01f Change another AVERROR(EIO) inot AVERROR_EOF, because it really signals EOF,
not a stream error. This also fixes an infinite loop on EOS during ASF file
playback, and Michael claims he "likes the patch" (ref: [PATCH] RTSP-MS
15/15: move packet_time_start zero value assignment in asf.c" mailinglist
tread).

Originally committed as revision 18552 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-17 14:05:57 +00:00
Ronald S. Bultje 799a0722fc Replace AVERROR(EIO) by AVERROR_EOF on end-of-file. See mailinglist
thread "[PATCH] RTSP-MS 15/15: move packet_time_start zero value
assignment in asf.c".

Originally committed as revision 18531 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-16 00:41:31 +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 2851d2253f Document addition of new avcodec_decode_video2/audio3/subtitle2() API and
the deprecation of the old API calls.

Originally committed as revision 18376 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-08 12:37:29 +00:00
Ronald S. Bultje 4bce3ba480 Reindent after r18372.
Originally committed as revision 18373 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-08 03:06:08 +00:00
Ronald S. Bultje 6e9f56c127 Add waveformat-extensible support in the wav muxer.
Patch (GSoC qualfication task) by Zhentan Feng spyfeng gmail com, see
"[FFmpeg-devel] Add waveformat extensible support in wav muxer (SoC
qualification task)" thread on mailinglist.

Originally committed as revision 18372 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-08 03:04:57 +00:00
Ronald S. Bultje be0395103a Don't strip the first three characters off of any metadata in ASF file.
See "[FFmpeg-devel] [PATCH] asf fix" thread. Patch contributed by
David DeHaven <dave sagetv com>.

Originally committed as revision 18213 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-28 03:54:31 +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 2121b160d5 Remove alpha channel from default colorspace tables, since it is unused. See
"qtpalette.h" thread on mailinglist.

Originally committed as revision 18144 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-22 13:05:13 +00:00
Ronald S. Bultje e6b09f4361 Add a @todo with a comment from Kostya so we don't forget to optimize that at
some point in the future.

Originally committed as revision 18142 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-22 12:47:16 +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 9c610b7667 Add a @todo item to use ByteIOContext instead of URLContext at some point in
the future, requested by Luca in "[PATCH] rtsp.c: read TCP server
notifications/messages" thread.

Originally committed as revision 18120 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 20:44:46 +00:00
Ronald S. Bultje 8b9794e542 Remove index writing in RM muxer, since it is broken (multiple streams per
single index chunk) and is always empty anyway. See "[PATCH] rmenc.c: remove
index writing" thread.

Originally committed as revision 18119 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 20:34:24 +00:00
Ronald S. Bultje 83c0ba3dad Don't allow to sync on packets of zero-size length, since these are never
valid. See "[PATCH] rmdec.c: prevent zero-length packets" thread.

Originally committed as revision 18118 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 19:19:09 +00:00
Ronald S. Bultje e75e603c1a Move "- 12" statement up a bit. See "[PATCH] rmdec.c: prevent zero-length
packets" thread.

Originally committed as revision 18117 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 19:18:07 +00:00
Ronald S. Bultje cf16c17a69 Add byte reordering for the SIPRO audio codec. See "rmdec.c: add SIPR codec
try #2" thread. Patch originally by Vladimir Voroshilov.

Originally committed as revision 18062 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-20 01:22:51 +00:00
Ronald S. Bultje e9fce261a6 Assign the x-pf-asf payload string to be decoded by rtp_asf.c, and add a
SDP line handler that parses the streamID in the SDP so that ASF stream
data can be matched to their respective streams in the RTSP demuxer. See
"[PATCH] RTSP-MS 12/15: ASF payload support" thread on mailinglist.

Originally committed as revision 18061 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-20 01:11:08 +00:00
Ronald S. Bultje 79ff11d78f Fix wrong @file tag.
Originally committed as revision 18026 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-17 18:35:58 +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 508fe07ab3 More reindent, forgotten in previous commit.
Originally committed as revision 18014 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-16 13:23:29 +00:00
Ronald S. Bultje 2d6f301470 Parse index chunk so that seeking in modern .rm files becomes a lot faster.
Has been tested against streamed / non-seekable input and passes make
seektest. See "[PATCH] rmdec.c: parse INDX chunk" thread on mailinglist.

Originally committed as revision 18013 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-16 13:03:23 +00:00
Ronald S. Bultje c882927957 Reindent after r18010.
Originally committed as revision 18011 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-16 13:01:02 +00:00
Ronald S. Bultje 55d330f913 Mark the first output audio frame as keyframe (separate patch from previous,
as requested by Kostya). See "[PATCH] rmdec.c: remove cache access
duplication".

Originally committed as revision 18010 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-16 12:59:18 +00:00
Ronald S. Bultje c5efef7be9 Remove packet returning in ff_rm_parse_packet() if we're using the packet
cache, since this can already be accessed through ff_rm_retrieve_cache().
See "[PATCH] rmdec.c: remove cache access duplication" thread.

Originally committed as revision 18009 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-16 12:57:49 +00:00
Ronald S. Bultje 7268f0bd8e Reindent after r18005.
Originally committed as revision 18007 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-16 12:50:12 +00:00
Ronald S. Bultje 6a2d3fc30b Merge code for packet reading in "old" (.ra, audio-only) Realmedia files and
the newer (.rm, audio/video) files. See "[PATCH] rmdec.c: merge old/new
packet reading code" thread on mailinglist.

Originally committed as revision 18005 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-16 12:47:34 +00:00
Ronald S. Bultje 7a160bca83 Fix index generation in the way that it was supposed to be used. See the
discussion in the ML thread "[PATCH] rmdec.c: merge old/new packet reading
code".

Over time, this code broke somewhat, e.g. seq was never actually written
into (and was thus always 1, therefore the seq condition was always true),
whereas it was supposed to be set to the sequence number of the video slice
in case the video frame is divided over multiple RM packets (slices). The
problem of this is that packets other than those containing the beginning
of a video frame would be indexed as well.
Secondly, flags&2 is supposed to be true for video keyframes and for these
audio packets containing the start of a block. For some codecs (e.g. AAC),
that is every single packet, whereas for others (e.g. cook), that is the
packet containing the first of a series of scrambled packets that are to be
descrambled together. Indexing any of the following would lead to incomplete
and thus useless frames. Problem here is that flags would be reset to 2 to
indicate that the first packet is ready to be returned, and in addition if
no data was left to be returned (which is always true for the first packet),
then we wouldn't actually write the index entry anyway.
All in all, the idea was good and it probably worked at some point, but that
is long ago. This patch should at the very least make it likely for this code
to be executed again at the right times, i.e. the way it was originally
intended to be used.

Originally committed as revision 17993 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-15 20:14:25 +00:00
Ronald S. Bultje b5b9ff2a1f Correctly skip complete INDX chunks, i.e. read the 32-bit header correctly
and if the size is broken (20 bytes, header-only), calculate the expected
size and skip the index entries anyway. See "[PATCH] rmdec.c: correctly
skip indexes" thread.

Originally committed as revision 17924 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-10 12:55:29 +00:00
Ronald S. Bultje b8cc5a9fdf Prevent (negative) overflow of rm->remaining_len. This evaluation really only
has two possible outcomes: either len and rm->remaining_len are the same, in
which case we care about the outcome and it is zero, or rm->remaining_len is
currently not in use and we don't care about the outcome. In that case, len
is positive and rm->remaining_len is zero, which leads to a negative result.
This is confusing and could eventually lead to a sign-flip if we skip a lot
of packets (unlikely, but still). Therefore, just always set it to zero.

Originally committed as revision 17919 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 22:03:47 +00:00
Ronald S. Bultje 7ccefd08f6 Revert to r17908.
Originally committed as revision 17918 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 22:02:06 +00:00
Ronald S. Bultje 88c4339bda Move MOVContext and related structures from mov.c to isom.h. See "[PATCH]
move MOVContext from mov.c to isom.h" thread on ML.

Originally committed as revision 17915 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 21:53:00 +00:00
Ronald S. Bultje 0ecf9cc900 Prevent (negative) overflow of rm->remaining_len. This evaluation really only
has two possible outcomes: either len and rm->remaining_len are the same, in
which case we care about the outcome and it is zero, or rm->remaining_len is
currently not in use and we don't care about the outcome. In that case, len
is positive and rm->remaining_len is zero, which leads to a negative result.
This is confusing and could eventually lead to a sign-flip if we skip a lot
of packets (unlikely, but still). Therefore, just always set it to zero.

Originally committed as revision 17910 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 13:08:19 +00:00
Ronald S. Bultje 21b3752932 Replace separate packet parsing for "old_format" .ra files by a call to
ff_rm_parse_packet(). See "[PATCH] Make RM demuxer behave better with -an
option" thread, which sort-of turned into an aggregate of unrelated rmdec.c
cleanups.

Originally committed as revision 17909 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 12:46:32 +00:00
Ronald S. Bultje dc3685e129 Move frame discarding out of the ff_rm_parse_packet() loop, and respect
rm->audio_pkt_cnt in case multiple packets should be read before the next
syncpoint in the file, so that ffplay -an on a file containing AAC audio
works. See "[PATCH] Make RM demuxer behave better with -an option" thread
on mailinglist.

Originally committed as revision 17908 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 12:42:53 +00:00
Ronald S. Bultje 37b7dac184 Reorder alphabetically after r17902.
Originally committed as revision 17906 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-09 12:06:47 +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 f989d39752 Remove size_t cast in setting s->priv_data directly to the (integer) file
descriptor returned by open(). This removes some dubious doublecasts such
as priv_data = (void *) (size_t) some_integer, and is always safe on systems
we care about because sizeof(int)<=sizeof(void*). See comments from Mans and
Michael in "[RFC] rtsp.c EOF support" thread.

Originally committed as revision 17768 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 13:57:09 +00:00
Ronald S. Bultje eafb17d140 Don't let finalize_packet() touch pkt->stream_index. Instead, let individual
payload handlers take care of that themselves at their own option. What this
patch really does is "fix" a bug in MS-RTSP protocol where incoming packets
are always coming in over the connection (UDP) or interleave-id (TCP) of
the stream-id of the first ASF packet in the RTP packet. However, RTP packets
may contain multiple ASF packets (and usually do, from what I can see), and
therefore this leads to playback bugs. The intended stream-id per ASF packet
is given in the respective ASF packet header. The ASF demuxer will correctly
read this and set pkt->stream_index, but since the "stream" parameter can
not be known to rtpdec.c or any of the RTP/RTSP code, the "st" parameter
in all these functions is basically invalid. Therefore, using st->id as
pkt->stream_index leads to various playback bugs. The result of this patch
is that pkt->stream_index is left untouched for RTP/ASF (and possibly for
other payloads that have similar behaviour).

The patch was discussed in the "[PATCH] rtpdec.c: don't overwrite
pkt->stream_index in finalize_packet()" thread on the mailinglist.

Originally committed as revision 17767 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 13:51:34 +00:00
Ronald S. Bultje 95f03cf31f Reindent after r17764.
Originally committed as revision 17765 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 13:42:16 +00:00
Ronald S. Bultje f3e71942e7 In the current implementation of rtp_parse_packet(), finalize_packet() is
called for all packets with an internal handler function but only for
non-first packets from dynamic payload parse_packet() handlers. This patch
fixes that. Bug was noticed by Luca in "[PATCH] rtpdec.c: don't overwrite
pkt->stream_index in finalize_packet()" thread.

Originally committed as revision 17764 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 13:41:50 +00:00
Ronald S. Bultje d176f90387 Reduce allocated length of the HTTP authentication request field buffer, as
noticed by Stefano and Luca in the "[PATCH]RTSP Basic Authentication"
mailinglist thread.

av_base64_encode() was recently changed. The previous implementation required
12 extra bytes (ceil(len(src)/3.)*4+12), whereas the new one is guaranteed to
fit in an exact buffer (ceil(len(src)/3.)*4), plus one extra byte for the
trailing zero. This change fixes no bug, it just slightly decreases the
amount of allocated memory.

Originally committed as revision 17761 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-03 13:26:17 +00:00
Ronald S. Bultje 2d243fb3fc Rename movenc.c MOVContext to MOVMuxContext, since MOVContext is already used
in mov.c for the demuxer. See "[PATCH] rename movenc.c MOVContext to
MOVMuxContext" thread on the mailinglist.

Originally committed as revision 17659 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-28 16:02:29 +00:00
Ronald S. Bultje 144ae29dde Implement marker bit, which is used for several RTP payloads currently
under review. See "[FFmpeg-devel] RTP mark bit not passed to parse_packet"
thread on mailinglist.

Originally committed as revision 17616 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-26 14:24:50 +00:00
Ronald S. Bultje a68d44ed6f Don't (ab)use PKT_FLAG_* in RTP code, since the two have virtually nothing
in common except for this one value. Change was requested by Luca in the
"[FFmpeg-devel] RTP mark bit not passed to parse_packet" thread.

Originally committed as revision 17615 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-26 14:23:05 +00:00
Ronald S. Bultje 26d6b3e230 Document rtsp.h, see "[PATCH] document rtsp.h" thread.
Originally committed as revision 17614 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-26 14:15:41 +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