From: Philipp Zabel Date: Fri, 11 Jul 2014 09:36:37 +0000 (-0300) Subject: [media] coda: allow odd width, but still round up bytesperline X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=1b0ed7be67f84b5381efb1b97740b2f66e0ecbfb;p=deliverable%2Flinux.git [media] coda: allow odd width, but still round up bytesperline Even though the CODA h.264 decoder always decodes complete macroblocks, we can set the stride to the corresponding multiple of 16 and use a value smaller than that as real width. Unfortunately the same doesn't work for height, as there is no vertical linesperframe stride for discontiguous planar YUV frames. Signed-off-by: Philipp Zabel Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/platform/coda.c b/drivers/media/platform/coda.c index 5ac455f53256..05419f4715a5 100644 --- a/drivers/media/platform/coda.c +++ b/drivers/media/platform/coda.c @@ -738,9 +738,9 @@ static int coda_try_fmt_vid_cap(struct file *file, void *priv, /* The h.264 decoder only returns complete 16x16 macroblocks */ if (codec && codec->src_fourcc == V4L2_PIX_FMT_H264) { - f->fmt.pix.width = round_up(f->fmt.pix.width, 16); + f->fmt.pix.width = f->fmt.pix.width; f->fmt.pix.height = round_up(f->fmt.pix.height, 16); - f->fmt.pix.bytesperline = f->fmt.pix.width; + f->fmt.pix.bytesperline = round_up(f->fmt.pix.width, 16); f->fmt.pix.sizeimage = f->fmt.pix.bytesperline * f->fmt.pix.height * 3 / 2; }