[libcamera-devel] [PATCH v3 3/8] libcamera: frame_buffer_allocator: Add clear()
Kieran Bingham
kieran.bingham at ideasonboard.com
Wed Sep 23 14:05:37 CEST 2020
Hi Jacopo,
On 22/09/2020 10:47, Jacopo Mondi wrote:
> Add a clear() method to the FrameBufferAllocator class that
> frees all the buffers previously reserved by the allocator.
>
> Reviewed-by: Hirokazu Honda <hiroh at chromium.org>
> Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
> include/libcamera/framebuffer_allocator.h | 1 +
> src/libcamera/framebuffer_allocator.cpp | 8 ++++++++
> 2 files changed, 9 insertions(+)
>
> diff --git a/include/libcamera/framebuffer_allocator.h b/include/libcamera/framebuffer_allocator.h
> index 78f1353964eb..2a4d538a0cb2 100644
> --- a/include/libcamera/framebuffer_allocator.h
> +++ b/include/libcamera/framebuffer_allocator.h
> @@ -28,6 +28,7 @@ public:
>
> int allocate(Stream *stream);
> int free(Stream *stream);
> + void clear();
>
> bool allocated() const { return !buffers_.empty(); }
> const std::vector<std::unique_ptr<FrameBuffer>> &buffers(Stream *stream) const;
> diff --git a/src/libcamera/framebuffer_allocator.cpp b/src/libcamera/framebuffer_allocator.cpp
> index 2fbba37a1b0b..7ed80011c845 100644
> --- a/src/libcamera/framebuffer_allocator.cpp
> +++ b/src/libcamera/framebuffer_allocator.cpp
> @@ -125,6 +125,14 @@ int FrameBufferAllocator::free(Stream *stream)
> return 0;
> }
>
> +/**
> + * \brief Free all the buffers previously allocated
> + */
> +void FrameBufferAllocator::clear()
> +{
> + buffers_.clear();
> +}
Throwing more opportunities into the bike-shed..
clear doesn't fit well for me either, I see Laurent suggested freeAll()
or such.
We could have an overload for free(no-arg) which clears 'all streams',
i.e. free(stream) is just a filtered subset.
Otherwise, reset() would also feel appropriate here.
But I can see the need to be able to reset a FrameBufferAllocator() in
some form, so if you're settled on the name:
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> +
> /**
> * \fn FrameBufferAllocator::allocated()
> * \brief Check if the allocator has allocated buffers for any stream
>
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list