media: mtk-vcodec: enc: add vp8 profile ctrl
authorDafna Hirschfeld <dafna.hirschfeld@collabora.com>
Fri, 22 Oct 2021 15:04:08 +0000 (16:04 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 19 Nov 2021 06:02:52 +0000 (06:02 +0000)
In order for the encoder to work with gstreamer
it needs to have the V4L2_CID_MPEG_VIDEO_VP8_PROFILE
ctrl. This patch adds that ctrl with only profile 0
supported.

Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
Acked-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c

index 7457451..7232dc0 100644 (file)
@@ -104,6 +104,13 @@ static int vidioc_venc_s_ctrl(struct v4l2_ctrl *ctrl)
                p->gop_size = ctrl->val;
                ctx->param_change |= MTK_ENCODE_PARAM_GOP_SIZE;
                break;
+       case V4L2_CID_MPEG_VIDEO_VP8_PROFILE:
+               /*
+                * FIXME - what vp8 profiles are actually supported?
+                * The ctrl is added (with only profile 0 supported) for now.
+                */
+               mtk_v4l2_debug(2, "V4L2_CID_MPEG_VIDEO_VP8_PROFILE val = %d", ctrl->val);
+               break;
        case V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME:
                mtk_v4l2_debug(2, "V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME");
                p->force_intra = 1;
@@ -1395,6 +1402,9 @@ int mtk_vcodec_enc_ctrls_setup(struct mtk_vcodec_ctx *ctx)
        v4l2_ctrl_new_std_menu(handler, ops, V4L2_CID_MPEG_VIDEO_H264_LEVEL,
                               h264_max_level,
                               0, V4L2_MPEG_VIDEO_H264_LEVEL_4_0);
+       v4l2_ctrl_new_std_menu(handler, ops, V4L2_CID_MPEG_VIDEO_VP8_PROFILE,
+                              V4L2_MPEG_VIDEO_VP8_PROFILE_0, 0, V4L2_MPEG_VIDEO_VP8_PROFILE_0);
+
 
        if (handler->error) {
                mtk_v4l2_err("Init control handler fail %d",