[libcamera-devel] [PATCH v1 2/3] pipeline: ipa: rpi: Return lens controls from ipa->configure()

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Jun 2 08:33:26 CEST 2023


Hi Naush,

Thank you for the patch.

On Thu, Jun 01, 2023 at 10:56:29AM +0100, Naushir Patuck via libcamera-devel wrote:
> In addition to sensor controls, return lens controls from
> IpaBase::configure() back to the pipeline handler. If there are lens
> controls present in the ControlList, action them in the pipeline handler
> as part of the configure routine.
> 
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
>  include/libcamera/ipa/raspberrypi.mojom             | 3 ++-
>  src/ipa/rpi/common/ipa_base.cpp                     | 2 +-
>  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 6 ++++--
>  3 files changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom
> index ba786e647ca1..4f20792e4679 100644
> --- a/include/libcamera/ipa/raspberrypi.mojom
> +++ b/include/libcamera/ipa/raspberrypi.mojom
> @@ -46,7 +46,8 @@ struct ConfigParams {
>  struct ConfigResult {
>  	float modeSensitivity;
>  	libcamera.ControlInfoMap controlInfo;
> -	libcamera.ControlList controls;
> +	libcamera.ControlList sensorControls;
> +	libcamera.ControlList lensControls;
>  };
>  
>  struct StartResult {
> diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp
> index db7a0eb3a1ca..599ad146a863 100644
> --- a/src/ipa/rpi/common/ipa_base.cpp
> +++ b/src/ipa/rpi/common/ipa_base.cpp
> @@ -201,7 +201,7 @@ int32_t IpaBase::configure(const IPACameraSensorInfo &sensorInfo, const ConfigPa
>  		applyAGC(&agcStatus, ctrls);
>  	}
>  
> -	result->controls = std::move(ctrls);
> +	result->sensorControls = std::move(ctrls);
>  
>  	/*
>  	 * Apply the correct limits to the exposure, gain and frame duration controls
> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> index 3bb5ec531e4f..2ab0b971149a 100644
> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> @@ -1192,8 +1192,10 @@ int CameraData::configureIPA(const CameraConfiguration *config, ipa::RPi::Config
>  		return -EPIPE;
>  	}
>  
> -	if (!result->controls.empty())
> -		setSensorControls(result->controls);
> +	if (!result->sensorControls.empty())
> +		setSensorControls(result->sensorControls);
> +	if (!result->lensControls.empty())
> +		setLensControls(result->lensControls);
>  
>  	return 0;
>  }

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list