diff options
Diffstat (limited to 'src/ipa/ipu3/ipu3.cpp')
-rw-r--r-- | src/ipa/ipu3/ipu3.cpp | 27 |
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: |