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;
if (currentShutter < maxShutterSpeed) {
exposure = std::clamp<uint32_t>(exposure * currentExposure_ / currentExposureNoDg_,
exposure = std::clamp<uint32_t>(exposure * filteredExposure_ / currentExposureNoDg_,
minExposureLines_,
maxExposureLines_);
newExposure = currentExposure_ / exposure;
gain = std::clamp(gain * currentExposure_ / newExposure,
newExposure = filteredExposure_ / exposure;
gain = std::clamp(gain * filteredExposure_ / newExposure,
kMinGain, kMaxGain);
} else {
gain = std::clamp(gain * currentExposure_ / currentExposureNoDg_,
gain = std::clamp(gain * filteredExposure_ / currentExposureNoDg_,
kMinGain, kMaxGain);
newExposure = currentExposure_ / gain;
exposure = std::clamp<uint32_t>(exposure * currentExposure_ / newExposure,
newExposure = filteredExposure_ / gain;
exposure = std::clamp<uint32_t>(exposure * filteredExposure_ / newExposure,
minExposureLines_,
maxExposureLines_);
}