From: Jeongmo Yang Date: Thu, 1 Jul 2021 08:06:46 +0000 (+0900) Subject: v4l2videodec: Add ref/unref code to avoid crash X-Git-Tag: accepted/tizen/unified/20210707.070822^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7327af0af5fcb1c5d538bcd99b6b9c6154e80166;p=platform%2Fupstream%2Fgst-plugins-good.git v4l2videodec: Add ref/unref code to avoid crash - The crash could be occurred when a buffer from v4l2allocator is returned after the element is released. - This patch prevents release of element until all buffers are returned. [Version] 1.16.2-28 [Issue Type] Improvement Change-Id: I5a17788254e30d0601bd6463f9b84c539f1815a6 Signed-off-by: Jeongmo Yang --- diff --git a/packaging/gst-plugins-good.spec b/packaging/gst-plugins-good.spec index 5e37d38..221a040 100644 --- a/packaging/gst-plugins-good.spec +++ b/packaging/gst-plugins-good.spec @@ -3,7 +3,7 @@ Name: gst-plugins-good Version: 1.16.2 -Release: 27 +Release: 28 License: LGPL-2.1+ Summary: GStreamer Streaming-Media Framework Plug-Ins Url: http://gstreamer.freedesktop.org/ diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c index 4d94937..494b5b8 100644 --- a/sys/v4l2/gstv4l2bufferpool.c +++ b/sys/v4l2/gstv4l2bufferpool.c @@ -104,6 +104,8 @@ static void gst_v4l2_tizen_buffer_finalize (GstV4l2TizenBuffer *tizen_buffer) g_mutex_unlock (&pool->buffer_lock); + gst_object_unref (pool); + g_free(tizen_buffer); } @@ -116,7 +118,7 @@ static GstV4l2TizenBuffer *gst_v4l2_tizen_buffer_new (GstBuffer *v4l2_buffer, in tizen_buffer->index = index; tizen_buffer->v4l2_buffer = v4l2_buffer; tizen_buffer->gst_buffer = gst_buffer_new (); - tizen_buffer->v4l2_pool = v4l2_pool; + tizen_buffer->v4l2_pool = gst_object_ref (v4l2_pool); memory = gst_tizen_allocator_alloc_surface (v4l2_pool->tallocator, &v4l2_pool->obj->info, v4l2_pool->vallocator->groups[index]->surface, (gpointer)tizen_buffer,