libcamera: framebuffer_allocator: Lift camera restrictions on allocator
The Camera class currently requires the allocator to have no allocated buffer before the camera is reconfigured, and the allocator to be destroyed before the camera is released. There's no basis for these restrictions anymore, remove them. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
@@ -508,7 +508,7 @@ const std::string &Camera::name() const
|
||||
|
||||
Camera::Camera(PipelineHandler *pipe, const std::string &name,
|
||||
const std::set<Stream *> &streams)
|
||||
: p_(new Private(pipe, name, streams)), allocator_(nullptr)
|
||||
: p_(new Private(pipe, name, streams))
|
||||
{
|
||||
}
|
||||
|
||||
@@ -620,16 +620,6 @@ int Camera::release()
|
||||
if (ret < 0)
|
||||
return ret == -EACCES ? -EBUSY : ret;
|
||||
|
||||
if (allocator_) {
|
||||
/*
|
||||
* \todo Try to find a better API that would make this error
|
||||
* impossible.
|
||||
*/
|
||||
LOG(Camera, Error)
|
||||
<< "Buffers must be freed before the camera can be reconfigured";
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
p_->pipe_->unlock();
|
||||
|
||||
p_->setState(Private::CameraAvailable);
|
||||
@@ -763,12 +753,6 @@ int Camera::configure(CameraConfiguration *config)
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (allocator_ && allocator_->allocated()) {
|
||||
LOG(Camera, Error)
|
||||
<< "Allocator must be deleted before camera can be reconfigured";
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
if (config->validate() != CameraConfiguration::Valid) {
|
||||
LOG(Camera, Error)
|
||||
<< "Can't configure camera with invalid configuration";
|
||||
|
||||
Reference in New Issue
Block a user