summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2021-02-19 12:16:11 +0100
committerJacopo Mondi <jacopo@jmondi.org>2021-02-22 11:38:33 +0100
commit13a7ed7b1f1fbeac2252fae9fd9b949b6ad048f2 (patch)
tree9c535306ab0472b1f7d101611007aa73166420f0
parent79991a99033f068fa463dccdf2abc423ae19f4e5 (diff)
libcamera: ipu3: Do not over-write metadata
When a Request is completed upon receiving the IPA produced metadata, the metadata associated with the Request were over-written, deleting the information set, in example, at ImgU output buffer completion. If any additional Request metadata should be registered by inspecting the IPA produced metadata it has to be done without deleting the already registered entry. Fix this by replacing the metadata over-write with a todo entry. This change fixes CTS which was broken due to missing metadata in the completed requests. Fixes: 9708f49fecf2 ("libcamera: ipu3: Share parameter and statistic buffers with IPA") Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 5c458cb6..b8a655ce 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -1076,8 +1076,11 @@ void IPU3CameraData::queueFrameAction(unsigned int id,
if (!info)
break;
+ /*
+ * \todo Parse the value of the controls returned by the IPA
+ * in action.controls to register additional metadata.
+ */
Request *request = info->request;
- request->metadata() = action.controls;
info->metadataProcessed = true;
if (frameInfos_.tryComplete(info))
pipe_->completeRequest(request);