[RFC PATCH v1 05/12] apps: lc-compliance: Don't allocate `FrameBufferAllocator` dynamically

Paul Elder paul.elder at ideasonboard.com
Thu Jan 9 23:16:33 CET 2025


On Fri, Dec 20, 2024 at 03:08:25PM +0000, Barnabás Pőcze wrote:
> There is no reason to do so.
> 
> Signed-off-by: Barnabás Pőcze <pobrn at protonmail.com>

Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>

> ---
>  src/apps/lc-compliance/helpers/capture.cpp | 12 ++++++------
>  src/apps/lc-compliance/helpers/capture.h   |  2 +-
>  2 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/src/apps/lc-compliance/helpers/capture.cpp b/src/apps/lc-compliance/helpers/capture.cpp
> index d1dafb6cf..91c4d4400 100644
> --- a/src/apps/lc-compliance/helpers/capture.cpp
> +++ b/src/apps/lc-compliance/helpers/capture.cpp
> @@ -13,7 +13,7 @@ using namespace libcamera;
>  
>  Capture::Capture(std::shared_ptr<Camera> camera)
>  	: loop_(nullptr), camera_(std::move(camera)),
> -	  allocator_(std::make_unique<FrameBufferAllocator>(camera_))
> +	  allocator_(camera_)
>  {
>  }
>  
> @@ -45,7 +45,7 @@ void Capture::configure(StreamRole role)
>  void Capture::start()
>  {
>  	Stream *stream = config_->at(0).stream();
> -	int count = allocator_->allocate(stream);
> +	int count = allocator_.allocate(stream);
>  
>  	ASSERT_GE(count, 0) << "Failed to allocate buffers";
>  	EXPECT_EQ(count, config_->at(0).bufferCount) << "Allocated less buffers than expected";
> @@ -57,7 +57,7 @@ void Capture::start()
>  
>  void Capture::stop()
>  {
> -	if (!config_ || !allocator_->allocated())
> +	if (!config_ || !allocator_.allocated())
>  		return;
>  
>  	camera_->stop();
> @@ -66,7 +66,7 @@ void Capture::stop()
>  
>  	Stream *stream = config_->at(0).stream();
>  	requests_.clear();
> -	allocator_->free(stream);
> +	allocator_.free(stream);
>  }
>  
>  /* CaptureBalanced */
> @@ -81,7 +81,7 @@ void CaptureBalanced::capture(unsigned int numRequests)
>  	start();
>  
>  	Stream *stream = config_->at(0).stream();
> -	const std::vector<std::unique_ptr<FrameBuffer>> &buffers = allocator_->buffers(stream);
> +	const std::vector<std::unique_ptr<FrameBuffer>> &buffers = allocator_.buffers(stream);
>  
>  	/* No point in testing less requests then the camera depth. */
>  	if (buffers.size() > numRequests) {
> @@ -153,7 +153,7 @@ void CaptureUnbalanced::capture(unsigned int numRequests)
>  	start();
>  
>  	Stream *stream = config_->at(0).stream();
> -	const std::vector<std::unique_ptr<FrameBuffer>> &buffers = allocator_->buffers(stream);
> +	const std::vector<std::unique_ptr<FrameBuffer>> &buffers = allocator_.buffers(stream);
>  
>  	captureCount_ = 0;
>  	captureLimit_ = numRequests;
> diff --git a/src/apps/lc-compliance/helpers/capture.h b/src/apps/lc-compliance/helpers/capture.h
> index 19b6927c6..a4cc3a99e 100644
> --- a/src/apps/lc-compliance/helpers/capture.h
> +++ b/src/apps/lc-compliance/helpers/capture.h
> @@ -30,7 +30,7 @@ protected:
>  	EventLoop *loop_;
>  
>  	std::shared_ptr<libcamera::Camera> camera_;
> -	std::unique_ptr<libcamera::FrameBufferAllocator> allocator_;
> +	libcamera::FrameBufferAllocator allocator_;
>  	std::unique_ptr<libcamera::CameraConfiguration> config_;
>  	std::vector<std::unique_ptr<libcamera::Request>> requests_;
>  };
> -- 
> 2.47.1
> 
> 


More information about the libcamera-devel mailing list