[PATCH] ipa: rpi: agc: Ignore stable region when exposure/gain set manually
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Sep 9 15:48:12 CEST 2024
Quoting David Plowman (2024-09-09 14:22:04)
> When a user is taking control of exposure and gain, setting them
> manually, we set the AGC "stable region" to zero. This means that any
> user changes, however small, will be applied, and they won't be
> regarded as "too small to bother with".
>
> Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
This sounds/looks sane to me, and this is the only function that
stableRegion is used from the config file.
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ---
> src/ipa/rpi/controller/rpi/agc_channel.cpp | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/src/ipa/rpi/controller/rpi/agc_channel.cpp b/src/ipa/rpi/controller/rpi/agc_channel.cpp
> index cf2565a8..c9df9b5b 100644
> --- a/src/ipa/rpi/controller/rpi/agc_channel.cpp
> +++ b/src/ipa/rpi/controller/rpi/agc_channel.cpp
> @@ -883,11 +883,14 @@ void AgcChannel::filterExposure()
>
> /*
> * AGC adapts instantly if both shutter and gain are directly specified
> - * or we're in the startup phase.
> + * or we're in the startup phase. Also disable the stable region, because we want
> + * to reflect any user exposure/gain updates, however small.
> */
> if ((status_.fixedShutter && status_.fixedAnalogueGain) ||
> - frameCount_ <= config_.startupFrames)
> + frameCount_ <= config_.startupFrames) {
> speed = 1.0;
> + stableRegion = 0.0;
> + }
> if (!filtered_.totalExposure) {
> filtered_.totalExposure = target_.totalExposure;
> } else if (filtered_.totalExposure * (1.0 - stableRegion) < target_.totalExposure &&
> --
> 2.34.1
>
More information about the libcamera-devel
mailing list