diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-08-06 13:59:27 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-08-06 14:05:08 +0200 |
commit | bdc46898de7578160e6664d8e589102f51656e21 (patch) | |
tree | e31583b3d841f1d1fa78176c597196b03af93984 /gst | |
parent | 94337d05a503aafc403fdaecff2192e11249c94f (diff) | |
download | gstreamer-plugins-bad-bdc46898de7578160e6664d8e589102f51656e21.tar.gz |
gst: Add stream-id to stream-start events
Diffstat (limited to 'gst')
-rw-r--r-- | gst/hls/gsthlsdemux.c | 9 | ||||
-rw-r--r-- | gst/mpegtsdemux/mpegtsparse.c | 7 | ||||
-rw-r--r-- | gst/mpegtsdemux/tsdemux.c | 8 |
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); |