project: Compute relocation URIs in missing-uri signal

Until know we were doing it outside of the signal and subclasses didn't
have a chance to know that some assets was relocated.

This is required so that Pitivi can handle proxy delation and relocated
assets.

Required for https://gitlab.gnome.org/GNOME/pitivi/issues/2203
This commit is contained in:
Thibault Saunier 2018-07-27 22:11:33 -04:00
parent 43e075d81f
commit 5f5cbd111c

View file

@ -313,6 +313,13 @@ ges_missing_uri_default (GESProject * self, GError * error,
{ {
guint i; guint i;
const gchar *old_uri = ges_asset_get_id (wrong_asset); const gchar *old_uri = ges_asset_get_id (wrong_asset);
gchar *new_id = NULL;
if (ges_asset_request_id_update (wrong_asset, &new_id, error) && new_id) {
GST_INFO_OBJECT (self, "Returned guessed new ID: %s", new_id);
return new_id;
}
if (new_paths == NULL) if (new_paths == NULL)
return NULL; return NULL;
@ -588,11 +595,10 @@ ges_project_try_updating_id (GESProject * project, GESAsset * asset,
return NULL; return NULL;
} }
if (new_id == NULL) { /* Always send the MISSING_URI signal if requesting new ID is possible
GST_DEBUG_OBJECT (project, "Sending 'missing-uri' signal for %s", id); * so that subclasses of GESProject are aware of the missing-uri */
g_signal_emit (project, _signals[MISSING_URI_SIGNAL], 0, error, asset, g_signal_emit (project, _signals[MISSING_URI_SIGNAL], 0, error, asset,
&new_id); &new_id);
}
if (new_id) { if (new_id) {
GST_DEBUG_OBJECT (project, "new id found: %s", new_id); GST_DEBUG_OBJECT (project, "new id found: %s", new_id);