ipa: ipu3: agc: Use filtered exposure values

We are filtering the exposure value to limit the gain to apply, but we
are not using the result.

Fix it.

Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Jean-Michel Hautbois 2021-10-21 07:52:33 +02:00
parent a58a784e53
commit f1cf01d13b

View file

@ -158,17 +158,17 @@ void Agc::lockExposureGain(uint32_t &exposure, double &gain)
utils::Duration newExposure = 0.0s; utils::Duration newExposure = 0.0s;
if (currentShutter < maxShutterSpeed) { if (currentShutter < maxShutterSpeed) {
exposure = std::clamp<uint32_t>(exposure * currentExposure_ / currentExposureNoDg_, exposure = std::clamp<uint32_t>(exposure * filteredExposure_ / currentExposureNoDg_,
minExposureLines_, minExposureLines_,
maxExposureLines_); maxExposureLines_);
newExposure = currentExposure_ / exposure; newExposure = filteredExposure_ / exposure;
gain = std::clamp(gain * currentExposure_ / newExposure, gain = std::clamp(gain * filteredExposure_ / newExposure,
kMinGain, kMaxGain); kMinGain, kMaxGain);
} else { } else {
gain = std::clamp(gain * currentExposure_ / currentExposureNoDg_, gain = std::clamp(gain * filteredExposure_ / currentExposureNoDg_,
kMinGain, kMaxGain); kMinGain, kMaxGain);
newExposure = currentExposure_ / gain; newExposure = filteredExposure_ / gain;
exposure = std::clamp<uint32_t>(exposure * currentExposure_ / newExposure, exposure = std::clamp<uint32_t>(exposure * filteredExposure_ / newExposure,
minExposureLines_, minExposureLines_,
maxExposureLines_); maxExposureLines_);
} }