[libcamera-devel] [PATCH 2/2] gst: pool: Fix GstBuffer leak on error
Umang Jain
email at uajain.com
Fri Mar 12 06:08:17 CET 2021
Hi Nicolas,
On 3/12/21 2:22 AM, Nicolas Dufresne wrote:
> From: Nicolas Dufresne <nicolas.dufresne at collabora.com>
>
> We borrowed a GstBuffer from the pool, if preparing the buffer failed,
> we need to push it back to avoid leaking it.
>
> Signed-off-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>
Reviewed-by: Umang Jain <email at uajain.com>
> ---
> src/gstreamer/gstlibcamerapool.cpp | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/gstreamer/gstlibcamerapool.cpp b/src/gstreamer/gstlibcamerapool.cpp
> index 62db184f..1fde4213 100644
> --- a/src/gstreamer/gstlibcamerapool.cpp
> +++ b/src/gstreamer/gstlibcamerapool.cpp
> @@ -40,8 +40,10 @@ gst_libcamera_pool_acquire_buffer(GstBufferPool *pool, GstBuffer **buffer,
> if (!buf)
> return GST_FLOW_ERROR;
>
> - if (!gst_libcamera_allocator_prepare_buffer(self->allocator, self->stream, buf))
> + if (!gst_libcamera_allocator_prepare_buffer(self->allocator, self->stream, buf)) {
> + gst_atomic_queue_push(self->queue, buf);
> return GST_FLOW_ERROR;
> + }
>
> *buffer = buf;
> return GST_FLOW_OK;
More information about the libcamera-devel
mailing list