Improve MMAP handling
This commit is contained in:
parent
5e836612ca
commit
0aa292fb84
@ -54,7 +54,7 @@ buffer_t *buffer_open(const char *name, buffer_list_t *buf_list, int index) {
|
|||||||
buf->dma_fd = v4l2_exp.fd;
|
buf->dma_fd = v4l2_exp.fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buf_list->do_capture) {
|
if (buf_list->do_capture && buf_list->do_mmap) {
|
||||||
buf->used = 0;
|
buf->used = 0;
|
||||||
buffer_consumed(buf);
|
buffer_consumed(buf);
|
||||||
}
|
}
|
||||||
|
@ -13,10 +13,12 @@ buffer_list_t *buffer_list_open(const char *name, struct device_s *dev, unsigned
|
|||||||
switch(type) {
|
switch(type) {
|
||||||
case V4L2_BUF_TYPE_VIDEO_OUTPUT:
|
case V4L2_BUF_TYPE_VIDEO_OUTPUT:
|
||||||
buf_list->do_mmap = do_mmap;
|
buf_list->do_mmap = do_mmap;
|
||||||
|
buf_list->do_dma = do_mmap;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
|
case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
|
||||||
buf_list->do_mmap = do_mmap;
|
buf_list->do_mmap = do_mmap;
|
||||||
|
buf_list->do_dma = do_mmap;
|
||||||
buf_list->do_mplanes = true;
|
buf_list->do_mplanes = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ buffer_t *buffer_list_find_slot(buffer_list_t *buf_list)
|
|||||||
buffer_t *buf = NULL;
|
buffer_t *buf = NULL;
|
||||||
|
|
||||||
for (int i = 0; i < buf_list->nbufs; i++) {
|
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];
|
buf = buf_list->bufs[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user