diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-07-09 13:56:55 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-07-14 16:00:51 +0300 |
commit | 9bb36ec274da530e509fe2f4010b262c43e812f3 (patch) | |
tree | 1b422e3abc7d7fcd801ae1df8704f1a138c290ca /test/v4l2_videodevice | |
parent | 33d3c4e2046044ec595ac2cb7ee7db4011e83fb7 (diff) |
libcamera: v4l2_videodevice: Add helper to queue all buffers
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>
Diffstat (limited to 'test/v4l2_videodevice')
-rw-r--r-- | test/v4l2_videodevice/buffer_sharing.cpp | 9 | ||||
-rw-r--r-- | test/v4l2_videodevice/capture_async.cpp | 9 |
2 files changed, 8 insertions, 10 deletions
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) |