Commit Graph

119 Commits

Author SHA1 Message Date
Reimar Döffinger
c32b701749 Do not read the RM index when input is streamed (since it requires seeking
forward and then back again) or AVFMT_FLAG_IGNIDX is set.

Originally committed as revision 23509 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-06 18:48:49 +00:00
Francesco Lavra
74e8ccad4c Move rm_codec_tags to rm.c so muxer/demuxer can share it.
Patch by Francesco Lavra <francescolavra interfree it>.

Originally committed as revision 23360 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-28 18:18:33 +00:00
Zhou Zongyi
aafb822ba5 We're using generic tag-to-ID functions, so specific codec_id assignments
are no longer necessary. Patch by Zhou Zongyi <zhouzy AT os pku edu cn>.

Originally committed as revision 23312 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-25 15:39:32 +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
Stefano Sabatini
2874c81cc8 Replace all remaining occurrences of AVERROR_NOMEM with
AVERROR(ENOMEM).

AVERROR_NOMEM is deprecated and will be dropped at the next libavutil
major bump.

Originally committed as revision 22791 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-03 14:15:00 +00:00
Ronald S. Bultje
7b374c9ff2 Another uninitialized value.
See http://tranquillity.ath.cx/clang/2010-03-30-1/report-e6KUTb.html#EndPath

Originally committed as revision 22783 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-02 14:58:55 +00:00
Ronald S. Bultje
190413cf81 Fix uninitialized value in codepath.
See http://tranquillity.ath.cx/clang/2010-03-30-1/report-40QvF3.html#EndPath

Originally committed as revision 22782 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-02 14:58:03 +00:00
Ronald S. Bultje
ddf8e75ede Remove dead initialization.
Originally committed as revision 22781 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-02 14:56:59 +00:00
Jean-Daniel Dupas
cc947f04cc Replace all occurences of PKT_FLAG_KEY with AV_PKT_FLAG_KEY.
Patch by Jean-Daniel Dupas, devlists shadowlab org

Originally committed as revision 22744 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-31 12:29:58 +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
Aurelien Jacobs
1ab0406db1 export rm_reorder_sipr_data() for future use by matroska demuxer
Originally committed as revision 22491 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-12 23:35:59 +00:00
Aurelien Jacobs
adae9fa65e export sipr_subpk_size for future use by matroska demuxer
Originally committed as revision 22490 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-12 23:34:30 +00:00
Ronald S. Bultje
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
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
Michael Niedermayer
17986563eb Get rid of useless casts.
Originally committed as revision 20831 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-13 17:54:09 +00:00
Michael Niedermayer
005d9b57ad Print extradata in case of failure. I had this in my local tree and it
might be usefull for others ...

Originally committed as revision 20828 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-13 16:20:00 +00:00
Carl Eugen Hoyos
a76cf4e197 Use constant CODEC_ID_NONE instead of 0 where appropriate.
Originally committed as revision 20824 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-13 15:28:00 +00:00
Kostya Shishkov
0dae3e13e3 Factor out extradata reading code.
Borrowed from RM demuxer in FFmbc.

Originally committed as revision 20821 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-13 10:07:08 +00:00
Kostya Shishkov
119c61a30f RM audio stream version should be 16-bit followed by header size or reserved
word, so treat it this way instead of extracting different parts from 32-bit
value.

Originally committed as revision 20820 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-13 09:08:58 +00:00
Kostya Shishkov
461ef74116 Make RM demuxer look more like proper demuxer by introducing codec tags
instead of many strcmp() on always four-byte strings.
Idea borrowed from RM demuxer in FFmbc by Baptiste Coudurier.

Originally committed as revision 20819 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-13 08:51:27 +00:00
Kostya Shishkov
851ef8755b Factor out variable declaration
Originally committed as revision 20818 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-13 08:44:06 +00:00
Reimar Döffinger
cbb5da57cd When resetting vst->pkt.data to NULL, also set vst->slices.
This avoids a crash when the next slice is not a start slice and thus
pkt->data is still NULL.
This probably only happens with broken or unsupported files like
http://samples.mplayerhq.hu/real/multirate/JustaSpa1937_64kb.rm
that need further fixes, but keeping vst state consistent is still a good idea.

Originally committed as revision 19830 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-09-13 11:08:59 +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
Michael Niedermayer
b33d75fd80 Move declarations in sync() closer to where they are used.
Originally committed as revision 18556 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-17 14:38:52 +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
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
Måns Rullgård
c3df4a3bfe rmdec: fix crash at end of file
Originally committed as revision 18018 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-16 20:22:39 +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
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
Aurelien Jacobs
1f1ff73156 remove now useless get_str16() from rmdec.c
Originally committed as revision 17397 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-17 21:41:50 +00:00
Aurelien Jacobs
7379d5bc0b use new metadata API in rm (de)muxer
Originally committed as revision 17396 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-17 21:40:38 +00:00
Benoit Fouet
0fd7c133f4 Add a context to av_log() calls.
Originally committed as revision 17377 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-16 16:12:23 +00:00
Diego Biurrun
517ac2434b Use more descriptive format long_names.
Originally committed as revision 17184 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-12 17:26:06 +00:00
Michael Niedermayer
88297e80aa Reformat rdt_demuxer AVCodec struct sanely.
Originally committed as revision 16969 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-03 13:12:20 +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