timeline: Add all assets of the clip added to the timeline to the project
authorThibault Saunier <thibault.saunier@collabora.com>
Mon, 25 Nov 2013 18:17:33 +0000 (15:17 -0300)
committerThibault Saunier <thibault.saunier@collabora.com>
Mon, 25 Nov 2013 18:18:24 +0000 (15:18 -0300)
ges/ges-project.c
ges/ges-timeline.c

index 5600a3a9fa7a8966135b6501be9e385dff40b1bc..9cbb883c1021067854ebf6a7d6ac6fce8f3d1391 100644 (file)
@@ -236,6 +236,7 @@ ges_project_extract (GESAsset * project, GError ** error)
 {
   GESTimeline *timeline = g_object_new (GES_TYPE_TIMELINE, NULL);
 
+  ges_extractable_set_asset (GES_EXTRACTABLE (timeline), GES_ASSET (project));
   if (_load_project (GES_PROJECT (project), timeline, error))
     return GES_EXTRACTABLE (timeline);
 
index 1edfd2f0bb01d5156308013445aaa02ed52460ae..241c0d187c09611b13ad279b6bdf6d3f7897fbe4 100644 (file)
@@ -2042,6 +2042,8 @@ clip_track_element_removed_cb (GESClip * clip,
 static void
 layer_object_added_cb (GESLayer * layer, GESClip * clip, GESTimeline * timeline)
 {
+  GESProject *project;
+
   /* We make sure not to be connected twice */
   g_signal_handlers_disconnect_by_func (clip, clip_track_element_added_cb,
       timeline);
@@ -2063,7 +2065,15 @@ layer_object_added_cb (GESLayer * layer, GESClip * clip, GESTimeline * timeline)
     return;
   }
 
+
   add_object_to_tracks (timeline, clip, NULL);
+
+  GST_DEBUG ("Making sure that the asset is in our project");
+  project =
+      GES_PROJECT (ges_extractable_get_asset (GES_EXTRACTABLE (timeline)));
+  ges_project_add_asset (project,
+      ges_extractable_get_asset (GES_EXTRACTABLE (clip)));
+
   GST_DEBUG ("Done");
 }