[libcamera-devel] [PATCH v3 13/16] libcamera: raspberry: Report sensor timestamp

Jacopo Mondi jacopo at jmondi.org
Thu Apr 22 09:12:27 CEST 2021


Hi Hiro,

On Thu, Apr 22, 2021 at 02:23:34PM +0900, Hirokazu Honda wrote:
> Hi Jacopo, thank you for the patch.
>
> On Thu, Apr 22, 2021 at 1:03 AM Jacopo Mondi <jacopo at jmondi.org> wrote:
> >
> > Report the sensor's timestamp in the Request metadata by using the
> > Unicam::Image buffer timestamp as an initial 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.
> >
> > Reviewed-by: Naushir Patuck <naush at raspberrypi.com>
> > Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> > ---
> >  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> >
> > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> > index 6c6d31f78c88..ac135f95de12 100644
> > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> > @@ -1414,6 +1414,18 @@ void RPiCameraData::unicamBufferDequeue(FrameBuffer *buffer)
> >                         << ", timestamp: " << buffer->metadata().timestamp;
> >
> >         if (stream == &unicam_[Unicam::Image]) {
> > +               /*
> > +                * Record the sensor timestamp in the Request.
> > +                *
> > +                * \todo Do not assume the request in the front of the queue
> > +                * is the correct one
> > +                */
>
> Can you have any idea how to get rid of this assumption?
> I am ok with this patch as-is while the todo should be resolved in the
> near future.

Yes, there's a plan
https://patchwork.libcamera.org/patch/11992/

>
> Reviewed-by: Hirokazu Honda <hiroh at chromium.org>
>
> > +               Request *request = requestQueue_.front();
> > +               ASSERT(request);
> > +
> > +               request->metadata().set(controls::SensorTimestamp,
> > +                                       buffer->metadata().timestamp);
> > +
> >                 /*
> >                  * Lookup the sensor controls used for this frame sequence from
> >                  * DelayedControl and queue them along with the frame buffer.
> > --
> > 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