From 9bb36ec274da530e509fe2f4010b262c43e812f3 Mon Sep 17 00:00:00 2001
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date: Tue, 9 Jul 2019 13:56:55 +0300
Subject: libcamera: v4l2_videodevice: Add helper to queue all buffers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When starting the stream on a capture video device it is often needed to
queue all the allocated buffers. Add a helper method to do so, and
refactor the existing queueBuffer() method to make it clearer.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
---
 test/v4l2_videodevice/buffer_sharing.cpp | 9 ++++-----
 test/v4l2_videodevice/capture_async.cpp  | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)

(limited to 'test')

diff --git a/test/v4l2_videodevice/buffer_sharing.cpp b/test/v4l2_videodevice/buffer_sharing.cpp
index cc724b22..da052f34 100644
--- a/test/v4l2_videodevice/buffer_sharing.cpp
+++ b/test/v4l2_videodevice/buffer_sharing.cpp
@@ -117,11 +117,10 @@ protected:
 		capture_->bufferReady.connect(this, &BufferSharingTest::captureBufferReady);
 		output_->bufferReady.connect(this, &BufferSharingTest::outputBufferReady);
 
-		/* Queue all the buffers to the capture device. */
-		for (Buffer &buffer : pool_.buffers()) {
-			if (capture_->queueBuffer(&buffer))
-				return TestFail;
-		}
+		std::vector<std::unique_ptr<Buffer>> buffers;
+		buffers = capture_->queueAllBuffers();
+		if (buffers.empty())
+			return TestFail;
 
 		ret = capture_->streamOn();
 		if (ret) {
diff --git a/test/v4l2_videodevice/capture_async.cpp b/test/v4l2_videodevice/capture_async.cpp
index cea4fffb..4909f71a 100644
--- a/test/v4l2_videodevice/capture_async.cpp
+++ b/test/v4l2_videodevice/capture_async.cpp
@@ -46,11 +46,10 @@ protected:
 
 		capture_->bufferReady.connect(this, &CaptureAsyncTest::receiveBuffer);
 
-		/* Queue all the buffers to the device. */
-		for (Buffer &b : pool_.buffers()) {
-			if (capture_->queueBuffer(&b))
-				return TestFail;
-		}
+		std::vector<std::unique_ptr<Buffer>> buffers;
+		buffers = capture_->queueAllBuffers();
+		if (buffers.empty())
+			return TestFail;
 
 		ret = capture_->streamOn();
 		if (ret)
-- 
cgit v1.2.1