summaryrefslogtreecommitdiff
path: root/gst/realmedia
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-08-05 18:30:52 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-08-06 14:04:05 +0200
commit87d99271269c927939349987767c6f5d1dcf5585 (patch)
tree3a74850e7167bf396aaafdab73e525afeae0d106 /gst/realmedia
parent2cc06f7aaf6c1360b858e67446043fba74b82b2c (diff)
gst: Add stream-id to stream-start events
Diffstat (limited to 'gst/realmedia')
-rw-r--r--gst/realmedia/rademux.c9
-rw-r--r--gst/realmedia/rmdemux.c11
2 files changed, 17 insertions, 3 deletions
diff --git a/gst/realmedia/rademux.c b/gst/realmedia/rademux.c
index 232d44f0..91fbc08a 100644
--- a/gst/realmedia/rademux.c
+++ b/gst/realmedia/rademux.c
@@ -319,6 +319,7 @@ gst_real_audio_demux_parse_header (GstRealAudioDemux * demux)
const guint8 *data;
gchar *codec_name = NULL;
GstCaps *caps = NULL;
+ gchar *stream_id;
guint avail;
g_assert (demux->ra_version == 4 || demux->ra_version == 3);
@@ -443,10 +444,16 @@ gst_real_audio_demux_parse_header (GstRealAudioDemux * demux)
GST_DEBUG_FUNCPTR (gst_real_audio_demux_src_query));
gst_pad_set_active (demux->srcpad, TRUE);
gst_pad_use_fixed_caps (demux->srcpad);
- 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, caps);
codec_name = gst_pb_utils_get_codec_description (caps);
gst_caps_unref (caps);
+
gst_element_add_pad (GST_ELEMENT (demux), demux->srcpad);
if (demux->byterate_num > 0 && demux->byterate_denom > 0) {
diff --git a/gst/realmedia/rmdemux.c b/gst/realmedia/rmdemux.c
index 6fef310a..8ce9f09b 100644
--- a/gst/realmedia/rmdemux.c
+++ b/gst/realmedia/rmdemux.c
@@ -1281,6 +1281,7 @@ gst_rmdemux_add_stream (GstRMDemux * rmdemux, GstRMDemuxStream * stream)
GstCaps *stream_caps = NULL;
const gchar *codec_tag = NULL;
gchar *codec_name = NULL;
+ gchar *stream_id;
int version = 0;
if (stream->subtype == GST_RMDEMUX_STREAM_VIDEO) {
@@ -1487,9 +1488,14 @@ gst_rmdemux_add_stream (GstRMDemux * rmdemux, GstRMDemuxStream * stream)
GST_DEBUG_OBJECT (rmdemux, "adding pad %s with caps %" GST_PTR_FORMAT
", stream_id=%d", GST_PAD_NAME (stream->pad), stream_caps, stream->id);
gst_pad_set_active (stream->pad, TRUE);
+
+ stream_id =
+ gst_pad_create_stream_id_printf (stream->pad,
+ GST_ELEMENT_CAST (rmdemux), "%u", stream->id);
+ gst_pad_push_event (stream->pad, gst_event_new_stream_start (stream_id));
+ g_free (stream_id);
+
gst_pad_set_caps (stream->pad, stream_caps);
- gst_element_add_pad (GST_ELEMENT_CAST (rmdemux), stream->pad);
- gst_pad_push_event (stream->pad, gst_event_new_stream_start ());
codec_name = gst_pb_utils_get_codec_description (stream_caps);
@@ -1501,6 +1507,7 @@ gst_rmdemux_add_stream (GstRMDemux * rmdemux, GstRMDemuxStream * stream)
codec_tag, codec_name, NULL);
g_free (codec_name);
}
+ gst_element_add_pad (GST_ELEMENT_CAST (rmdemux), stream->pad);
}
beach: