From: Philipp Zabel Date: Fri, 23 Jan 2015 16:51:28 +0000 (-0300) Subject: [media] coda: don't ever use subsampling ping-pong buffers as reconstructed reference... X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=e3cccff9aa93679f1b9d23080cc07197f58588f4;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git [media] coda: don't ever use subsampling ping-pong buffers as reconstructed reference buffers On i.MX6, two subsampling ping-pong buffers are used for motion estimation and deblocking They should not be counted as framebuffers, or they will be also used to store reconstructed frames, causing visible artifacts in P-frames. Signed-off-by: Philipp Zabel Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/platform/coda/coda-bit.c b/drivers/media/platform/coda/coda-bit.c index 6ecfd29b7d98..7cdddd55d65d 100644 --- a/drivers/media/platform/coda/coda-bit.c +++ b/drivers/media/platform/coda/coda-bit.c @@ -718,6 +718,7 @@ static int coda_start_encoding(struct coda_ctx *ctx) struct vb2_buffer *buf; int gamma, ret, value; u32 dst_fourcc; + int num_fb; u32 stride; q_data_src = get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_OUTPUT); @@ -983,12 +984,14 @@ static int coda_start_encoding(struct coda_ctx *ctx) v4l2_err(v4l2_dev, "failed to allocate framebuffers\n"); goto out; } + num_fb = 2; stride = q_data_src->bytesperline; } else { ctx->num_internal_frames = 0; + num_fb = 0; stride = 0; } - coda_write(dev, ctx->num_internal_frames, CODA_CMD_SET_FRAME_BUF_NUM); + coda_write(dev, num_fb, CODA_CMD_SET_FRAME_BUF_NUM); coda_write(dev, stride, CODA_CMD_SET_FRAME_BUF_STRIDE); if (dev->devtype->product == CODA_7541) {