+_set_track_forward_tags (const GValue * item, gpointer unused)
+{
+ GstElement *comp = g_value_get_object (item);
+
+ g_object_set (comp, "drop-tags", FALSE, NULL);
+}
+
+static void
+_set_tracks_forward_tags (GESTimeline * timeline,
+ GESLauncherParsedOptions * opts)
+{
+ GList *tmp, *tracks;
+
+ if (!opts->forward_tags)
+ return;
+
+ tracks = ges_timeline_get_tracks (timeline);
+
+ for (tmp = tracks; tmp; tmp = tmp->next) {
+ GstIterator *it =
+ gst_bin_iterate_all_by_element_factory_name (GST_BIN (tmp->data),
+ "nlecomposition");
+
+ gst_iterator_foreach (it,
+ (GstIteratorForeachFunction) _set_track_forward_tags, NULL);
+ gst_iterator_free (it);
+ }
+
+ g_list_free_full (tracks, gst_object_unref);
+
+}
+
+static void