summaryrefslogtreecommitdiff
path: root/src/libcamera/camera_sensor.cpp
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2021-01-02 12:18:17 +0100
committerJacopo Mondi <jacopo@jmondi.org>2021-01-18 10:39:13 +0100
commit8deb7e4331c3616e15c7f40625ac623e1ccd5551 (patch)
tree487c0f6c03079d1f07c750953398e0b02bc001a0 /src/libcamera/camera_sensor.cpp
parent125ee6ddd6136b76aa8ea4652fb2ccba79923475 (diff)
libcamera: camera_sensor: Default analogue crop rectangle
As support for the V4L2_SEL_TGT_CROP selection target used to read the sensor analogue crop rectangle is schedule to become mandatory but is still optional, use the sensor's active area size as fallback value to allow the creation of the CameraSensorInfo in the case the driver does not support it. Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src/libcamera/camera_sensor.cpp')
-rw-r--r--src/libcamera/camera_sensor.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
index 0c9bd4f5..e8caa446 100644
--- a/src/libcamera/camera_sensor.cpp
+++ b/src/libcamera/camera_sensor.cpp
@@ -643,13 +643,16 @@ int CameraSensor::sensorInfo(CameraSensorInfo *info) const
*/
info->activeAreaSize = { activeArea_.width, activeArea_.height };
- /* It's mandatory for the subdevice to report its crop rectangle. */
+ /*
+ * \todo Support for retreiving the crop rectangle is scheduled to
+ * become mandatory. For the time being use the default value if it has
+ * been initialized at sensor driver validation time.
+ */
int ret = subdev_->getSelection(pad_, V4L2_SEL_TGT_CROP, &info->analogCrop);
if (ret) {
+ info->analogCrop = activeArea_;
LOG(CameraSensor, Error)
- << "Failed to construct camera sensor info: "
- << "the camera sensor does not report the crop rectangle";
- return ret;
+ << "The analogue crop rectangle has been defaulted to the active area size";
}
/*