[libcamera-devel] [PATCH 1/3] ipa: rpi: agc: Fetch AWB status in process method, not prepare

Jacopo Mondi jacopo.mondi at ideasonboard.com
Tue Aug 29 15:30:08 CEST 2023


Hi David

On Fri, Jul 28, 2023 at 02:36:58PM +0100, David Plowman via libcamera-devel wrote:
> prepare() doesn't use the AWB status, so fetching it in process() is
> probably better. This change is preparatory to other changes, where we
> may find ourselves calling process() without having called prepare()
> previously.
>
> Signed-off-by: David Plowman <david.plowman at raspberrypi.com>

Seems to make sense to me
Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>

Thanks
  j

> ---
>  src/ipa/rpi/controller/rpi/agc.cpp | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/ipa/rpi/controller/rpi/agc.cpp b/src/ipa/rpi/controller/rpi/agc.cpp
> index ae9ff219..e8526355 100644
> --- a/src/ipa/rpi/controller/rpi/agc.cpp
> +++ b/src/ipa/rpi/controller/rpi/agc.cpp
> @@ -424,7 +424,6 @@ void Agc::prepare(Metadata *imageMetadata)
>  		totalExposureValue = delayedStatus.totalExposureValue;
>
>  	status_.digitalGain = 1.0;
> -	fetchAwbStatus(imageMetadata); /* always fetch it so that Process knows it's been done */
>
>  	if (status_.totalExposureValue) {
>  		/* Process has run, so we have meaningful values. */
> @@ -461,6 +460,8 @@ void Agc::process(StatisticsPtr &stats, Metadata *imageMetadata)
>  	 * configuration, that kind of thing.
>  	 */
>  	housekeepConfig();
> +	/* Fetch the AWB status immediately, so that we can assume it's there. */
> +	fetchAwbStatus(imageMetadata);
>  	/* Get the current exposure values for the frame that's just arrived. */
>  	fetchCurrentExposure(imageMetadata);
>  	/* Compute the total gain we require relative to the current exposure. */
> --
> 2.30.2
>


More information about the libcamera-devel mailing list