Re: [PATCH] media: venus: support frame rate control

From: Stanimir Varbanov
Date: Mon Feb 17 2020 - 05:15:10 EST


Hi Jeff,

Thanks for the patch!

On 2/13/20 11:30 PM, Jeffrey Kardatzke wrote:
> Frame rate control is always enabled in this driver, so make it silently
> support the V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE.
>
> Signed-off-by: Jeffrey Kardatzke <jkardatzke@xxxxxxxxxx>
> ---
> drivers/media/platform/qcom/venus/venc_ctrls.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c b/drivers/media/platform/qcom/venus/venc_ctrls.c
> index 877c0b3299e9..9ede692f77c5 100644
> --- a/drivers/media/platform/qcom/venus/venc_ctrls.c
> +++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
> @@ -199,6 +199,9 @@ static int venc_op_s_ctrl(struct v4l2_ctrl *ctrl)
> }
> mutex_unlock(&inst->lock);
> break;
> + case V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE:
> + // Silently ignore, it's always enabled.

Please, use C comments and follow the kernel coding style.

I wonder shouldn't it be better to add rc_enable field in struct
venc_controls and give the user choice to disable the rate control? We
can keep the default to be "enabled".

> + break;
> default:
> return -EINVAL;
> }
> @@ -351,6 +354,9 @@ int venc_ctrl_init(struct venus_inst *inst)
> v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
> V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME, 0, 0, 0, 0);
>
> + v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
> + V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE, 0, 1, 1, 1);
> +

you forgot to increment the number of controls in the call to
v4l2_ctrl_handler_init.

> ret = inst->ctrl_handler.error;
> if (ret)
> goto err;
>

--
regards,
Stan