[libcamera-devel] [PATCH 10/11] libcamera: v4l2_device: Enable enumeration of U8 controls
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Mar 20 22:56:06 CET 2020
Hi Jacopo,
Thank you for the patch.
On Mon, Mar 09, 2020 at 05:24:13PM +0100, Jacopo Mondi wrote:
> Enable the enumeration of V4L2 array controls with V4L2_CTRL_TYPE_U8
> type.
>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
> src/libcamera/v4l2_device.cpp | 13 ++++---------
> 1 file changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
> index 464df6a1fe18..a36c121aa62a 100644
> --- a/src/libcamera/v4l2_device.cpp
> +++ b/src/libcamera/v4l2_device.cpp
> @@ -388,7 +388,8 @@ void V4L2Device::listControls()
>
> /* \todo Add support for menu and compound controls. */
> while (1) {
> - ctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL;
> + ctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL |
> + V4L2_CTRL_FLAG_NEXT_COMPOUND;
> if (ioctl(VIDIOC_QUERY_EXT_CTRL, &ctrl))
> break;
>
> @@ -396,13 +397,6 @@ void V4L2Device::listControls()
> ctrl.flags & V4L2_CTRL_FLAG_DISABLED)
> continue;
>
> - if (ctrl.elems != 1 || ctrl.nr_of_dims) {
> - LOG(V4L2, Debug)
> - << "Array control " << utils::hex(ctrl.id)
> - << " not supported";
> - continue;
> - }
We were guarding against something that could never happen as
V4L2_CTRL_FLAG_NEXT_COMPOUND wasn't set, right ? This change seems fine
to me, but I wonder if we should have a ctrl.elems check in
setControls(). In any case, for this patch,
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> -
> switch (ctrl.type) {
> case V4L2_CTRL_TYPE_INTEGER:
> case V4L2_CTRL_TYPE_BOOLEAN:
> @@ -411,8 +405,9 @@ void V4L2Device::listControls()
> case V4L2_CTRL_TYPE_INTEGER64:
> case V4L2_CTRL_TYPE_BITMASK:
> case V4L2_CTRL_TYPE_INTEGER_MENU:
> + case V4L2_CTRL_TYPE_U8:
> break;
> - /* \todo Support compound controls. */
> + /* \todo Support other control types. */
> default:
> LOG(V4L2, Debug)
> << "Control " << utils::hex(ctrl.id)
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list