Implement proper timestamping for references

Reference frames are now identified using their timestamp:
set the timestamp when queuing the output buffer and use it to identify
the frame later on.

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
This commit is contained in:
Paul Kocialkowski
2019-03-07 11:37:53 +01:00
parent 3176adf69c
commit 0c611c6b7a
7 changed files with 33 additions and 21 deletions
+5 -2
View File
@@ -330,8 +330,8 @@ int v4l2_request_buffers(int video_fd, unsigned int type,
}
int v4l2_queue_buffer(int video_fd, int request_fd, unsigned int type,
unsigned int index, unsigned int size,
unsigned int buffers_count)
struct timeval *timestamp, unsigned int index,
unsigned int size, unsigned int buffers_count)
{
struct v4l2_plane planes[buffers_count];
struct v4l2_buffer buffer;
@@ -358,6 +358,9 @@ int v4l2_queue_buffer(int video_fd, int request_fd, unsigned int type,
buffer.request_fd = request_fd;
}
if (timestamp != NULL)
buffer.timestamp = *timestamp;
rc = ioctl(video_fd, VIDIOC_QBUF, &buffer);
if (rc < 0) {
request_log("Unable to queue buffer: %s\n", strerror(errno));