From 4ff18e95063bbb70f6e0971774fcd2a1b0ad2b58 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 15 Mar 2020 01:27:43 +0200 Subject: libcamera: framebuffer_allocator: Lift camera restrictions on allocator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Niklas Söderlund --- src/libcamera/camera.cpp | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) (limited to 'src/libcamera/camera.cpp') diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp index 5593c1b3..8c3bb2c2 100644 --- a/src/libcamera/camera.cpp +++ b/src/libcamera/camera.cpp @@ -508,7 +508,7 @@ const std::string &Camera::name() const Camera::Camera(PipelineHandler *pipe, const std::string &name, const std::set &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"; -- cgit v1.2.1