[libcamera-devel] [PATCH v4 12/16] libcamera: raspberrypi: Do not over-write metadata
Jacopo Mondi
jacopo at jmondi.org
Fri Apr 30 18:00:22 CEST 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 at output buffer completion, such as the
SensorTimestamp.
This commit applies to the RaspberryPi pipeline handler the same change
applied to IPU3 in commit 13a7ed7b1f1f ("libcamera: ipu3: Do not
over-write metadata") but compared to that commit it uses the newly
introduced ControlList::merge() function.
Reviewed-by: Naushir Patuck <naush at raspberrypi.com>
Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 2a917455500f..46f418aa8d73 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -1312,9 +1312,14 @@ void RPiCameraData::statsMetadataComplete(uint32_t bufferId, const ControlList &
handleStreamBuffer(buffer, &isp_[Isp::Stats]);
- /* Fill the Request metadata buffer with what the IPA has provided */
+ /*
+ * Add to the Request metadata buffer what the IPA has provided.
+ *
+ * Do not overwrite controls set by the pipeline handler, for example
+ * SensorTimestamp.
+ */
Request *request = requestQueue_.front();
- request->metadata() = controls;
+ request->metadata().merge(controls);
/*
* Also update the ScalerCrop in the metadata with what we actually
--
2.31.1
More information about the libcamera-devel
mailing list