mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-24 17:15:07 +03:00
libcamera: camera_sensor: Print warning when orientation is unknown
Print a warning when the orientation of a sensor is unknown. The location property is still defaulted to external. Also add a recommended controls list, similar to the optional and mandatory controls list, to handle controls in a similar situation in the future. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
6e65d42257
commit
edc771ef2f
1 changed files with 21 additions and 2 deletions
|
@ -276,12 +276,13 @@ int CameraSensor::init()
|
|||
|
||||
int CameraSensor::validateSensorDriver()
|
||||
{
|
||||
int err = 0;
|
||||
|
||||
/*
|
||||
* Optional controls are used to register optional sensor properties. If
|
||||
* not present, some values will be defaulted.
|
||||
*/
|
||||
static constexpr uint32_t optionalControls[] = {
|
||||
V4L2_CID_CAMERA_ORIENTATION,
|
||||
V4L2_CID_CAMERA_SENSOR_ROTATION,
|
||||
};
|
||||
|
||||
|
@ -293,6 +294,23 @@ int CameraSensor::validateSensorDriver()
|
|||
<< " not supported";
|
||||
}
|
||||
|
||||
/*
|
||||
* Recommended controls are similar to optional controls, but will
|
||||
* become mandatory in the near future. Be loud if they're missing.
|
||||
*/
|
||||
static constexpr uint32_t recommendedControls[] = {
|
||||
V4L2_CID_CAMERA_ORIENTATION,
|
||||
};
|
||||
|
||||
for (uint32_t ctrl : recommendedControls) {
|
||||
if (!controls.count(ctrl)) {
|
||||
LOG(CameraSensor, Warning)
|
||||
<< "Recommended V4L2 control " << utils::hex(ctrl)
|
||||
<< " not supported";
|
||||
err = -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure the required selection targets are supported.
|
||||
*
|
||||
|
@ -303,7 +321,6 @@ int CameraSensor::validateSensorDriver()
|
|||
* \todo Make support for selection targets mandatory as soon as all
|
||||
* test platforms have been updated.
|
||||
*/
|
||||
int err = 0;
|
||||
Rectangle rect;
|
||||
int ret = subdev_->getSelection(pad_, V4L2_SEL_TGT_CROP_BOUNDS, &rect);
|
||||
if (ret) {
|
||||
|
@ -446,6 +463,8 @@ int CameraSensor::initProperties()
|
|||
break;
|
||||
}
|
||||
} else {
|
||||
LOG(CameraSensor, Warning)
|
||||
<< "Failed to retrieve the camera location, setting to External";
|
||||
propertyValue = properties::CameraLocationExternal;
|
||||
}
|
||||
properties_.set(properties::Location, propertyValue);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue