From 13997abbf9a7c04c73831f75a7510b2fb6d8b318 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 12 Feb 2014 18:27:21 +0100 Subject: [PATCH] hlsdemux: Give a proper name to the srcpads and remove it when resetting the element --- ext/hls/gsthlsdemux.c | 11 ++++++++++- ext/hls/gsthlsdemux.h | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c index ded4802..f0b4ad3 100644 --- a/ext/hls/gsthlsdemux.c +++ b/ext/hls/gsthlsdemux.c @@ -645,12 +645,15 @@ switch_pads (GstHLSDemux * demux, GstCaps * newcaps) GstPad *oldpad = demux->srcpad; GstEvent *event; gchar *stream_id; + gchar *name; GST_DEBUG ("Switching pads (oldpad:%p) with caps: %" GST_PTR_FORMAT, oldpad, newcaps); /* First create and activate new pad */ - demux->srcpad = gst_pad_new_from_static_template (&srctemplate, NULL); + name = g_strdup_printf ("src_%u", demux->srcpad_counter++); + demux->srcpad = gst_pad_new_from_static_template (&srctemplate, name); + g_free (name); gst_pad_set_event_function (demux->srcpad, GST_DEBUG_FUNCPTR (gst_hls_demux_src_event)); gst_pad_set_query_function (demux->srcpad, @@ -879,6 +882,12 @@ gst_hls_demux_reset (GstHLSDemux * demux, gboolean dispose) demux->have_group_id = FALSE; demux->group_id = G_MAXUINT; + + demux->srcpad_counter = 0; + if (demux->srcpad) { + gst_element_remove_pad (GST_ELEMENT_CAST (demux), demux->srcpad); + demux->srcpad = NULL; + } } static gboolean diff --git a/ext/hls/gsthlsdemux.h b/ext/hls/gsthlsdemux.h index 6536218..29d579d 100644 --- a/ext/hls/gsthlsdemux.h +++ b/ext/hls/gsthlsdemux.h @@ -55,8 +55,9 @@ struct _GstHLSDemux { GstElement parent; - GstPad *srcpad; GstPad *sinkpad; + GstPad *srcpad; + gint srcpad_counter; gboolean have_group_id; guint group_id; -- 2.7.4