mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 04:22:27 +00:00
timeline-layer: Handle project when adding a GESTimelineObject directly
This commit is contained in:
parent
063bc37a35
commit
f30e33d489
1 changed files with 20 additions and 0 deletions
|
@ -712,8 +712,28 @@ new_asset_cb (GESAsset * source, GAsyncResult * res, NewAssetUData * udata)
|
||||||
"setting its asset", udata->object);
|
"setting its asset", udata->object);
|
||||||
|
|
||||||
if (error) {
|
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");
|
GST_ERROR ("Asset could not be created for uri");
|
||||||
} else {
|
} 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);
|
ges_timeline_layer_add_object (udata->layer, udata->object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue