static void _loading_done (GESFormatter * self) { GList *assets, *tmp; GESBaseXmlFormatterPrivate *priv = GES_BASE_XML_FORMATTER (self)->priv; _add_all_groups (self); if (priv->parsecontext) g_markup_parse_context_free (priv->parsecontext); priv->parsecontext = NULL; ges_timeline_set_auto_transition (self->timeline, priv->timeline_auto_transition); /* Go over all assets and make sure that all proxies we were 'trying' to set are finally * properly set */ assets = ges_project_list_assets (self->project, GES_TYPE_EXTRACTABLE); for (tmp = assets; tmp; tmp = tmp->next) { ges_asset_set_proxy (NULL, tmp->data); } g_hash_table_foreach (priv->layers, (GHFunc) _set_auto_transition, NULL); ges_project_set_loaded (self->project, self); }
gchar * ges_project_try_updating_id (GESProject * project, GESAsset * asset, GError * error) { gchar *new_id = NULL; g_return_val_if_fail (GES_IS_PROJECT (project), NULL); g_return_val_if_fail (GES_IS_ASSET (asset), NULL); g_return_val_if_fail (error, NULL); GST_DEBUG_OBJECT (project, "Try to proxy %s", ges_asset_get_id (asset)); if (ges_asset_request_id_update (asset, &new_id, error) == FALSE) { GST_DEBUG_OBJECT (project, "Type: %s can not be proxied for id: %s", g_type_name (G_OBJECT_TYPE (asset)), ges_asset_get_id (asset)); return NULL; } if (new_id == NULL) g_signal_emit (project, _signals[MISSING_URI_SIGNAL], 0, error, asset, &new_id); if (new_id) { if (!ges_asset_set_proxy (asset, new_id)) { g_free (new_id); new_id = NULL; } } g_hash_table_remove (project->priv->loading_assets, ges_asset_get_id (asset)); return new_id; }
gchar * ges_project_try_updating_id (GESProject * project, GESAsset * asset, GError * error) { gchar *new_id = NULL; const gchar *id; g_return_val_if_fail (GES_IS_PROJECT (project), NULL); g_return_val_if_fail (GES_IS_ASSET (asset), NULL); g_return_val_if_fail (error, NULL); id = ges_asset_get_id (asset); GST_DEBUG_OBJECT (project, "Try to proxy %s", id); if (ges_asset_request_id_update (asset, &new_id, error) == FALSE) { GST_DEBUG_OBJECT (project, "Type: %s can not be proxied for id: %s " "and error: %s", g_type_name (G_OBJECT_TYPE (asset)), id, error->message); _send_error_loading_asset (project, asset, error); return NULL; } if (new_id == NULL) { GST_DEBUG_OBJECT (project, "Sending 'missing-uri' signal for %s", id); g_signal_emit (project, _signals[MISSING_URI_SIGNAL], 0, error, asset, &new_id); } if (new_id) { GST_DEBUG_OBJECT (project, "new id found: %s", new_id); if (!ges_asset_set_proxy (asset, new_id)) { g_free (new_id); new_id = NULL; } } else { GST_DEBUG_OBJECT (project, "No new id found for %s", id); } g_hash_table_remove (project->priv->loading_assets, id); if (new_id == NULL) _send_error_loading_asset (project, asset, error); return new_id; }