From: Sebastian Dröge Date: Thu, 19 Mar 2015 08:21:23 +0000 (+0100) Subject: nicesrc: Clear the output buffer queue when shutting down and disposing X-Git-Tag: 0.1.11~15 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=555d7e570c7f19cb655fd3ece6c18258e4a02bc6;p=platform%2Fupstream%2Flibnice.git nicesrc: Clear the output buffer queue when shutting down and disposing https://bugs.freedesktop.org/show_bug.cgi?id=89673 --- 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: