diff --git a/cmd/camera.c b/cmd/camera.c index 63607f1..82dad42 100644 --- a/cmd/camera.c +++ b/cmd/camera.c @@ -34,6 +34,8 @@ int camera_open(camera_t *camera, const char *path) return -1; } + camera->camera->allow_dma = camera->allow_dma; + return 0;; } diff --git a/hw/device.c b/hw/device.c index 7f6505a..6460453 100644 --- a/hw/device.c +++ b/hw/device.c @@ -122,7 +122,9 @@ int device_open_buffer_list_output(device_t *dev, buffer_list_t *capture_list) { return device_open_buffer_list(dev, false, capture_list->fmt_width, capture_list->fmt_height, - capture_list->fmt_format, capture_list->fmt_bytesperline, capture_list->nbufs, !capture_list->do_mmap); + capture_list->fmt_format, capture_list->fmt_bytesperline, + capture_list->nbufs, + capture_list->device->allow_dma ? !capture_list->do_mmap : true); } int device_open_buffer_list_capture(device_t *dev, buffer_list_t *output_list, float div, unsigned format, bool do_mmap)