[libcamera-devel] [PATCH 2/2] libcamera: v4l2_device: List controls when setting file descriptor
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Oct 3 21:07:06 CEST 2022
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>
---
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;
}
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list