Improve decoding pipeline

This commit is contained in:
Kamil Trzcinski
2022-04-06 16:49:36 +02:00
parent 6d3f992034
commit a387f4d70c
5 changed files with 50 additions and 4 deletions

View File

@ -225,3 +225,37 @@ int buffer_list_stream(buffer_list_t *buf_list, bool do_on)
error:
return -1;
}
int buffer_list_refresh_states(buffer_list_t *buf_list)
{
if (!buf_list) {
return -1;
}
struct v4l2_buffer v4l2_buf = {0};
struct v4l2_plane v4l2_plane = {0};
v4l2_buf.type = buf_list->type;
if (buf_list->do_mplanes) {
v4l2_buf.length = 1;
v4l2_buf.m.planes = &v4l2_plane;
}
if (buf_list->do_mmap) {
v4l2_buf.memory = V4L2_MEMORY_MMAP;
} else {
v4l2_buf.memory = V4L2_MEMORY_DMABUF;
}
for (int i = 0; i < buf_list->nbufs; i++) {
v4l2_buf.index = i;
E_XIOCTL(buf_list, buf_list->device->fd, VIDIOC_QUERYBUF, &v4l2_buf, "Can't query buffer (flags=%08x)", i);
E_LOG_INFO(buf_list, "Buffer: %d, Flags: %08x. Offset: %d", i, v4l2_buf.flags,
buf_list->do_mplanes ? v4l2_plane.m.mem_offset : v4l2_buf.m.offset);
}
error:
return -1;
}