static void list_sources (GESFormatter * self) { GESPitiviFormatterPrivate *priv = GES_PITIVI_FORMATTER (self)->priv; xmlXPathObjectPtr xpathObj; GHashTable *table; int size, j; gchar *id, *filename; xmlNodeSetPtr nodes; xpathObj = xmlXPathEvalExpression ((const xmlChar *) "/pitivi/factories/sources/source", priv->xpathCtx); nodes = xpathObj->nodesetval; size = (nodes) ? nodes->nodeNr : 0; for (j = 0; j < size; ++j) { table = get_nodes_infos (nodes->nodeTab[j]); id = (gchar *) g_hash_table_lookup (table, (gchar *) "id"); filename = (gchar *) g_hash_table_lookup (table, (gchar *) "filename"); g_hash_table_insert (priv->sources_table, g_strdup (id), table); g_hash_table_insert (priv->source_uris, g_strdup (filename), g_strdup (filename)); if (self->project) ges_project_create_asset (self->project, filename, GES_TYPE_URI_CLIP); } xmlXPathFreeObject (xpathObj); }
static void new_asset_cb (GESAsset * source, GAsyncResult * res, GESProject * project) { GError *error = NULL; gchar *possible_id = NULL; GESAsset *asset = ges_asset_request_finish (res, &error); if (error) { possible_id = ges_project_try_updating_id (project, source, error); if (possible_id == NULL) return; ges_project_create_asset (project, possible_id, ges_asset_get_extractable_type (source)); g_free (possible_id); g_error_free (error); return; } ges_project_add_asset (project, asset); if (asset) gst_object_unref (asset); }
static void new_asset_cb (GESAsset * source, GAsyncResult * res, GESProject * project) { GError *error = NULL; gchar *possible_id = NULL; const gchar *id = ges_asset_get_id (source); GESAsset *asset = ges_asset_request_finish (res, &error); if (error) { possible_id = ges_project_try_updating_id (project, source, error); if (possible_id == NULL) { g_hash_table_remove (project->priv->loading_assets, id); g_hash_table_add (project->priv->loaded_with_error, g_strdup (id)); g_signal_emit (project, _signals[ERROR_LOADING_ASSET], 0, error, id, ges_asset_get_extractable_type (source)); return; } ges_project_create_asset (project, possible_id, ges_asset_get_extractable_type (source)); g_free (possible_id); g_error_free (error); return; } ges_project_add_asset (project, asset); if (asset) gst_object_unref (asset); }