summaryrefslogtreecommitdiff
path: root/src/ipa/ipu3/ipu3_agc.h
diff options
context:
space:
mode:
authorJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>2021-08-18 17:54:03 +0200
committerJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>2021-08-20 12:11:29 +0200
commit93802f600cf4c3bf15c9d044b980927615e800f4 (patch)
tree0f8415569586240b89560b59984052598f4e38cb /src/ipa/ipu3/ipu3_agc.h
parentb145ae42428b9f21fff01d7353a655e07e818c33 (diff)
ipa: ipu3: Move IPU3 agc into algorithms
Now that the interface is properly used by the AGC class, move it into ipa::ipu3::algorithms and let the loops do the calls. As we need to exchange the exposure_ and gain_ by passing them through the FrameContext, use the calculated values in setControls() function to ease the reading. 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>
Diffstat (limited to 'src/ipa/ipu3/ipu3_agc.h')
-rw-r--r--src/ipa/ipu3/ipu3_agc.h60
1 files changed, 0 insertions, 60 deletions
diff --git a/src/ipa/ipu3/ipu3_agc.h b/src/ipa/ipu3/ipu3_agc.h
deleted file mode 100644
index 0e922664..00000000
--- a/src/ipa/ipu3/ipu3_agc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.1-or-later */
-/*
- * Copyright (C) 2021, Ideas On Board
- *
- * ipu3_agc.h - IPU3 AGC/AEC control algorithm
- */
-#ifndef __LIBCAMERA_IPU3_AGC_H__
-#define __LIBCAMERA_IPU3_AGC_H__
-
-#include <linux/intel-ipu3.h>
-
-#include <libcamera/base/utils.h>
-
-#include <libcamera/geometry.h>
-
-#include "algorithms/algorithm.h"
-
-namespace libcamera {
-
-struct IPACameraSensorInfo;
-
-namespace ipa::ipu3 {
-
-using utils::Duration;
-
-class IPU3Agc : public Algorithm
-{
-public:
- IPU3Agc();
- ~IPU3Agc() = default;
-
- int configure(IPAContext &context, const IPAConfigInfo &configInfo) override;
- void process(IPAContext &context, const ipu3_uapi_stats_3a *stats) override;
-
-private:
- void processBrightness(const ipu3_uapi_stats_3a *stats);
- void filterExposure();
- void lockExposureGain(uint32_t &exposure, double &gain);
-
- struct ipu3_uapi_grid_config aeGrid_;
-
- uint64_t frameCount_;
- uint64_t lastFrame_;
-
- double iqMean_;
-
- Duration lineDuration_;
- Duration maxExposureTime_;
-
- Duration prevExposure_;
- Duration prevExposureNoDg_;
- Duration currentExposure_;
- Duration currentExposureNoDg_;
-};
-
-} /* namespace ipa::ipu3 */
-
-} /* namespace libcamera */
-
-#endif /* __LIBCAMERA_IPU3_AGC_H__ */