[libcamera-devel,v5,13/17] libcamera: raspberrypi: Do not over-write metadata
diff mbox series

Message ID 20210503104152.34048-14-jacopo@jmondi.org
State Accepted
Headers show
Series
  • Support SensorTimestamp metadata
Related show

Commit Message

Jacopo Mondi May 3, 2021, 10:41 a.m. UTC
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 2ee3dd57e2fc ("libcamera: ipu3: Merge IPA
metadata controls").

Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
---
 src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Hirokazu Honda May 6, 2021, 5:03 a.m. UTC | #1
Hi Jacopo, thank you for the patch.

On Mon, May 3, 2021 at 7:41 PM Jacopo Mondi <jacopo@jmondi.org> wrote:

> 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 2ee3dd57e2fc ("libcamera: ipu3: Merge IPA
> metadata controls").
>
> Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
>

Reviewed-by: Hirokazu Honda <hiroh@chromium.org>


> ---
>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index 2a917455500f..91f44f6844b3 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -1312,9 +1312,9 @@ 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. */
>         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
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
>

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 2a917455500f..91f44f6844b3 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -1312,9 +1312,9 @@  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. */
 	Request *request = requestQueue_.front();
-	request->metadata() = controls;
+	request->metadata().merge(controls);
 
 	/*
 	 * Also update the ScalerCrop in the metadata with what we actually