Hi Jacopo, I've made a different implementation which is simpler. It's just been committed.
Thanks for the report and suggested patch though! Regards, Hans On 02/19/18 17:46, Jacopo Mondi wrote: > Since commit > > commit 2e564ee56978874ddd4a8d061d37be088f130fd9 > Author: Hans Verkuil <hans.verk...@cisco.com> > vidioc-g-parm.rst: also allow _MPLANE buffer types > > V4L2 allows _MPLANE buffer types for capture/output on s/g_parm > operations. > > Relax v4l2-compliance check to comply with this. > > Signed-off-by: Jacopo Mondi <jac...@jmondi.org> > --- > utils/v4l2-compliance/v4l2-test-formats.cpp | 17 ++++++++++++++--- > 1 file changed, 14 insertions(+), 3 deletions(-) > > diff --git a/utils/v4l2-compliance/v4l2-test-formats.cpp > b/utils/v4l2-compliance/v4l2-test-formats.cpp > index b7a32fe..25c4da5 100644 > --- a/utils/v4l2-compliance/v4l2-test-formats.cpp > +++ b/utils/v4l2-compliance/v4l2-test-formats.cpp > @@ -1235,9 +1235,20 @@ int testParm(struct node *node) > type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE && > type != V4L2_BUF_TYPE_VIDEO_OUTPUT) > return fail("G/S_PARM is only allowed for video > capture/output\n"); > - if (!(node->g_caps() & buftype2cap[type])) > - return fail("%s cap not set, but G/S_PARM > worked\n", > - buftype2s(type).c_str()); > + > + if (!((node->g_caps() & V4L2_BUF_TYPE_VIDEO_CAPTURE || > + node->g_caps() & > V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)) && > + ((buftype2cap[type] == > V4L2_BUF_TYPE_VIDEO_CAPTURE || > + buftype2cap[type] == > V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE))) > + return fail("%s cap not set, > but G/S_PARM worked\n", > + > buftype2s(type).c_str()); > + > + if (!((node->g_caps() & V4L2_BUF_TYPE_VIDEO_OUTPUT || > + node->g_caps() & > V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)) && > + ((buftype2cap[type] == > V4L2_BUF_TYPE_VIDEO_OUTPUT || > + buftype2cap[type] == > V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE))) > + return fail("%s cap not set, > but G/S_PARM worked\n", > + > buftype2s(type).c_str()); > } > } > > -- > 2.7.4 >