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:
@@ -139,6 +139,8 @@ int Request::addBuffer(std::unique_ptr<Buffer> buffer)
|
||||
return -EEXIST;
|
||||
}
|
||||
|
||||
buffer->setRequest(this);
|
||||
pending_.insert(buffer.get());
|
||||
bufferMap_[stream] = buffer.release();
|
||||
|
||||
return 0;
|
||||
@@ -203,30 +205,6 @@ Buffer *Request::findBuffer(Stream *stream) const
|
||||
* otherwise
|
||||
*/
|
||||
|
||||
/**
|
||||
* \brief Validate the request and prepare it for the completion handler
|
||||
*
|
||||
* Requests that contain no buffers are invalid and are rejected.
|
||||
*
|
||||
* \return 0 on success or a negative error code otherwise
|
||||
* \retval -EINVAL The request is invalid
|
||||
*/
|
||||
int Request::prepare()
|
||||
{
|
||||
if (bufferMap_.empty()) {
|
||||
LOG(Request, Error) << "Invalid request due to missing buffers";
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
for (auto const &pair : bufferMap_) {
|
||||
Buffer *buffer = pair.second;
|
||||
buffer->setRequest(this);
|
||||
pending_.insert(buffer);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Complete a queued request
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user