summaryrefslogtreecommitdiff
path: root/src/libcamera/camera.cpp
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-01-12 01:10:51 +0100
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-01-12 16:10:37 +0100
commit856a4a25278ce5e4b64497deaa3b20c4df16fdee (patch)
treea60c0e8d418e306db82db15668f3ea8033a11a72 /src/libcamera/camera.cpp
parent96eaad1238131721207c6a9bde077f7f1aad5f60 (diff)
libcamera: request: remove prepare()
The association of buffers to a request can be done directly in addBuffer() instead of when the request is queued to the camera. Keep the check that a request contains buffers by moving it to Camera::queueRequest() where prepare() was previously called. As a bonus we can remove a friend statement in Request. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/libcamera/camera.cpp')
-rw-r--r--src/libcamera/camera.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index e810fb72..5d294b10 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -810,6 +810,11 @@ int Camera::queueRequest(Request *request)
if (!stateIs(CameraRunning))
return -EACCES;
+ if (request->buffers().empty()) {
+ LOG(Camera, Error) << "Request contains no buffers";
+ return -EINVAL;
+ }
+
for (auto const &it : request->buffers()) {
Stream *stream = it.first;
Buffer *buffer = it.second;
@@ -832,12 +837,6 @@ int Camera::queueRequest(Request *request)
buffer->mem_ = &stream->buffers()[buffer->index_];
}
- int ret = request->prepare();
- if (ret) {
- LOG(Camera, Error) << "Failed to prepare request";
- return ret;
- }
-
return pipe_->queueRequest(this, request);
}