[FFmpeg-cvslog] avformat/wtvdec: ignore mpeg2 extradata
Peter Ross
git at videolan.org
Thu May 1 18:51:36 CEST 2014
ffmpeg | branch: master | Peter Ross <pross at xvid.org> | Thu May 1 22:22:09 2014 +1000| [be098f6237980292c7f5c640aae638efd9e6cb11] | committer: Michael Niedermayer
avformat/wtvdec: ignore mpeg2 extradata
Files produced by windows media center contain meaningless mpeg1 sequence
header. The mpeg2 decoder detects the presence mpeg1 sequence header start
codes and attempts to decode the stream as mpeg1. (This problem introduced
in 73a2d16b.)
Fixes ticket #3601.
Signed-off-by: Peter Ross <pross at xvid.org>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=be098f6237980292c7f5c640aae638efd9e6cb11
---
libavformat/wtvdec.c | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)
diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c
index 597a11f..cfdc555 100644
--- a/libavformat/wtvdec.c
+++ b/libavformat/wtvdec.c
@@ -694,19 +694,7 @@ static AVStream * parse_media_type(AVFormatContext *s, AVStream *st, int sid,
avio_skip(pb, FFMAX(size - consumed, 0));
} else if (!ff_guidcmp(formattype, ff_format_mpeg2_video)) {
uint64_t consumed = parse_videoinfoheader2(s, st);
- if (size - consumed >= 20) {
- uint32_t count;
- consumed += 20;
- avio_skip(pb, 4);
- count = avio_rl32(pb);
- count = FFMIN(count, size - consumed);
- avio_skip(pb, 12);
- if (count && ff_get_extradata(st->codec, pb, count) < 0) {
- ff_free_stream(s, st);
- return NULL;
- }
- consumed += count;
- }
+ /* ignore extradata; files produced by windows media center contain meaningless mpeg1 sequence header */
avio_skip(pb, FFMAX(size - consumed, 0));
} else {
if (ff_guidcmp(formattype, ff_format_none))
More information about the ffmpeg-cvslog
mailing list