From 281551131d65603ae31df280b4ff1e7e7930a8f9 Mon Sep 17 00:00:00 2001 From: Baptiste Coudurier <baptiste.coudurier@gmail.com> Date: Wed, 3 Jun 2009 23:13:53 +0000 Subject: [PATCH] broken stsd length might be < 16, fix elst-assert.mp4 Originally committed as revision 19084 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/mov.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 1c51e8bec66..415acd159c1 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -763,15 +763,17 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOVAtom atom) for(pseudo_stream_id=0; pseudo_stream_id<entries; pseudo_stream_id++) { //Parsing Sample description table enum CodecID id; - int dref_id; + int dref_id = 1; MOVAtom a = { 0, 0, 0 }; int64_t start_pos = url_ftell(pb); int size = get_be32(pb); /* size */ uint32_t format = get_le32(pb); /* data format */ - get_be32(pb); /* reserved */ - get_be16(pb); /* reserved */ - dref_id = get_be16(pb); + if (size >= 16) { + get_be32(pb); /* reserved */ + get_be16(pb); /* reserved */ + dref_id = get_be16(pb); + } if (st->codec->codec_tag && st->codec->codec_tag != format && -- GitLab