diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2020-11-06 14:27:59 +0100 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2020-12-07 14:26:33 +0100 |
commit | b33a5c4153852274efc7e3cd076d057bb7affbed (patch) | |
tree | ae41f7aa3261f5b69d59887d2c7d64c98c55de6f /src | |
parent | c5b732b2caacdedde53160e9cf4adc6901fb7454 (diff) |
libcamera: camera_sensor: Adjust CameraSensorInfo::analogCrop
The CameraSensorInfo::analogCrop top-left corner is defined relatively
to the sensor active area.
The analogCrop rectangle is constucted by retrieving the V4L2
selection target V4L2_SEL_TGT_CROP which is instead defined relatively
to the whole sensor's pixel array size.
Adjust the the analogCrop rectangle subtracting from its top-left corner
the active area distance from the full pixel array.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/libcamera/camera_sensor.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp index 935de528..c5fa8914 100644 --- a/src/libcamera/camera_sensor.cpp +++ b/src/libcamera/camera_sensor.cpp @@ -527,6 +527,16 @@ int CameraSensor::sensorInfo(CameraSensorInfo *info) const return ret; } + /* + * CameraSensorInfo::analogCrop::x and CameraSensorInfo::analogCrop::y + * are defined relatively to the active pixel area, while V4L2's + * TGT_CROP target is defined in respect to the full pixel array. + * + * Compensate it by subtracting the active areas offset. + */ + info->analogCrop.x -= rect.x; + info->analogCrop.y -= rect.y; + /* The bit depth and image size depend on the currently applied format. */ V4L2SubdeviceFormat format{}; ret = subdev_->getFormat(pad_, &format); |