From d52ac784f63d5c5683dbcc04bb2b35a1222ee392 Mon Sep 17 00:00:00 2001 From: Maxim Devaev Date: Thu, 29 Feb 2024 02:42:44 +0200 Subject: [PATCH] device: don't expose dma for jpeg --- src/libs/device.c | 3 ++- src/ustreamer/stream.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libs/device.c b/src/libs/device.c index 6e1d57c..e072b41 100644 --- a/src/libs/device.c +++ b/src/libs/device.c @@ -194,7 +194,8 @@ int us_device_open(us_device_s *dev) { if (_device_open_queue_buffers(dev) < 0) { goto error; } - if (dev->dma_export) { + if (dev->dma_export && !us_is_jpeg(run->format)) { + // uStreamer doesn't have any component that could handle JPEG capture via DMA run->dma = !_device_open_export_to_dma(dev); if (!run->dma && dev->dma_required) { goto error; diff --git a/src/ustreamer/stream.c b/src/ustreamer/stream.c index a3a5b93..0587c7f 100644 --- a/src/ustreamer/stream.c +++ b/src/ustreamer/stream.c @@ -245,7 +245,7 @@ static us_workers_pool_s *_stream_init_loop(us_stream_s *stream) { stream->dev->dma_export = ( stream->enc->type == US_ENCODER_TYPE_M2M_VIDEO || stream->enc->type == US_ENCODER_TYPE_M2M_IMAGE - || (_RUN(h264) && !us_is_jpeg(stream->dev->run->format)) + || _RUN(h264) != NULL ); if (us_device_open(stream->dev) == 0) { return us_encoder_workers_pool_init(stream->enc, stream->dev);