[libcamera-devel] [PATCH] ipa: ipu3: List the events in their order of calling
Jean-Michel Hautbois
jeanmichel.hautbois at ideasonboard.com
Fri Nov 5 16:20:31 CET 2021
This is a cleanup patch, no functionnal behaviour changes. It makes it
clearer when an event is called.
Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
---
src/ipa/ipu3/ipu3.cpp | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index 5c51607d..d97b2f9e 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:
--
2.32.0
More information about the libcamera-devel
mailing list