[libcamera-devel] [PATCH v3 4/6] libcamera: camera_sensor: Add tryFormat()
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Apr 28 14:32:44 CEST 2023
Hi Jacopo,
Thank you for the patch.
On Thu, Apr 27, 2023 at 04:47:38PM +0200, Jacopo Mondi via libcamera-devel wrote:
> Add a function to the CameraSensor class that allows to test a format
> without applying it to the subdevice and without modifying any control
> value associated with the camera sensor.
>
> Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
> include/libcamera/internal/camera_sensor.h | 1 +
> src/libcamera/camera_sensor.cpp | 17 +++++++++++++++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h
> index 928c61af7f4e..02c77ab037da 100644
> --- a/include/libcamera/internal/camera_sensor.h
> +++ b/include/libcamera/internal/camera_sensor.h
> @@ -56,6 +56,7 @@ public:
> const Size &size) const;
> int setFormat(V4L2SubdeviceFormat *format,
> Transform transform = Transform::Identity);
> + int tryFormat(V4L2SubdeviceFormat *format) const;
>
> const ControlInfoMap &controls() const;
> ControlList getControls(const std::vector<uint32_t> &ids);
> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
> index e442b89dacd0..06f315210240 100644
> --- a/src/libcamera/camera_sensor.cpp
> +++ b/src/libcamera/camera_sensor.cpp
> @@ -795,6 +795,23 @@ int CameraSensor::setFormat(V4L2SubdeviceFormat *format, Transform transform)
> return 0;
> }
>
> +/**
> + * \brief Try the sensor output format
> + * \param[in] format The desired sensor output format
> + *
> + * The ranges of any controls associated with the sensor are not updated.
> + *
> + * \todo Add support for Transform by changing the format's Bayer ordering
> + * before calling subdev_->setFormat().
I'd rather fix the kernel API to handle flips in a saner way :-) We'll
worry about this later, for now,
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> + *
> + * \return 0 on success or a negative error code otherwise
> + */
> +int CameraSensor::tryFormat(V4L2SubdeviceFormat *format) const
> +{
> + return subdev_->setFormat(pad_, format,
> + V4L2Subdevice::Whence::TryFormat);
> +}
> +
> /**
> * \brief Retrieve the supported V4L2 controls and their information
> *
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list