ipa: ipu3: agc: Remove "using" directive from agc.h header

"using" directives are harmful in headers, as they propagate the
namespace short-circuit to all files that include the header, directly
or indirectly. Drop the directive from agc.h, and use utils::Duration
explicitly. While at it, shorten the namespace qualifier from
libcamera::utils:: to utils:: in agc.cpp for Duration.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
This commit is contained in:
Laurent Pinchart 2021-10-15 03:28:20 +03:00
parent 5ae92dae58
commit 3b07397f0e
2 changed files with 9 additions and 11 deletions

View file

@ -140,20 +140,20 @@ void Agc::lockExposureGain(uint32_t &exposure, double &gain)
double newGain = kEvGainTarget * knumHistogramBins / iqMean_;
/* extracted from Rpi::Agc::computeTargetExposure */
libcamera::utils::Duration currentShutter = exposure * lineDuration_;
utils::Duration currentShutter = exposure * lineDuration_;
currentExposureNoDg_ = currentShutter * gain;
LOG(IPU3Agc, Debug) << "Actual total exposure " << currentExposureNoDg_
<< " Shutter speed " << currentShutter
<< " Gain " << gain;
currentExposure_ = currentExposureNoDg_ * newGain;
libcamera::utils::Duration maxTotalExposure = maxExposureTime_ * kMaxGain;
utils::Duration maxTotalExposure = maxExposureTime_ * kMaxGain;
currentExposure_ = std::min(currentExposure_, maxTotalExposure);
LOG(IPU3Agc, Debug) << "Target total exposure " << currentExposure_;
/* \todo: estimate if we need to desaturate */
filterExposure();
libcamera::utils::Duration newExposure = 0.0s;
utils::Duration newExposure = 0.0s;
if (currentShutter < maxExposureTime_) {
exposure = std::clamp(static_cast<uint32_t>(exposure * currentExposure_ / currentExposureNoDg_), kMinExposure, kMaxExposure);
newExposure = currentExposure_ / exposure;

View file

@ -21,8 +21,6 @@ struct IPACameraSensorInfo;
namespace ipa::ipu3::algorithms {
using utils::Duration;
class Agc : public Algorithm
{
public:
@ -43,13 +41,13 @@ private:
double iqMean_;
Duration lineDuration_;
Duration maxExposureTime_;
utils::Duration lineDuration_;
utils::Duration maxExposureTime_;
Duration prevExposure_;
Duration prevExposureNoDg_;
Duration currentExposure_;
Duration currentExposureNoDg_;
utils::Duration prevExposure_;
utils::Duration prevExposureNoDg_;
utils::Duration currentExposure_;
utils::Duration currentExposureNoDg_;
uint32_t stride_;
};