From 23a211cbba0b7c9ee694040031b2e5da1be54a00 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 26 Oct 2013 22:46:48 +0200 Subject: lavc: change all decoders to behave consistently with AV_EF_CRCCHECK. Just crccheck prints a warning, crccheck+explode returns an error. Also document this behavior. --- libavcodec/wavpack.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'libavcodec/wavpack.c') diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c index bdc2a81d44..cbc5b04d1a 100644 --- a/libavcodec/wavpack.c +++ b/libavcodec/wavpack.c @@ -699,9 +699,11 @@ static inline int wv_unpack_mono(WavpackFrameContext *s, GetBitContext *gb, } while (!last && count < s->samples); wv_reset_saved_context(s); - if ((s->avctx->err_recognition & AV_EF_CRCCHECK) && - wv_check_crc(s, crc, crc_extra_bits)) - return AVERROR_INVALIDDATA; + if (s->avctx->err_recognition & AV_EF_CRCCHECK) { + int ret = wv_check_crc(s, crc, crc_extra_bits); + if (ret < 0 && s->avctx->err_recognition & AV_EF_EXPLODE) + return ret; + } return 0; } -- cgit v1.2.3