On 21/04/2022 16:58, Philipp Zabel wrote: > On Do, 2022-04-21 at 12:30 +0200, Hans Verkuil wrote: > [...] >> I think this is actually a v4l2-compliance bug, not a driver bug. >> >> 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 HW resources. >> >> See https://hverkuil.home.xs4all.nl/spec/userspace-api/v4l/vidioc-enum-fmt.html#fmtdesc-flags >> >> That flags isn't used, so v4l2-compliance shouldn't complain. >> >> Try this v4l2-compliance patch to see if it resolved the fails for this patch >> and the next patch (7/7). >> >> v4l2-compliance patch: >> >> Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> >> --- >> diff --git a/utils/v4l2-compliance/v4l2-test-formats.cpp b/utils/v4l2-compliance/v4l2-test-formats.cpp >> index 3761b1fa..269a3832 100644 >> --- a/utils/v4l2-compliance/v4l2-test-formats.cpp >> +++ b/utils/v4l2-compliance/v4l2-test-formats.cpp >> @@ -1341,8 +1341,16 @@ static int testParmType(struct node *node, unsigned type) >> case V4L2_BUF_TYPE_VIDEO_OUTPUT: >> case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: >> if (node->g_caps() & buftype2cap[type]) { >> - fail_on_test(ret && node->has_frmintervals); >> - fail_on_test(ret && node->has_enc_cap_frame_interval); >> + if (is_stateful_enc) { >> + if (V4L2_TYPE_IS_OUTPUT(type)) >> + fail_on_test(ret && node->has_frmintervals); >> + else if (node->has_enc_cap_frame_interval) >> + fail_on_test(ret); >> + else >> + fail_on_test(!ret); >> + } else { >> + fail_on_test(ret && node->has_frmintervals); >> + } >> } >> break; >> default: > > You are right, this patch resolves the compliance failures addressed by > patches 6 and 7. Great! I've committed this change to v4l-utils. Regards, Hans