summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-08-06 13:59:27 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-08-06 14:05:08 +0200
commitbdc46898de7578160e6664d8e589102f51656e21 (patch)
treee31583b3d841f1d1fa78176c597196b03af93984 /gst
parent94337d05a503aafc403fdaecff2192e11249c94f (diff)
downloadgstreamer-plugins-bad-bdc46898de7578160e6664d8e589102f51656e21.tar.gz
gst: Add stream-id to stream-start events
Diffstat (limited to 'gst')
-rw-r--r--gst/hls/gsthlsdemux.c9
-rw-r--r--gst/mpegtsdemux/mpegtsparse.c7
-rw-r--r--gst/mpegtsdemux/tsdemux.c8
3 files changed, 21 insertions, 3 deletions
diff --git a/gst/hls/gsthlsdemux.c b/gst/hls/gsthlsdemux.c
index f5efc9208..ba9c4d9da 100644
--- a/gst/hls/gsthlsdemux.c
+++ b/gst/hls/gsthlsdemux.c
@@ -602,6 +602,7 @@ static void
switch_pads (GstHLSDemux * demux, GstCaps * newcaps)
{
GstPad *oldpad = demux->srcpad;
+ gchar *stream_id;
GST_DEBUG ("Switching pads (oldpad:%p) with caps: %" GST_PTR_FORMAT, oldpad,
newcaps);
@@ -614,8 +615,14 @@ switch_pads (GstHLSDemux * demux, GstCaps * newcaps)
GST_DEBUG_FUNCPTR (gst_hls_demux_src_query));
gst_pad_set_element_private (demux->srcpad, demux);
gst_pad_set_active (demux->srcpad, TRUE);
- gst_pad_push_event (demux->srcpad, gst_event_new_stream_start ());
+
+ stream_id =
+ gst_pad_create_stream_id (demux->srcpad, GST_ELEMENT_CAST (demux), NULL);
+ gst_pad_push_event (demux->srcpad, gst_event_new_stream_start (stream_id));
+ g_free (stream_id);
+
gst_pad_set_caps (demux->srcpad, newcaps);
+
gst_element_add_pad (GST_ELEMENT (demux), demux->srcpad);
gst_element_no_more_pads (GST_ELEMENT (demux));
diff --git a/gst/mpegtsdemux/mpegtsparse.c b/gst/mpegtsdemux/mpegtsparse.c
index 6341d0eb5..33391154c 100644
--- a/gst/mpegtsdemux/mpegtsparse.c
+++ b/gst/mpegtsdemux/mpegtsparse.c
@@ -254,6 +254,7 @@ mpegts_parse_request_new_pad (GstElement * element, GstPadTemplate * template,
MpegTSParseProgram *parseprogram;
GstPad *pad;
gint program_num = -1;
+ gchar *stream_id;
g_return_val_if_fail (template != NULL, NULL);
g_return_val_if_fail (GST_IS_MPEGTS_PARSE (element), NULL);
@@ -281,7 +282,11 @@ mpegts_parse_request_new_pad (GstElement * element, GstPadTemplate * template,
parse->srcpads = g_list_append (parse->srcpads, pad);
gst_pad_set_active (pad, TRUE);
- gst_pad_push_event (pad, gst_event_new_stream_start ());
+
+ stream_id = gst_pad_create_stream_id (pad, element, padname + 8);
+ gst_pad_push_event (pad, gst_event_new_stream_start (stream_id));
+ g_free (stream_id);
+
gst_element_add_pad (element, pad);
return pad;
diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c
index 03fb07cc0..c420f0dbb 100644
--- a/gst/mpegtsdemux/tsdemux.c
+++ b/gst/mpegtsdemux/tsdemux.c
@@ -959,12 +959,18 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
break;
}
if (template && name && caps) {
+ gchar *stream_id;
+
GST_LOG ("stream:%p creating pad with name %s and caps %s", stream, name,
gst_caps_to_string (caps));
pad = gst_pad_new_from_template (template, name);
gst_pad_set_active (pad, TRUE);
gst_pad_use_fixed_caps (pad);
- gst_pad_push_event (pad, gst_event_new_stream_start ());
+ stream_id =
+ gst_pad_create_stream_id_printf (pad, GST_ELEMENT_CAST (base), "%08x",
+ bstream->pid);
+ gst_pad_push_event (pad, gst_event_new_stream_start (stream_id));
+ g_free (stream_id);
gst_pad_set_caps (pad, caps);
gst_pad_set_query_function (pad, gst_ts_demux_srcpad_query);
gst_pad_set_event_function (pad, gst_ts_demux_srcpad_event);