summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUmang Jain <umang.jain@ideasonboard.com>2022-04-08 14:05:08 +0530
committerUmang Jain <umang.jain@ideasonboard.com>2022-04-08 14:05:11 +0530
commitd630cc06db1f8e460ec85ac2b398880a56d94aaf (patch)
tree1d1a0dd8637f82f9a3529d6c0b954d37aa00e992
parent9230cf69cb0907548eb8cc7460547db053615192 (diff)
ipa: ipu3: Inline parseStatistics() into processStatsBuffer()
Since we have moved away from switch/case on the operation ID, there's little reason to split the operation in two functions. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
-rw-r--r--src/ipa/ipu3/ipu3.cpp54
1 files changed, 19 insertions, 35 deletions
diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index d77d6686..dd6cfd79 100644
--- a/src/ipa/ipu3/ipu3.cpp
+++ b/src/ipa/ipu3/ipu3.cpp
@@ -156,9 +156,6 @@ private:
ControlInfoMap *ipaControls);
void updateSessionConfiguration(const ControlInfoMap &sensorControls);
- void parseStatistics(unsigned int frame,
- int64_t frameTimestamp,
- const ipu3_uapi_stats_3a *stats);
bool validateSensorControls();
void setControls(unsigned int frame);
@@ -546,11 +543,15 @@ void IPAIPU3::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
}
/**
- * \brief Process statistics after ISP completion
+ * \brief Process the statistics generated by the ImgU
* \param[in] frame The frame number
* \param[in] frameTimestamp Timestamp of the frame
* \param[in] bufferId ID of the statistics buffer
* \param[in] sensorControls Sensor controls
+ *
+ * Parse the most recently processed image statistics from the ImgU. The
+ * statistics are passed to each algorithm module to run their calculations and
+ * update their state accordingly.
*/
void IPAIPU3::processStatsBuffer(const uint32_t frame,
[[maybe_unused]] const int64_t frameTimestamp,
@@ -569,37 +570,6 @@ void IPAIPU3::processStatsBuffer(const uint32_t frame,
context_.frameContext.sensor.exposure = sensorControls.get(V4L2_CID_EXPOSURE).get<int32_t>();
context_.frameContext.sensor.gain = camHelper_->gain(sensorControls.get(V4L2_CID_ANALOGUE_GAIN).get<int32_t>());
- parseStatistics(frame, frameTimestamp, stats);
-}
-
-/**
- * \brief Queue a request and process the control list from the application
- * \param[in] frame The number of the frame which will be processed next
- * \param[in] controls The controls for the \a frame
- *
- * Parse the request to handle any IPA-managed controls that were set from the
- * application such as manual sensor settings.
- */
-void IPAIPU3::queueRequest([[maybe_unused]] const uint32_t frame,
- [[maybe_unused]] const ControlList &controls)
-{
- /* \todo Start processing for 'frame' based on 'controls'. */
-}
-
-/**
- * \brief Process the statistics generated by the ImgU
- * \param[in] frame The number of the latest frame processed
- * \param[in] frameTimestamp The current frame timestamp
- * \param[in] stats The IPU3 statistics and ISP results
- *
- * Parse the most recently processed image statistics from the ImgU. The
- * statistics are passed to each algorithm module to run their calculations and
- * update their state accordingly.
- */
-void IPAIPU3::parseStatistics(unsigned int frame,
- [[maybe_unused]] int64_t frameTimestamp,
- const ipu3_uapi_stats_3a *stats)
-{
double lineDuration = context_.configuration.sensor.lineDuration.get<std::micro>();
int32_t vBlank = context_.configuration.sensor.defVBlank;
ControlList ctrls(controls::controls);
@@ -631,6 +601,20 @@ void IPAIPU3::parseStatistics(unsigned int frame,
}
/**
+ * \brief Queue a request and process the control list from the application
+ * \param[in] frame The number of the frame which will be processed next
+ * \param[in] controls The controls for the \a frame
+ *
+ * Parse the request to handle any IPA-managed controls that were set from the
+ * application such as manual sensor settings.
+ */
+void IPAIPU3::queueRequest([[maybe_unused]] const uint32_t frame,
+ [[maybe_unused]] const ControlList &controls)
+{
+ /* \todo Start processing for 'frame' based on 'controls'. */
+}
+
+/**
* \brief Handle sensor controls for a given \a frame number
* \param[in] frame The frame on which the sensor controls should be set
*