timeline: Add all assets of the clip added to the timeline to the project

This commit is contained in:
Thibault Saunier 2013-11-25 15:17:33 -03:00
parent e7a45f0eef
commit 99a36b2b69
2 changed files with 11 additions and 0 deletions

View file

@ -236,6 +236,7 @@ ges_project_extract (GESAsset * project, GError ** error)
{ {
GESTimeline *timeline = g_object_new (GES_TYPE_TIMELINE, NULL); 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)) if (_load_project (GES_PROJECT (project), timeline, error))
return GES_EXTRACTABLE (timeline); return GES_EXTRACTABLE (timeline);

View file

@ -2042,6 +2042,8 @@ clip_track_element_removed_cb (GESClip * clip,
static void static void
layer_object_added_cb (GESLayer * layer, GESClip * clip, GESTimeline * timeline) layer_object_added_cb (GESLayer * layer, GESClip * clip, GESTimeline * timeline)
{ {
GESProject *project;
/* We make sure not to be connected twice */ /* We make sure not to be connected twice */
g_signal_handlers_disconnect_by_func (clip, clip_track_element_added_cb, g_signal_handlers_disconnect_by_func (clip, clip_track_element_added_cb,
timeline); timeline);
@ -2063,7 +2065,15 @@ layer_object_added_cb (GESLayer * layer, GESClip * clip, GESTimeline * timeline)
return; return;
} }
add_object_to_tracks (timeline, clip, NULL); 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"); GST_DEBUG ("Done");
} }