[FFmpeg-devel] [PATCH] lavc/flacdec: Add frame CRC calculation

Paul B Mahol onemda at gmail.com
Thu Feb 21 12:26:32 CET 2013


From: James Almer <jamrial at gmail.com>

Fixes ticket #2266

Signed-off-by: James Almer <jamrial at gmail.com>
Signed-off-by: Paul B Mahol <onemda at gmail.com>
---
 libavcodec/flacdec.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c
index f264d20..1f6d9a8 100644
--- a/libavcodec/flacdec.c
+++ b/libavcodec/flacdec.c
@@ -533,7 +533,13 @@ static int flac_decode_frame(AVCodecContext *avctx, void *data,
         av_log(s->avctx, AV_LOG_ERROR, "decode_frame() failed\n");
         return -1;
     }
-    bytes_read = (get_bits_count(&s->gb)+7)/8;
+    bytes_read = get_bits_count(&s->gb)/8;
+
+    if ((s->avctx->err_recognition & AV_EF_CRCCHECK) &&
+        av_crc(av_crc_get_table(AV_CRC_16_ANSI),
+               0, buf, bytes_read)) {
+        av_log(s->avctx, AV_LOG_ERROR, "CRC error\n");
+    }
 
     /* get output buffer */
     frame->nb_samples = s->blocksize;
-- 
1.7.11.4



More information about the ffmpeg-devel mailing list