From b4365551d0f9be3afbeaaa695ffdcfb613b5fa6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 22 Jul 2013 15:24:50 +0200 Subject: [PATCH] tagdemux: Add support for group-id in the stream-start event --- gst-libs/gst/tag/gsttagdemux.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c index 5fec0b2f90..b5d92d8d89 100644 --- a/gst-libs/gst/tag/gsttagdemux.c +++ b/gst-libs/gst/tag/gsttagdemux.c @@ -346,6 +346,9 @@ gst_tag_demux_set_src_caps (GstTagDemux * tagdemux, GstCaps * new_caps) GstCaps *old_caps = tagdemux->priv->src_caps; if (old_caps == NULL || !gst_caps_is_equal (new_caps, old_caps)) { + GstEvent *event; + guint group_id; + gboolean have_group_id; gchar *stream_id = gst_pad_create_stream_id (tagdemux->priv->srcpad, GST_ELEMENT_CAST (tagdemux), NULL); @@ -354,8 +357,25 @@ gst_tag_demux_set_src_caps (GstTagDemux * tagdemux, GstCaps * new_caps) GST_DEBUG_OBJECT (tagdemux, "Changing src pad caps to %" GST_PTR_FORMAT, tagdemux->priv->src_caps); - gst_pad_push_event (tagdemux->priv->srcpad, - gst_event_new_stream_start (stream_id)); + event = + gst_pad_get_sticky_event (tagdemux->priv->sinkpad, + GST_EVENT_STREAM_START, 0); + if (event) { + if (gst_event_parse_group_id (event, &group_id)) + have_group_id = TRUE; + else + have_group_id = FALSE; + gst_event_unref (event); + } else { + have_group_id = TRUE; + group_id = gst_util_group_id_next (); + } + + event = gst_event_new_stream_start (stream_id); + if (have_group_id) + gst_event_set_group_id (event, group_id); + + gst_pad_push_event (tagdemux->priv->srcpad, event); g_free (stream_id); gst_pad_set_caps (tagdemux->priv->srcpad, tagdemux->priv->src_caps); } else {