From 86a6703d918e932ef9bd3d0618fd7d5e52e3a94d Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Tue, 24 Jul 2018 15:14:31 +0200 Subject: [PATCH] omxbufferpool: reference the OMX component Now that the pool is responsible of freeing the OMX buffers, we need to ensure that the OMX component stay alive while the pool is as we rely on the component to free the buffers. The GstOMXPort is owned by the component so no need to ref this one. https://bugzilla.gnome.org/show_bug.cgi?id=796918 --- omx/gstomxbufferpool.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/omx/gstomxbufferpool.c b/omx/gstomxbufferpool.c index 995687ba6c..f2e6300d60 100644 --- a/omx/gstomxbufferpool.c +++ b/omx/gstomxbufferpool.c @@ -631,6 +631,8 @@ gst_omx_buffer_pool_finalize (GObject * object) gst_caps_unref (pool->caps); pool->caps = NULL; + g_clear_pointer (&pool->component, gst_omx_component_unref); + G_OBJECT_CLASS (gst_omx_buffer_pool_parent_class)->finalize (object); } @@ -667,7 +669,7 @@ gst_omx_buffer_pool_new (GstElement * element, GstOMXComponent * component, pool = g_object_new (gst_omx_buffer_pool_get_type (), NULL); pool->element = gst_object_ref (element); - pool->component = component; + pool->component = gst_omx_component_ref (component); pool->port = port; pool->output_mode = output_mode;