[libcamera-devel] [PATCH v3 08/14] ipa: ipu3: agc: Use filtered exposure values

Jean-Michel Hautbois jeanmichel.hautbois at ideasonboard.com
Thu Oct 21 18:43:55 CEST 2021


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 at ideasonboard.com>
---
 src/ipa/ipu3/algorithms/agc.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp
index 984aed53..f5bb3328 100644
--- a/src/ipa/ipu3/algorithms/agc.cpp
+++ b/src/ipa/ipu3/algorithms/agc.cpp
@@ -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_);
 		}
-- 
2.32.0



More information about the libcamera-devel mailing list