@@ -39,7 +39,7 @@ public:
ControlList &controls() { return *controls_; }
ControlList &metadata() { return *metadata_; }
const std::map<Stream *, Buffer *> &buffers() const { return bufferMap_; }
- int addBuffer(std::unique_ptr<Buffer> buffer);
+ int addBuffer(Stream *stream, std::unique_ptr<Buffer> buffer);
Buffer *findBuffer(Stream *stream) const;
uint64_t cookie() const { return cookie_; }
@@ -754,7 +754,7 @@ void CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reque
Request *request =
camera_->createRequest(reinterpret_cast<uint64_t>(descriptor));
- request->addBuffer(std::move(buffer));
+ request->addBuffer(stream, std::move(buffer));
int ret = camera_->queueRequest(request);
if (ret) {
@@ -95,7 +95,7 @@ int Capture::capture(EventLoop *loop)
Stream *stream = cfg.stream();
std::unique_ptr<Buffer> buffer = stream->createBuffer(i);
- ret = request->addBuffer(std::move(buffer));
+ ret = request->addBuffer(stream, std::move(buffer));
if (ret < 0) {
std::cerr << "Can't set buffer for request"
<< std::endl;
@@ -185,7 +185,7 @@ void Capture::requestComplete(Request *request)
return;
}
- request->addBuffer(std::move(newBuffer));
+ request->addBuffer(stream, std::move(newBuffer));
}
camera_->queueRequest(request);
@@ -113,6 +113,7 @@ Request::~Request()
/**
* \brief Store a Buffer with its associated Stream in the Request
+ * \param[in] stream The stream the buffer belongs to
* \param[in] buffer The Buffer to store in the request
*
* Ownership of the buffer is passed to the request. It will be deleted when
@@ -125,9 +126,8 @@ Request::~Request()
* \retval -EEXIST The request already contains a buffer for the stream
* \retval -EINVAL The buffer does not reference a valid Stream
*/
-int Request::addBuffer(std::unique_ptr<Buffer> buffer)
+int Request::addBuffer(Stream *stream, std::unique_ptr<Buffer> buffer)
{
- Stream *stream = buffer->stream();
if (!stream) {
LOG(Request, Error) << "Invalid stream reference";
return -EINVAL;
@@ -191,7 +191,7 @@ int MainWindow::startCapture()
goto error;
}
- ret = request->addBuffer(std::move(buffer));
+ ret = request->addBuffer(stream, std::move(buffer));
if (ret < 0) {
std::cerr << "Can't set buffer for request" << std::endl;
goto error;
@@ -289,7 +289,7 @@ void MainWindow::requestComplete(Request *request)
return;
}
- request->addBuffer(std::move(newBuffer));
+ request->addBuffer(stream, std::move(newBuffer));
}
camera_->queueRequest(request);
@@ -268,7 +268,7 @@ public:
Request *request = camera_->createRequest(cookie);
std::unique_ptr<Buffer> buffer = stream_->createBuffer({ dmabuf, -1, -1 });
- request->addBuffer(move(buffer));
+ request->addBuffer(stream_, move(buffer));
camera_->queueRequest(request);
}
@@ -49,7 +49,7 @@ protected:
std::unique_ptr<Buffer> newBuffer = stream->createBuffer(buffer->index());
request = camera_->createRequest();
- request->addBuffer(std::move(newBuffer));
+ request->addBuffer(stream, std::move(newBuffer));
camera_->queueRequest(request);
}
@@ -101,7 +101,7 @@ protected:
return TestFail;
}
- if (request->addBuffer(std::move(buffer))) {
+ if (request->addBuffer(stream, std::move(buffer))) {
cout << "Failed to associating buffer with request" << endl;
return TestFail;
}
@@ -219,7 +219,7 @@ protected:
Stream *stream = *camera_->streams().begin();
std::unique_ptr<Buffer> buffer = stream->createBuffer(0);
- if (request->addBuffer(std::move(buffer)))
+ if (request->addBuffer(stream, std::move(buffer)))
return TestFail;
if (camera_->queueRequest(request))