summaryrefslogtreecommitdiff
path: root/ipu3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ipu3.cpp')
-rw-r--r--ipu3.cpp43
1 files changed, 26 insertions, 17 deletions
diff --git a/ipu3.cpp b/ipu3.cpp
index 682b7ef..e2b5710 100644
--- a/ipu3.cpp
+++ b/ipu3.cpp
@@ -56,6 +56,7 @@ private:
const ControlInfoMap &sensorControls,
ControlInfoMap *ipaControls);
void processControls(unsigned int frame, const ControlList &metadata);
+ void runAiq(unsigned int frame);
void fillParams(unsigned int frame, ipu3_uapi_params *params);
void parseStatistics(unsigned int frame,
int64_t frameTimestamp,
@@ -216,6 +217,7 @@ int IPAIPU3::init(const IPASettings &settings,
int IPAIPU3::start()
{
+ runAiq(0);
setControls(0);
return 0;
@@ -362,34 +364,41 @@ void IPAIPU3::processControls([[maybe_unused]] unsigned int frame,
/* \todo Start processing for 'frame' based on 'controls'. */
}
+void IPAIPU3::runAiq([[maybe_unused]] unsigned int frame)
+{
+ /* Run algorithms into/using this context structure */
+ resultsHistory_.extendOne();
+ aiq::AiqResults& latestResults = resultsHistory_.latest();
+
+ aiq_.run2a(frame, aiqInputParams_, latestResults);
+
+ exposure_ = latestResults.ae()->exposures[0].sensor_exposure->coarse_integration_time;
+ gain_ = latestResults.ae()->exposures[0].sensor_exposure->analog_gain_code_global;
+
+}
+
void IPAIPU3::fillParams(unsigned int frame, ipu3_uapi_params *params)
{
/* Prepare parameters buffer. */
memset(params, 0, sizeof(*params));
/*
- * Call into the AIQ object, and set up the library with any requested
- * controls or settings from the incoming request.
- *
- * (statistics are fed into the library as a separate event
- * when available)
- *
- * - Run algorithms
- *
- * - Fill params buffer with the results of the algorithms.
- */
+ * Call into the AIQ object, and set up the library with any requested
+ * controls or settings from the incoming request.
+ *
+ * (statistics are fed into the library as a separate event
+ * when available)
+ *
+ * - Run algorithms
+ *
+ * - Fill params buffer with the results of the algorithms.
+ */
+ runAiq(frame);
- /* Run algorithms into/using this context structure */
- resultsHistory_.extendOne();
aiq::AiqResults& latestResults = resultsHistory_.latest();
-
- aiq_.run2a(frame, aiqInputParams_, latestResults);
aic_.updateRuntimeParams(latestResults);
aic_.run(params);
- exposure_ = latestResults.ae()->exposures[0].sensor_exposure->coarse_integration_time;
- gain_ = latestResults.ae()->exposures[0].sensor_exposure->analog_gain_code_global;
-
setControls(frame);
IPU3Action op;