lavc/v210dec: Allow odd width.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Sat, 30 Jan 2016 12:31:44 +0000 (13:31 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Sat, 30 Jan 2016 12:31:44 +0000 (13:31 +0100)
The rightmost column is not decoded correctly.

Fixes a part of ticket #5195.

libavcodec/v210dec.c

index 12d5d54..9af9af6 100644 (file)
@@ -53,10 +53,6 @@ static av_cold int decode_init(AVCodecContext *avctx)
 {
     V210DecContext *s = avctx->priv_data;
 
-    if (avctx->width & 1) {
-        av_log(avctx, AV_LOG_ERROR, "v210 needs even width\n");
-        return AVERROR_INVALIDDATA;
-    }
     avctx->pix_fmt             = AV_PIX_FMT_YUV422P10;
     avctx->bits_per_raw_sample = 10;
 
@@ -141,7 +137,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
         }
 
         psrc += stride;
-        y += pic->linesize[0] / 2 - avctx->width;
+        y += pic->linesize[0] / 2 - avctx->width + (avctx->width & 1);
         u += pic->linesize[1] / 2 - avctx->width / 2;
         v += pic->linesize[2] / 2 - avctx->width / 2;
     }