[libcamera-devel] [PATCH 09/13] libcamera: raspberrypi: Do not over-write metadata
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Apr 20 23:54:52 CEST 2021
Hi Jacopo,
Thank you for the patch.
On Mon, Apr 19, 2021 at 03:14:29PM +0200, Jacopo Mondi wrote:
> This commit applies to the RaspberryPi pipeline handler the same change
> applied to IPU3 in commit 13a7ed7b1f1f ("libcamera: ipu3: Do not
> over-write metadata").
>
> 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.
The change looks good, but may be implemented on top of
ControlList::merge().
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
> src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index f22e286ed87a..d1902bfc3393 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -1312,9 +1312,15 @@ 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, in example
> + * SensorTimestamp.
> + */
> Request *request = requestQueue_.front();
> - request->metadata() = controls;
> + for (const auto &ctrl : controls)
> + request->metadata().set(ctrl.first, ctrl.second);
>
> /*
> * Also update the ScalerCrop in the metadata with what we actually
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list