[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