diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2021-02-19 12:16:11 +0100 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2021-02-22 11:38:33 +0100 |
commit | 13a7ed7b1f1fbeac2252fae9fd9b949b6ad048f2 (patch) | |
tree | 9c535306ab0472b1f7d101611007aa73166420f0 | |
parent | 79991a99033f068fa463dccdf2abc423ae19f4e5 (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.cpp | 5 |
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); |