media: mtk-vcodec: venc: fix invalid time per frame in S_PARM
v4l2-compliance expects the driver to adjust the time per frame if it is invalid (numerator or denominator set to 0). Adjust it to the default value in these cases. Signed-off-by: Alexandre Courbot <acourbot@chromium.org> Acked-by: Tiffany Lin <tiffany.lin@mediatek.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
7ee20328e4
commit
42f401e751
@ -200,14 +200,18 @@ static int vidioc_venc_s_parm(struct file *file, void *priv,
|
||||
struct v4l2_streamparm *a)
|
||||
{
|
||||
struct mtk_vcodec_ctx *ctx = fh_to_ctx(priv);
|
||||
struct v4l2_fract *timeperframe = &a->parm.output.timeperframe;
|
||||
|
||||
if (a->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
|
||||
return -EINVAL;
|
||||
|
||||
ctx->enc_params.framerate_num =
|
||||
a->parm.output.timeperframe.denominator;
|
||||
ctx->enc_params.framerate_denom =
|
||||
a->parm.output.timeperframe.numerator;
|
||||
if (timeperframe->numerator == 0 || timeperframe->denominator == 0) {
|
||||
timeperframe->numerator = MTK_DEFAULT_FRAMERATE_NUM;
|
||||
timeperframe->denominator = MTK_DEFAULT_FRAMERATE_DENOM;
|
||||
}
|
||||
|
||||
ctx->enc_params.framerate_num = timeperframe->denominator;
|
||||
ctx->enc_params.framerate_denom = timeperframe->numerator;
|
||||
ctx->param_change |= MTK_ENCODE_PARAM_FRAMERATE;
|
||||
|
||||
a->parm.output.capability = V4L2_CAP_TIMEPERFRAME;
|
||||
|
Loading…
Reference in New Issue
Block a user