[libcamera-devel] [PATCH v3 3/3] pipeline: raspberrypi: Advertise ScalerCrop from the pipeline handler
David Plowman
david.plowman at raspberrypi.com
Tue Jun 28 10:45:15 CEST 2022
Hi Naush
Thanks for the patch. LGTM!
Reviewed-by: David Plowman <david.plowman at raspberrypi.com>
David
On Wed, 22 Jun 2022 at 11:21, Naushir Patuck via libcamera-devel
<libcamera-devel at lists.libcamera.org> wrote:
>
> The ScalerCrop control is handled directly by the pipeline handler. Remove the
> control from the IPA's static ControlInfoMap, and let the pipeline handler add
> it to the ControlInfoMap advertised to the application, ensuring the limits
> are set appropriately based on the current sensor mode.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> ---
> src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index 4596f2babcea..66a84b1dfb97 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -941,7 +941,15 @@ int PipelineHandlerRPi::configure(Camera *camera, CameraConfiguration *config)
> data->properties_.set(properties::SensorSensitivity, result.modeSensitivity);
>
> /* Update the controls that the Raspberry Pi IPA can handle. */
> - data->controlInfo_ = result.controlInfo;
> + ControlInfoMap::Map ctrlMap;
> + for (auto const &c : result.controlInfo)
> + ctrlMap.emplace(c.first, c.second);
> +
> + /* Add the ScalerCrop control limits based on the current mode. */
> + ctrlMap.emplace(&controls::ScalerCrop,
> + ControlInfo(Rectangle(data->ispMinCropSize_), Rectangle(data->sensorInfo_.outputSize)));
> +
> + data->controlInfo_ = ControlInfoMap(std::move(ctrlMap), result.controlInfo.idmap());
>
> /* Setup the Video Mux/Bridge entities. */
> for (auto &[device, link] : data->bridgeDevices_) {
> --
> 2.25.1
>
More information about the libcamera-devel
mailing list