media: coda: align internal mpeg4 framebuffers to 16x16 macroblocks
authorPhilipp Zabel <p.zabel@pengutronix.de>
Fri, 7 Jul 2017 09:58:29 +0000 (05:58 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 19 Jul 2017 19:20:35 +0000 (15:20 -0400)
This fixes visual artifacts in the first macroblock row of encoded
MPEG-4 video output caused by 8 additional lines of luma data leaking
into the chroma planes of the internal reference framebuffers: the
buffer size is rounded up to a multiple of 16x16 macroblock size, same
as for the h.264 encoder.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/platform/coda/coda-bit.c

index a4abeabfa53770da0e2a8ff8b79c1b7a4b137b3f..2f31c672aba04e1c9946425413e5ec8a73f96409 100644 (file)
@@ -394,7 +394,8 @@ static int coda_alloc_framebuffers(struct coda_ctx *ctx,
        int i;
 
        if (ctx->codec->src_fourcc == V4L2_PIX_FMT_H264 ||
-           ctx->codec->dst_fourcc == V4L2_PIX_FMT_H264) {
+           ctx->codec->dst_fourcc == V4L2_PIX_FMT_H264 ||
+           ctx->codec->dst_fourcc == V4L2_PIX_FMT_MPEG4) {
                width = round_up(q_data->width, 16);
                height = round_up(q_data->height, 16);
        } else {