From f30e33d489e6ff561d62b97da32ff0b1e02de040 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Mon, 17 Dec 2012 17:06:33 -0300 Subject: [PATCH] timeline-layer: Handle project when adding a GESTimelineObject directly --- ges/ges-timeline-layer.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ges/ges-timeline-layer.c b/ges/ges-timeline-layer.c index 249eeed905..dd63aef013 100644 --- a/ges/ges-timeline-layer.c +++ b/ges/ges-timeline-layer.c @@ -712,8 +712,28 @@ new_asset_cb (GESAsset * source, GAsyncResult * res, NewAssetUData * udata) "setting its asset", udata->object); if (error) { + GESProject *project = udata->layer->timeline ? + GES_PROJECT (ges_extractable_get_asset (GES_EXTRACTABLE + (udata->layer->timeline))) : NULL; + if (project) { + gchar *possible_id; + + possible_id = ges_project_try_updating_id (project, source, error); + if (possible_id) { + ges_asset_request_async (ges_asset_get_extractable_type (source), + possible_id, NULL, (GAsyncReadyCallback) new_asset_cb, udata); + g_free (possible_id); + return; + } + } GST_ERROR ("Asset could not be created for uri"); } else { + GESProject *project = udata->layer->timeline ? + GES_PROJECT (ges_extractable_get_asset (GES_EXTRACTABLE + (udata->layer->timeline))) : NULL; + ges_extractable_set_asset (GES_EXTRACTABLE (udata->object), asset); + + ges_project_add_asset (project, asset); ges_timeline_layer_add_object (udata->layer, udata->object); }