v410dec: Implement explode mode support
authorDerek Buitenhuis <derek.buitenhuis@gmail.com>
Mon, 23 Jul 2012 15:03:58 +0000 (11:03 -0400)
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>
Mon, 23 Jul 2012 15:36:48 +0000 (11:36 -0400)
Try and decode broken files, but still fail if explode
mode is enabled.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
libavcodec/v410dec.c

index a6f236b..d7660ee 100644 (file)
@@ -29,8 +29,12 @@ static av_cold int v410_decode_init(AVCodecContext *avctx)
     avctx->bits_per_raw_sample = 10;
 
     if (avctx->width & 1) {
-        av_log(avctx, AV_LOG_ERROR, "v410 requires even width.\n");
-        return AVERROR_INVALIDDATA;
+        if (avctx->err_recognition & AV_EF_EXPLODE) {
+            av_log(avctx, AV_LOG_ERROR, "v410 requires width to be even, continuing anyway.\n");
+            return AVERROR_INVALIDDATA;
+        } else {
+            av_log(avctx, AV_LOG_WARNING, "v410 requires width to be even.\n");
+        }
     }
 
     avctx->coded_frame = avcodec_alloc_frame();