tagdemux: Use upstream GST_EVENT_STREAM_START if present

If we have an upstream GST_EVENT_STREAM_START, use that one instead
of creating a new one which could be completely different from the
upstream one and drop information (like the stream flags and stream
object).

Only create a new event if we don't already have one from upstream

https://bugzilla.gnome.org/show_bug.cgi?id=797215
diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c
index 98cf646..5c5887b 100644
--- a/gst-libs/gst/tag/gsttagdemux.c
+++ b/gst-libs/gst/tag/gsttagdemux.c
@@ -329,10 +329,6 @@
 
   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);
 
     gst_caps_replace (&tagdemux->priv->src_caps, new_caps);
 
@@ -342,23 +338,16 @@
     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 ();
+    if (!event) {
+      gchar *stream_id = gst_pad_create_stream_id (tagdemux->priv->srcpad,
+          GST_ELEMENT_CAST (tagdemux), NULL);
+      GST_DEBUG_OBJECT (tagdemux, "Creating new STREAM_START event");
+      event = gst_event_new_stream_start (stream_id);
+      g_free (stream_id);
+      gst_event_set_group_id (event, 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 {
     /* Caps never changed */