Improve MMAP handling

This commit is contained in:
Kamil Trzcinski 2022-04-05 14:37:48 +02:00
parent 5e836612ca
commit 0aa292fb84
3 changed files with 4 additions and 2 deletions

View File

@ -54,7 +54,7 @@ buffer_t *buffer_open(const char *name, buffer_list_t *buf_list, int index) {
buf->dma_fd = v4l2_exp.fd;
}
if (buf_list->do_capture) {
if (buf_list->do_capture && buf_list->do_mmap) {
buf->used = 0;
buffer_consumed(buf);
}

View File

@ -13,10 +13,12 @@ buffer_list_t *buffer_list_open(const char *name, struct device_s *dev, unsigned
switch(type) {
case V4L2_BUF_TYPE_VIDEO_OUTPUT:
buf_list->do_mmap = do_mmap;
buf_list->do_dma = do_mmap;
break;
case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
buf_list->do_mmap = do_mmap;
buf_list->do_dma = do_mmap;
buf_list->do_mplanes = true;
break;

View File

@ -74,7 +74,7 @@ buffer_t *buffer_list_find_slot(buffer_list_t *buf_list)
buffer_t *buf = NULL;
for (int i = 0; i < buf_list->nbufs; i++) {
if (!buf_list->bufs[i]->enqueued) {
if (!buf_list->bufs[i]->enqueued && buf_list->bufs[i]->mmap_reflinks == 1) {
buf = buf_list->bufs[i];
break;
}