media: amphion: G/S_PARM only for encoder's output queue
authorMing Qian <ming.qian@nxp.com>
Mon, 9 May 2022 07:52:25 +0000 (09:52 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Fri, 13 May 2022 09:02:22 +0000 (11:02 +0200)
G/S_PARM doesn't make sense for the capture queue of a stateful encoder,
unless V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL is set to reserve hardware
resources.

Otherwise it will fail the v4l2-compliance

Signed-off-by: Ming Qian <ming.qian@nxp.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/amphion/venc.c

index ba9f49cca155217f8324929385ebf160e8b1ff70..43d61d82f58c291b83e7093a26124436a3483e9f 100644 (file)
@@ -283,6 +283,9 @@ static int venc_g_parm(struct file *file, void *fh, struct v4l2_streamparm *parm
        if (!parm)
                return -EINVAL;
 
+       if (!V4L2_TYPE_IS_OUTPUT(parm->type))
+               return -EINVAL;
+
        if (!vpu_helper_check_type(inst, parm->type))
                return -EINVAL;
 
@@ -304,6 +307,9 @@ static int venc_s_parm(struct file *file, void *fh, struct v4l2_streamparm *parm
        if (!parm)
                return -EINVAL;
 
+       if (!V4L2_TYPE_IS_OUTPUT(parm->type))
+               return -EINVAL;
+
        if (!vpu_helper_check_type(inst, parm->type))
                return -EINVAL;