summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid Plowman <david.plowman@raspberrypi.com>2021-05-05 14:53:07 +0100
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-05-11 02:31:08 +0300
commit91122dea978c880b9bb03a78641ff5585e20be8c (patch)
treeb76ae8d350f1e1737ce2885afd203a2f26adca6d /include
parent45c6a7e6e8277fed743e4033d39deeb36a58a4b0 (diff)
libcamera: camera_sensor: Fix frame lengths calculated by sensorInfo()
The minimum and maximum vblanking can change when a new format is applied to the sensor subdevice, so be sure to retrieve up-to-date values. The V4L2Device acquires the new updateControlInfo() method to perform this function, and which the CameraSensor calls automatically if its setFormat method is used to update the sensor. However, not all pipeline handlers invoke the setFormat method directly, so the new method must be made publicly available for pipeline handlers to call if they need to. Signed-off-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'include')
-rw-r--r--include/libcamera/internal/camera_sensor.h2
-rw-r--r--include/libcamera/internal/v4l2_device.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h
index 3fa3a419..2a5c51a1 100644
--- a/include/libcamera/internal/camera_sensor.h
+++ b/include/libcamera/internal/camera_sensor.h
@@ -68,6 +68,8 @@ public:
const ControlList &properties() const { return properties_; }
int sensorInfo(CameraSensorInfo *info) const;
+ void updateControlInfo();
+
protected:
std::string logPrefix() const override;
diff --git a/include/libcamera/internal/v4l2_device.h b/include/libcamera/internal/v4l2_device.h
index 087f07e7..5ba9b23b 100644
--- a/include/libcamera/internal/v4l2_device.h
+++ b/include/libcamera/internal/v4l2_device.h
@@ -42,6 +42,8 @@ public:
int setFrameStartEnabled(bool enable);
Signal<uint32_t> frameStart;
+ void updateControlInfo();
+
protected:
V4L2Device(const std::string &deviceNode);
~V4L2Device();