Read bitstream parameters for E-AC-3 streams before returning an error.
authorJustin Ruggles <justin.ruggles@gmail.com>
Sun, 3 Aug 2008 22:29:06 +0000 (22:29 +0000)
committerJustin Ruggles <justin.ruggles@gmail.com>
Sun, 3 Aug 2008 22:29:06 +0000 (22:29 +0000)
Originally committed as revision 14528 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/ac3dec.c

index 1f7ca8f..115de60 100644 (file)
@@ -283,9 +283,6 @@ static int parse_frame_header(AC3DecodeContext *s)
     if(err)
         return err;
 
     if(err)
         return err;
 
-    if(hdr.bitstream_id > 10)
-        return AC3_PARSE_ERROR_BSID;
-
     /* get decoding parameters from header info */
     s->bit_alloc_params.sr_code     = hdr.sr_code;
     s->channel_mode                 = hdr.channel_mode;
     /* get decoding parameters from header info */
     s->bit_alloc_params.sr_code     = hdr.sr_code;
     s->channel_mode                 = hdr.channel_mode;
@@ -310,6 +307,9 @@ static int parse_frame_header(AC3DecodeContext *s)
         s->channel_in_cpl[s->lfe_ch] = 0;
     }
 
         s->channel_in_cpl[s->lfe_ch] = 0;
     }
 
+    if(hdr.bitstream_id > 10)
+        return AC3_PARSE_ERROR_BSID;
+
     return ac3_parse_header(s);
 }
 
     return ac3_parse_header(s);
 }