summaryrefslogtreecommitdiff
path: root/src/ipa
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipa')
-rw-r--r--src/ipa/rkisp1/algorithms/agc.cpp7
-rw-r--r--src/ipa/rkisp1/algorithms/agc.h1
-rw-r--r--src/ipa/rkisp1/rkisp1.cpp12
3 files changed, 11 insertions, 9 deletions
diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp
index 2c222a4e..650fe2da 100644
--- a/src/ipa/rkisp1/algorithms/agc.cpp
+++ b/src/ipa/rkisp1/algorithms/agc.cpp
@@ -280,6 +280,13 @@ void Agc::process(IPAContext &context, const rkisp1_stat_buffer *stats)
frameCount_++;
}
+void Agc::prepare([[maybe_unused]] IPAContext &context,
+ rkisp1_params_cfg *params)
+{
+ params->module_ens |= RKISP1_CIF_ISP_MODULE_AEC;
+ params->module_en_update |= RKISP1_CIF_ISP_MODULE_AEC;
+}
+
} /* namespace ipa::rkisp1::algorithms */
} /* namespace libcamera */
diff --git a/src/ipa/rkisp1/algorithms/agc.h b/src/ipa/rkisp1/algorithms/agc.h
index 07b9ea37..942c9d7a 100644
--- a/src/ipa/rkisp1/algorithms/agc.h
+++ b/src/ipa/rkisp1/algorithms/agc.h
@@ -28,6 +28,7 @@ public:
~Agc() = default;
int configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override;
+ void prepare(IPAContext &context, rkisp1_params_cfg *params) override;
void process(IPAContext &context, const rkisp1_stat_buffer *stats) override;
private:
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index 38917fb7..2d79f15f 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -272,19 +272,13 @@ void IPARkISP1::processEvent(const RkISP1Event &event)
}
void IPARkISP1::queueRequest(unsigned int frame, rkisp1_params_cfg *params,
- const ControlList &controls)
+ [[maybe_unused]] const ControlList &controls)
{
/* Prepare parameters buffer. */
memset(params, 0, sizeof(*params));
- /* Auto Exposure on/off. */
- if (controls.contains(controls::AeEnable)) {
- autoExposure_ = controls.get(controls::AeEnable);
- if (autoExposure_)
- params->module_ens = RKISP1_CIF_ISP_MODULE_AEC;
-
- params->module_en_update = RKISP1_CIF_ISP_MODULE_AEC;
- }
+ for (auto const &algo : algorithms_)
+ algo->prepare(context_, params);
RkISP1Action op;
op.op = ActionParamFilled;