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>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user