GESTimeline: Make sure added ghostpads are unique.
authorEdward Hervey <edward.hervey@collabora.co.uk>
Wed, 9 Sep 2009 13:51:52 +0000 (15:51 +0200)
committerEdward Hervey <edward.hervey@collabora.co.uk>
Wed, 9 Sep 2009 13:51:52 +0000 (15:51 +0200)
ges/ges-timeline.c

index 8a9dd51f91b21b6b9d315bd4cefc4b8b665bc56c..0892883350d934e585a506f3e34c102ddfdcb855 100644 (file)
@@ -282,6 +282,8 @@ ges_timeline_remove_layer (GESTimeline * timeline, GESTimelineLayer * layer)
 static void
 pad_added_cb (GESTrack * track, GstPad * pad, TrackPrivate * priv)
 {
+  gchar *padname;
+
   GST_DEBUG ("track:%p, pad:%s:%s", track, GST_DEBUG_PAD_NAME (pad));
 
   if (G_UNLIKELY (priv->pad)) {
@@ -294,7 +296,9 @@ pad_added_cb (GESTrack * track, GstPad * pad, TrackPrivate * priv)
 
   /* ghost it ! */
   GST_DEBUG ("Ghosting pad and adding it to ourself");
-  priv->ghostpad = gst_ghost_pad_new (GST_PAD_NAME (pad), pad);
+  padname = g_strdup_printf ("track_%p_src", track);
+  priv->ghostpad = gst_ghost_pad_new (padname, pad);
+  g_free (padname);
   gst_pad_set_active (priv->ghostpad, TRUE);
   gst_element_add_pad (GST_ELEMENT (priv->timeline), priv->ghostpad);
 }