mlpdec: Restart header sync must be 0x31ea for MLP.
authorRamiro Polla <ramiro.polla@gmail.com>
Tue, 21 Apr 2009 21:57:23 +0000 (21:57 +0000)
committerRamiro Polla <ramiro.polla@gmail.com>
Tue, 21 Apr 2009 21:57:23 +0000 (21:57 +0000)
Originally committed as revision 18648 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mlpdec.c

index bf490ab..4932960 100644 (file)
@@ -337,13 +337,14 @@ static int read_restart_header(MLPDecodeContext *m, GetBitContext *gbp,
     int start_count = get_bits_count(gbp);
 
     sync_word = get_bits(gbp, 13);
+    s->noise_type = get_bits1(gbp);
 
-    if (sync_word != 0x31ea >> 1) {
+    if ((m->avctx->codec_id == CODEC_ID_MLP && s->noise_type) ||
+        sync_word != 0x31ea >> 1) {
         av_log(m->avctx, AV_LOG_ERROR,
                "restart header sync incorrect (got 0x%04x)\n", sync_word);
         return -1;
     }
-    s->noise_type = get_bits1(gbp);
 
     skip_bits(gbp, 16); /* Output timestamp */