summaryrefslogtreecommitdiff
path: root/src/ipa/ipu3/ipu3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipa/ipu3/ipu3.cpp')
-rw-r--r--src/ipa/ipu3/ipu3.cpp27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index 5c51607d..93b700bd 100644
--- a/src/ipa/ipu3/ipu3.cpp
+++ b/src/ipa/ipu3/ipu3.cpp
@@ -509,6 +509,13 @@ void IPAIPU3::unmapBuffers(const std::vector<unsigned int> &ids)
/**
* \brief Process an event generated by the pipeline handler
* \param[in] event The event sent from pipeline handler
+ *
+ * The expected event handling over the lifetime of a Request has
+ * the following sequence:
+ *
+ * - EventProcessControls : Handle controls from a new Request
+ * - EventFillParams : Prepare the ISP to process the Request
+ * - EventStatReady : Process statistics after ISP completion
*/
void IPAIPU3::processEvent(const IPU3Event &event)
{
@@ -517,32 +524,32 @@ void IPAIPU3::processEvent(const IPU3Event &event)
processControls(event.frame, event.controls);
break;
}
- case EventStatReady: {
+ case EventFillParams: {
auto it = buffers_.find(event.bufferId);
if (it == buffers_.end()) {
- LOG(IPAIPU3, Error) << "Could not find stats buffer!";
+ LOG(IPAIPU3, Error) << "Could not find param buffer!";
return;
}
Span<uint8_t> mem = it->second.planes()[0];
- const ipu3_uapi_stats_3a *stats =
- reinterpret_cast<ipu3_uapi_stats_3a *>(mem.data());
+ ipu3_uapi_params *params =
+ reinterpret_cast<ipu3_uapi_params *>(mem.data());
- parseStatistics(event.frame, event.frameTimestamp, stats);
+ fillParams(event.frame, params);
break;
}
- case EventFillParams: {
+ case EventStatReady: {
auto it = buffers_.find(event.bufferId);
if (it == buffers_.end()) {
- LOG(IPAIPU3, Error) << "Could not find param buffer!";
+ LOG(IPAIPU3, Error) << "Could not find stats buffer!";
return;
}
Span<uint8_t> mem = it->second.planes()[0];
- ipu3_uapi_params *params =
- reinterpret_cast<ipu3_uapi_params *>(mem.data());
+ const ipu3_uapi_stats_3a *stats =
+ reinterpret_cast<ipu3_uapi_stats_3a *>(mem.data());
- fillParams(event.frame, params);
+ parseStatistics(event.frame, event.frameTimestamp, stats);
break;
}
default: