[libcamera-devel] [PATCH 2/3] libcamera: ipu3: Report sensor timestamp

Hirokazu Honda hiroh at chromium.org
Thu Apr 8 11:04:07 CEST 2021


Hi Jacopo, Thanks for the patch.

On Thu, Apr 8, 2021 at 1:06 AM Jacopo Mondi <jacopo at jmondi.org> wrote:
>
> Report the sensor's timestamp in the Request metadata by using the
> CIO2 buffer timestamp as a good-enough approximation.
>
> The buffer's timestamp is recorded at DMA-transfer time, and it does not
> theoretically matches the 'start of exposure' definition, but when used
> to compare two consecutive frames it gives an acceptable estimation of
> the sensor frame period duration.
>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
>  src/libcamera/pipeline/ipu3/ipu3.cpp | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index 519cad4f8148..d52e24f847a2 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -1251,6 +1251,15 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)
>
>         Request *request = info->request;
>
> +       /*
> +        * Record the sensor's timestamp in the request metadata.
> +        *
> +        * \todo The sensor timestamp should be better estimated by connecting
> +        * to the V4L2Device::frameStart signal.
> +        */
> +       request->metadata().set(controls::SensorTimestamp,
> +                               buffer->metadata().timestamp);
> +
>         /* If the buffer is cancelled force a complete of the whole request. */
>         if (buffer->metadata().status == FrameMetadata::FrameCancelled) {
>                 for (auto it : request->buffers())


Reviewed-by: Hirokazu Honda <hiroh at chromium.org>
> --
> 2.31.1
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel


More information about the libcamera-devel mailing list