From 384a53d3cdf7f01915547f5c7cb88072adad0572 Mon Sep 17 00:00:00 2001 From: Umang Jain Date: Tue, 8 Jun 2021 13:12:23 +0530 Subject: ipa: ipu3: Calculate line duration from IPACameraSensorInfo Squash \todo by calculating line duration from IPACameraSensorInfo, now passed in, to IPU3Agc::initialise(). Since line duration is now calculated from real values, store it as a private member in IPU3Agc class. As a further step, replace the associated global constant, kMaxExposureTime, with a private IPU3Agc class member as well, and assign its value correspondingly in IPU3Agc::initialise(), similar to previous precedence. Signed-off-by: Umang Jain Tested-by: Paul Elder Reviewed-by: Kieran Bingham Reviewed-by: Paul Elder --- src/ipa/ipu3/ipu3_agc.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/ipa/ipu3/ipu3_agc.h') diff --git a/src/ipa/ipu3/ipu3_agc.h b/src/ipa/ipu3/ipu3_agc.h index bfdf45d1..99a582a9 100644 --- a/src/ipa/ipu3/ipu3_agc.h +++ b/src/ipa/ipu3/ipu3_agc.h @@ -18,6 +18,8 @@ namespace libcamera { +class IPACameraSensorInfo; + namespace ipa::ipu3 { class IPU3Agc : public Algorithm @@ -26,7 +28,7 @@ public: IPU3Agc(); ~IPU3Agc() = default; - void initialise(struct ipu3_uapi_grid_config &bdsGrid); + void initialise(struct ipu3_uapi_grid_config &bdsGrid, const IPACameraSensorInfo &sensorInfo); void process(const ipu3_uapi_stats_3a *stats, uint32_t &exposure, uint32_t &gain); bool converged() { return converged_; } bool updateControls() { return updateControls_; } @@ -49,6 +51,9 @@ private: double iqMean_; double gamma_; + double lineDuration_; + double maxExposureTime_; + double prevExposure_; double prevExposureNoDg_; double currentExposure_; -- cgit v1.2.1