From: Matthieu Castet Date: Mon, 17 Jul 2006 10:44:53 +0000 (+0000) Subject: fix playback of theora.ogg on mphq patch by (matthieu castet %% castet dat matthieu... X-Git-Tag: v0.5~12354 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=116d866ca5052ab3d50b2ead7acf5f63c945c273;p=platform%2Fupstream%2Flibav.git fix playback of theora.ogg on mphq patch by (matthieu castet %% castet dat matthieu ot free dat fr %%) Originally committed as revision 5776 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c index 04fa4d1..75f0889 100644 --- a/libavcodec/vp3.c +++ b/libavcodec/vp3.c @@ -2628,8 +2628,10 @@ static int theora_decode_header(AVCodecContext *avctx, GetBitContext *gb) skip_bits(gb, 24); /* frame height */ } + if (s->theora >= 0x030200) { skip_bits(gb, 8); /* offset x */ skip_bits(gb, 8); /* offset y */ + } skip_bits(gb, 32); /* fps numerator */ skip_bits(gb, 32); /* fps denumerator */ @@ -2818,6 +2820,8 @@ static int theora_decode_init(AVCodecContext *avctx) } if(8*op_bytes != get_bits_count(&gb)) av_log(avctx, AV_LOG_ERROR, "%d bits left in packet %X\n", 8*op_bytes - get_bits_count(&gb), ptype); + if (s->theora < 0x030200) + break; } vp3_decode_init(avctx); diff --git a/libavformat/oggparsetheora.c b/libavformat/oggparsetheora.c index fcd9dc1..9052bbb 100644 --- a/libavformat/oggparsetheora.c +++ b/libavformat/oggparsetheora.c @@ -75,7 +75,7 @@ theora_header (AVFormatContext * s, int idx) if (version >= 0x030400) skip_bits(&gb, 164); - else + else if (version >= 0x030200) skip_bits(&gb, 64); st->codec->time_base.den = get_bits(&gb, 32); st->codec->time_base.num = get_bits(&gb, 32);