summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libcamera/include/v4l2_device.h2
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp3
-rw-r--r--src/libcamera/pipeline/uvcvideo.cpp2
-rw-r--r--src/libcamera/pipeline/vimc.cpp2
-rw-r--r--src/libcamera/v4l2_device.cpp15
-rw-r--r--test/v4l2_device/capture_async.cpp4
-rw-r--r--test/v4l2_device/request_buffers.cpp4
-rw-r--r--test/v4l2_device/stream_on_off.cpp4
-rw-r--r--test/v4l2_device/v4l2_device_test.h2
9 files changed, 16 insertions, 22 deletions
diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/v4l2_device.h
index 983b9d90..5a536393 100644
--- a/src/libcamera/include/v4l2_device.h
+++ b/src/libcamera/include/v4l2_device.h
@@ -99,7 +99,7 @@ public:
int getFormat(V4L2DeviceFormat *format);
int setFormat(V4L2DeviceFormat *format);
- int exportBuffers(unsigned int count, BufferPool *pool);
+ int exportBuffers(BufferPool *pool);
int releaseBuffers();
int queueBuffer(Buffer *buffer);
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 34b03995..677e127d 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -191,8 +191,7 @@ int PipelineHandlerIPU3::allocateBuffers(Camera *camera, Stream *stream)
if (!cfg.bufferCount)
return -EINVAL;
- int ret = data->cio2_->exportBuffers(cfg.bufferCount,
- &stream->bufferPool());
+ int ret = data->cio2_->exportBuffers(&stream->bufferPool());
if (ret) {
LOG(IPU3, Error) << "Failed to request memory";
return ret;
diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp
index fc31c52c..b6a98657 100644
--- a/src/libcamera/pipeline/uvcvideo.cpp
+++ b/src/libcamera/pipeline/uvcvideo.cpp
@@ -102,7 +102,7 @@ int PipelineHandlerUVC::allocateBuffers(Camera *camera, Stream *stream)
LOG(UVC, Debug) << "Requesting " << cfg.bufferCount << " buffers";
- return video_->exportBuffers(cfg.bufferCount, &stream->bufferPool());
+ return video_->exportBuffers(&stream->bufferPool());
}
int PipelineHandlerUVC::freeBuffers(Camera *camera, Stream *stream)
diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp
index 46840a4f..543ff212 100644
--- a/src/libcamera/pipeline/vimc.cpp
+++ b/src/libcamera/pipeline/vimc.cpp
@@ -101,7 +101,7 @@ int PipelineHandlerVimc::allocateBuffers(Camera *camera, Stream *stream)
LOG(VIMC, Debug) << "Requesting " << cfg.bufferCount << " buffers";
- return video_->exportBuffers(cfg.bufferCount, &stream->bufferPool());
+ return video_->exportBuffers(&stream->bufferPool());
}
int PipelineHandlerVimc::freeBuffers(Camera *camera, Stream *stream)
diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
index 207ba933..ca6bb4ee 100644
--- a/src/libcamera/v4l2_device.cpp
+++ b/src/libcamera/v4l2_device.cpp
@@ -538,13 +538,12 @@ int V4L2Device::requestBuffers(unsigned int count)
}
/**
- * \brief Request \a count buffers to be allocated from the device and stored in
- * the buffer pool provided.
- * \param[in] count Number of buffers to allocate
+ * \brief Request buffers to be allocated from the device and stored in the
+ * buffer pool provided.
* \param[out] pool BufferPool to populate with buffers
* \return 0 on success or a negative error code otherwise
*/
-int V4L2Device::exportBuffers(unsigned int count, BufferPool *pool)
+int V4L2Device::exportBuffers(BufferPool *pool)
{
unsigned int allocatedBuffers;
unsigned int i;
@@ -552,21 +551,19 @@ int V4L2Device::exportBuffers(unsigned int count, BufferPool *pool)
memoryType_ = V4L2_MEMORY_MMAP;
- ret = requestBuffers(count);
+ ret = requestBuffers(pool->count());
if (ret < 0)
return ret;
allocatedBuffers = ret;
- if (allocatedBuffers < count) {
+ if (allocatedBuffers < pool->count()) {
LOG(V4L2, Error) << "Not enough buffers provided by V4L2Device";
requestBuffers(0);
return -ENOMEM;
}
- count = ret;
-
/* Map the buffers. */
- for (i = 0; i < count; ++i) {
+ for (i = 0; i < pool->count(); ++i) {
struct v4l2_plane planes[VIDEO_MAX_PLANES] = {};
struct v4l2_buffer buf = {};
struct Buffer &buffer = pool->buffers()[i];
diff --git a/test/v4l2_device/capture_async.cpp b/test/v4l2_device/capture_async.cpp
index ba37c973..511368d6 100644
--- a/test/v4l2_device/capture_async.cpp
+++ b/test/v4l2_device/capture_async.cpp
@@ -38,9 +38,9 @@ protected:
Timer timeout;
int ret;
- createBuffers(bufferCount);
+ pool_.createBuffers(bufferCount);
- ret = dev_->exportBuffers(bufferCount, &pool_);
+ ret = dev_->exportBuffers(&pool_);
if (ret)
return TestFail;
diff --git a/test/v4l2_device/request_buffers.cpp b/test/v4l2_device/request_buffers.cpp
index bc6ff2c1..26d7d952 100644
--- a/test/v4l2_device/request_buffers.cpp
+++ b/test/v4l2_device/request_buffers.cpp
@@ -19,9 +19,9 @@ protected:
*/
const unsigned int bufferCount = 8;
- createBuffers(bufferCount);
+ pool_.createBuffers(bufferCount);
- int ret = dev_->exportBuffers(bufferCount, &pool_);
+ int ret = dev_->exportBuffers(&pool_);
if (ret)
return TestFail;
diff --git a/test/v4l2_device/stream_on_off.cpp b/test/v4l2_device/stream_on_off.cpp
index b564d2a2..861d8d69 100644
--- a/test/v4l2_device/stream_on_off.cpp
+++ b/test/v4l2_device/stream_on_off.cpp
@@ -14,9 +14,9 @@ protected:
{
const unsigned int bufferCount = 8;
- createBuffers(bufferCount);
+ pool_.createBuffers(bufferCount);
- int ret = dev_->exportBuffers(bufferCount, &pool_);
+ int ret = dev_->exportBuffers(&pool_);
if (ret)
return TestFail;
diff --git a/test/v4l2_device/v4l2_device_test.h b/test/v4l2_device/v4l2_device_test.h
index f22f0bb5..43539655 100644
--- a/test/v4l2_device/v4l2_device_test.h
+++ b/test/v4l2_device/v4l2_device_test.h
@@ -24,8 +24,6 @@ class V4L2DeviceTest : public Test
public:
V4L2DeviceTest() : dev_(nullptr){};
- void createBuffers(unsigned int qty) { pool_.createBuffers(qty); }
-
protected:
int init();
void cleanup();