]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/v410dec.c
cavsdec: check dimensions being valid.
[ffmpeg] / libavcodec / v410dec.c
index 10d73057afe20ddb9e049f6b0e2d4338e45ba76e..1608ae5b3004e2caa126ed978c96c6c29ef5f838 100644 (file)
@@ -29,7 +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_WARNING, "v410 requires width to be even.\n");
+        if (avctx->err_recognition & AV_EF_EXPLODE) {
+            av_log(avctx, AV_LOG_ERROR, "v410 requires width to be even.\n");
+            return AVERROR_INVALIDDATA;
+        } else {
+            av_log(avctx, AV_LOG_WARNING, "v410 requires width to be even, continuing anyway.\n");
+        }
     }
 
     avctx->coded_frame = avcodec_alloc_frame();
@@ -108,7 +113,7 @@ static av_cold int v410_decode_close(AVCodecContext *avctx)
 AVCodec ff_v410_decoder = {
     .name         = "v410",
     .type         = AVMEDIA_TYPE_VIDEO,
-    .id           = CODEC_ID_V410,
+    .id           = AV_CODEC_ID_V410,
     .init         = v410_decode_init,
     .decode       = v410_decode_frame,
     .close        = v410_decode_close,