From 555d7e570c7f19cb655fd3ece6c18258e4a02bc6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 19 Mar 2015 09:21:23 +0100 Subject: [PATCH] nicesrc: Clear the output buffer queue when shutting down and disposing https://bugs.freedesktop.org/show_bug.cgi?id=89673 --- gst/gstnicesrc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gst/gstnicesrc.c b/gst/gstnicesrc.c index 0c75c18..a113406 100644 --- a/gst/gstnicesrc.c +++ b/gst/gstnicesrc.c @@ -322,8 +322,10 @@ gst_nice_src_dispose (GObject *object) g_main_context_unref (src->mainctx); src->mainctx = NULL; - if (src->outbufs) + if (src->outbufs) { + g_queue_foreach (src->outbufs, (GFunc) gst_buffer_unref, NULL); g_queue_free (src->outbufs); + } src->outbufs = NULL; G_OBJECT_CLASS (gst_nice_src_parent_class)->dispose (object); @@ -416,6 +418,10 @@ gst_nice_src_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_READY_TO_NULL: nice_agent_attach_recv (src->agent, src->stream_id, src->component_id, src->mainctx, NULL, NULL); + GST_OBJECT_LOCK (src); + g_queue_foreach (src->outbufs, (GFunc) gst_buffer_unref, NULL); + g_queue_clear (src->outbufs); + GST_OBJECT_UNLOCK (src); break; case GST_STATE_CHANGE_READY_TO_PAUSED: case GST_STATE_CHANGE_PAUSED_TO_PLAYING: -- 2.7.4