[libcamera-devel] [PATCH 2/2] libcamera: v4l2_device: List controls when setting file descriptor

Umang Jain umang.jain at ideasonboard.com
Tue Oct 4 08:54:11 CEST 2022


Hi Laurent,

Thank you for the patch.

On 10/4/22 12:37 AM, Laurent Pinchart via libcamera-devel wrote:
> The base V4L2Device class is bound to a video device node by either
> open(), which opens the device node and creates a new file descriptor,
> or setFd(), which takes an already open file descriptor. The former
> populates the V4L2Device instance controls, while the latter doesn't.
> This prevents using controls on V4L2 M2M devices. Fix it by populating
> controls in setFd(), which is called by open().
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
> ---
>   src/libcamera/v4l2_device.cpp | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
> index d7ebf63811b4..c4d40d7d0842 100644
> --- a/src/libcamera/v4l2_device.cpp
> +++ b/src/libcamera/v4l2_device.cpp
> @@ -97,8 +97,6 @@ int V4L2Device::open(unsigned int flags)
>   
>   	setFd(std::move(fd));
>   
> -	listControls();
> -
>   	return 0;
>   }
>   
> @@ -129,6 +127,8 @@ int V4L2Device::setFd(UniqueFD fd)
>   	fdEventNotifier_->activated.connect(this, &V4L2Device::eventAvailable);
>   	fdEventNotifier_->setEnabled(false);
>   
> +	listControls();
> +
>   	return 0;
>   }
>   



More information about the libcamera-devel mailing list