libcamera: v4l2_videodevice: Clarify setting of v4l2_buffer timestamp

Add a comment to clarify why we set v4l2_buffer timestamp while
queuing the buffer (VIDIOC_QBUF). The timstamps are required to
be supplied for memory-to-memory devices for output streams which
then are copied to capture stream buffers with the help of
V4L2_BUF_FLAG_TIMESTAMP_COPY (set by the driver).

Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Umang Jain
2022-03-17 16:17:39 +05:30
parent ea9bc717bd
commit b24e39be48

View File

@@ -1600,6 +1600,14 @@ int V4L2VideoDevice::queueBuffer(FrameBuffer *buffer)
buf.length = planes[0].length;
}
/*
* Timestamps are to be supplied if the device is a mem-to-mem
* device. The drivers will have V4L2_BUF_FLAG_TIMESTAMP_COPY
* set hence these timestamps will be copied from the output
* buffers to capture buffers. If the device is not mem-to-mem,
* there is no harm in setting the timestamps as they will be
* ignored (and over-written).
*/
buf.timestamp.tv_sec = metadata.timestamp / 1000000000;
buf.timestamp.tv_usec = (metadata.timestamp / 1000) % 1000000;
}