[libcamera-devel] [PATCH] libcamera: ipu3: Do not over-write metadata

Jacopo Mondi jacopo at jmondi.org
Fri Feb 19 12:22:57 CET 2021


When a Request is completed upon receiving the IPA produced metadata,
the metadata associated with the Request are over-written, deleting
the information set, in example, at ImgU output buffer completion time.

If any additional Request metadata should be registered by inspecting
the IPA produced metadata it has to be done without deleting the already
registered entries.

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")
Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
 src/libcamera/pipeline/ipu3/ipu3.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 2aed826a892a..9e867ab2e98a 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -1101,8 +1101,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 request metadata.
+		 */
 		Request *request = info->request;
-		request->metadata() = action.controls;
 		info->metadataProcessed = true;
 		if (frameInfos_.tryComplete(info))
 			pipe_->completeRequest(request);
--
2.30.0



More information about the libcamera-devel mailing list