fix playback of theora.ogg on mphq patch by (matthieu castet %% castet dat matthieu...
authorMatthieu Castet <castet.matthieu@free.fr>
Mon, 17 Jul 2006 10:44:53 +0000 (10:44 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 17 Jul 2006 10:44:53 +0000 (10:44 +0000)
Originally committed as revision 5776 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/vp3.c
libavformat/oggparsetheora.c

index 04fa4d1..75f0889 100644 (file)
@@ -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);
index fcd9dc1..9052bbb 100644 (file)
@@ -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);