summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-10-03 19:40:26 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-10-04 17:58:00 +0300
commitca33225ceb4c7b414eb1a8579af14c2c06f1f4ea (patch)
treeb5d740407b45f7654e51329a0e90824f48ba0288
parent2cc5654633c3a1c61f6899226c533308af858703 (diff)
libcamera: v4l2_device: List controls when setting file descriptor
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@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Xavier Roumegue <xavier.roumegue@oss.nxp.com>
-rw-r--r--src/libcamera/v4l2_device.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
index c60f7c91..c17b323f 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;
}