set audio parameters if frame header is ok, even if crc fails
authorJustin Ruggles <justin.ruggles@gmail.com>
Sun, 25 May 2008 18:54:17 +0000 (18:54 +0000)
committerJustin Ruggles <justin.ruggles@gmail.com>
Sun, 25 May 2008 18:54:17 +0000 (18:54 +0000)
Originally committed as revision 13399 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/ac3dec.c

index b05db9f..ab811f1 100644 (file)
@@ -1181,15 +1181,15 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data, int *data_size,
     }
 
     /* check for crc mismatch */
-    if(avctx->error_resilience >= FF_ER_CAREFUL) {
+    if(!err && avctx->error_resilience >= FF_ER_CAREFUL) {
         if(av_crc(av_crc_get_table(AV_CRC_16_ANSI), 0, &buf[2], s->frame_size-2)) {
             av_log(avctx, AV_LOG_ERROR, "frame CRC mismatch\n");
             err = 1;
         }
     }
 
-    /* if frame is ok, set audio parameters */
-    if (!err) {
+    /* if frame header is ok, set audio parameters */
+    if (err >= 0) {
         avctx->sample_rate = s->sample_rate;
         avctx->bit_rate = s->bit_rate;