summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-07-12 15:15:48 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-07-14 16:00:58 +0300
commit5085bc03bc14234bced8b194f4ed61f221d81852 (patch)
tree8033ce7f2db22d18f6cc6fd1df872c387437f00d
parent4cb78e712c769e32ca46b5c7e41aa5d3f836bbbb (diff)
libcamera: Stop using Stream::bufferPool to get the number of buffers
The cam and qcam applications, as well as the camera capture test case, access the Stream::bufferPool in order to know how many requests to initially queue. As part of an effort to remove access to the buffer pool from applications, use the buffer count from the stream configuration instead. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
-rw-r--r--src/cam/capture.cpp6
-rw-r--r--src/qcam/main_window.cpp3
-rw-r--r--test/camera/capture.cpp3
3 files changed, 4 insertions, 8 deletions
diff --git a/src/cam/capture.cpp b/src/cam/capture.cpp
index 1cf59063..66ec1aba 100644
--- a/src/cam/capture.cpp
+++ b/src/cam/capture.cpp
@@ -74,10 +74,8 @@ int Capture::capture(EventLoop *loop)
/* Identify the stream with the least number of buffers. */
unsigned int nbuffers = UINT_MAX;
- for (StreamConfiguration &cfg : *config_) {
- Stream *stream = cfg.stream();
- nbuffers = std::min(nbuffers, stream->bufferPool().count());
- }
+ for (StreamConfiguration &cfg : *config_)
+ nbuffers = std::min(nbuffers, cfg.bufferCount);
/*
* TODO: make cam tool smarter to support still capture by for
diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp
index 6ecf30e3..7023e115 100644
--- a/src/qcam/main_window.cpp
+++ b/src/qcam/main_window.cpp
@@ -140,9 +140,8 @@ int MainWindow::startCapture()
return ret;
}
- BufferPool &pool = stream->bufferPool();
std::vector<Request *> requests;
- for (unsigned int i = 0; i < pool.count(); ++i) {
+ for (unsigned int i = 0; i < cfg.bufferCount; ++i) {
Request *request = camera_->createRequest();
if (!request) {
std::cerr << "Can't create request" << std::endl;
diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp
index ff1cbd6c..e6bf7a8d 100644
--- a/test/camera/capture.cpp
+++ b/test/camera/capture.cpp
@@ -80,9 +80,8 @@ protected:
}
Stream *stream = cfg.stream();
- BufferPool &pool = stream->bufferPool();
std::vector<Request *> requests;
- for (unsigned int i = 0; i < pool.count(); ++i) {
+ for (unsigned int i = 0; i < cfg.bufferCount; ++i) {
Request *request = camera_->createRequest();
if (!request) {
cout << "Failed to create request" << endl;