GHashTable *assets;
/* Set of asset ID being loaded */
GHashTable *loading_assets;
+ GHashTable *loaded_with_error;
GESAsset *formatter_asset;
GList *formatters;
g_hash_table_unref (priv->assets);
if (priv->loading_assets)
g_hash_table_unref (priv->loading_assets);
+ if (priv->loaded_with_error)
+ g_hash_table_unref (priv->loaded_with_error);
if (priv->formatter_asset)
gst_object_unref (priv->formatter_asset);
g_free, gst_object_unref);
priv->loading_assets = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, gst_object_unref);
+ priv->loaded_with_error = g_hash_table_new_full (g_str_hash, g_str_equal,
+ g_free, NULL);
}
gchar *
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));
FALSE);
if (g_hash_table_lookup (project->priv->assets, id) ||
- g_hash_table_lookup (project->priv->loading_assets, id))
+ g_hash_table_lookup (project->priv->loading_assets, id) ||
+ g_hash_table_lookup (project->priv->loaded_with_error, id))
return FALSE;
/* TODO Add a GCancellable somewhere in our API */
g_main_loop_run (mainloop);
/* And.... try again! */
- fail_unless (ges_project_create_asset (project, "nowaythiselementexists",
+ fail_if (ges_project_create_asset (project, "nowaythiselementexists",
GES_TYPE_TRACK_PARSE_LAUNCH_EFFECT));
- g_main_loop_run (mainloop);
fail_if (added_cb_called);
fail_if (removed_cb_called);