avcodec/tiff: fix odd dimensioned yuv
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 14 Sep 2014 23:33:09 +0000 (01:33 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 14 Sep 2014 23:38:02 +0000 (01:38 +0200)
Fixes Ticket3893

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/tiff.c

index 0352639..6e2096f 100644 (file)
@@ -510,7 +510,9 @@ static int tiff_unpack_strip(TiffContext *s, AVFrame *p, uint8_t *dst, int strid
         }
         dst = s->yuv_line;
         stride = 0;
-        width = s->width * s->subsampling[1] + 2*(s->width / s->subsampling[0]);
+
+        width = (s->width - 1) / s->subsampling[0] + 1;
+        width = width * s->subsampling[0] * s->subsampling[1] + 2*width;
         av_assert0(width <= bytes_per_row);
         av_assert0(s->bpp == 24);
     }