[media] coda: do not allocate maximum number of framebuffers for encoder
authorPhilipp Zabel <p.zabel@pengutronix.de>
Fri, 21 Jun 2013 06:55:29 +0000 (03:55 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Fri, 26 Jul 2013 15:15:03 +0000 (12:15 -0300)
The encoder only ever needs two buffers, but we'll have to increase
CODA_MAX_FRAMEBUFFERS for the decoder.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/platform/coda.c

index f6d790af5a2dd489ece195413fe660efdbba7e31..6597d6707f138d8435f91ad87333c7f8b27b8c17 100644 (file)
@@ -1006,7 +1006,6 @@ static int coda_alloc_framebuffers(struct coda_ctx *ctx, struct coda_q_data *q_d
        ysize = round_up(q_data->width, 8) * height;
 
        /* Allocate frame buffers */
-       ctx->num_internal_frames = CODA_MAX_FRAMEBUFFERS;
        for (i = 0; i < ctx->num_internal_frames; i++) {
                ctx->internal_frames[i].size = q_data->sizeimage;
                if (fourcc == V4L2_PIX_FMT_H264 && dev->devtype->product != CODA_DX6)
@@ -1356,6 +1355,7 @@ static int coda_start_streaming(struct vb2_queue *q, unsigned int count)
                goto out;
        }
 
+       ctx->num_internal_frames = 2;
        ret = coda_alloc_framebuffers(ctx, q_data_src, dst_fourcc);
        if (ret < 0) {
                v4l2_err(v4l2_dev, "failed to allocate framebuffers\n");