media: vicodec: add V4L2_CID_MIN_BUFFERS_FOR_OUTPUT
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 20 Mar 2019 11:31:39 +0000 (07:31 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Tue, 11 Jun 2019 15:30:32 +0000 (11:30 -0400)
The stateful encoder requires the presence of this control.
Since a single buffer is sufficient for vicodec, we just
set this control to 1.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/vicodec/vicodec-core.c

index 7a78d04..4bea4a5 100644 (file)
@@ -1801,13 +1801,16 @@ static int vicodec_open(struct file *file)
        file->private_data = &ctx->fh;
        ctx->dev = dev;
        hdl = &ctx->hdl;
-       v4l2_ctrl_handler_init(hdl, 4);
+       v4l2_ctrl_handler_init(hdl, 5);
        v4l2_ctrl_new_std(hdl, &vicodec_ctrl_ops, V4L2_CID_MPEG_VIDEO_GOP_SIZE,
                          1, 16, 1, 10);
        v4l2_ctrl_new_std(hdl, &vicodec_ctrl_ops, V4L2_CID_FWHT_I_FRAME_QP,
                          1, 31, 1, 20);
        v4l2_ctrl_new_std(hdl, &vicodec_ctrl_ops, V4L2_CID_FWHT_P_FRAME_QP,
                          1, 31, 1, 20);
+       if (ctx->is_enc)
+               v4l2_ctrl_new_std(hdl, &vicodec_ctrl_ops,
+                                 V4L2_CID_MIN_BUFFERS_FOR_OUTPUT, 1, 1, 1, 1);
        if (ctx->is_stateless)
                v4l2_ctrl_new_custom(hdl, &vicodec_ctrl_stateless_state, NULL);
        if (hdl->error) {