mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
ges: Handle the new SourceMoved API in PitiviFormatter
This commit is contained in:
parent
94a9806893
commit
a904904b77
1 changed files with 25 additions and 1 deletions
|
@ -16,7 +16,8 @@ static gboolean save_pitivi_timeline_to_uri (GESFormatter * pitivi_formatter,
|
||||||
static gboolean load_pitivi_file_from_uri (GESFormatter * self,
|
static gboolean load_pitivi_file_from_uri (GESFormatter * self,
|
||||||
GESTimeline * timeline, const gchar * uri);
|
GESTimeline * timeline, const gchar * uri);
|
||||||
static void ges_pitivi_formatter_finalize (GObject * object);
|
static void ges_pitivi_formatter_finalize (GObject * object);
|
||||||
|
static gboolean pitivi_formatter_update_source_uri (GESFormatter * formatter,
|
||||||
|
GESTimelineFileSource * tfs, gchar * new_uri);
|
||||||
|
|
||||||
typedef struct SrcMapping
|
typedef struct SrcMapping
|
||||||
{
|
{
|
||||||
|
@ -80,6 +81,7 @@ ges_pitivi_formatter_class_init (GESPitiviFormatterClass * klass)
|
||||||
|
|
||||||
formatter_klass->save_to_uri = save_pitivi_timeline_to_uri;
|
formatter_klass->save_to_uri = save_pitivi_timeline_to_uri;
|
||||||
formatter_klass->load_from_uri = load_pitivi_file_from_uri;
|
formatter_klass->load_from_uri = load_pitivi_file_from_uri;
|
||||||
|
formatter_klass->update_source_uri = pitivi_formatter_update_source_uri;
|
||||||
object_class->finalize = ges_pitivi_formatter_finalize;
|
object_class->finalize = ges_pitivi_formatter_finalize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1077,3 +1079,25 @@ load_pitivi_file_from_uri (GESFormatter * self,
|
||||||
xmlFreeDoc (doc);
|
xmlFreeDoc (doc);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
pitivi_formatter_update_source_uri (GESFormatter * formatter,
|
||||||
|
GESTimelineFileSource * tfs, gchar * new_uri)
|
||||||
|
{
|
||||||
|
GESTimelineObject *tlobj = GES_TIMELINE_OBJECT (tfs);
|
||||||
|
GESTimelineLayer *layer = ges_timeline_object_get_layer (tlobj);
|
||||||
|
gboolean ret;
|
||||||
|
|
||||||
|
/*Keep a ref to it as we don't want it to be destroyed! */
|
||||||
|
g_object_ref (tlobj);
|
||||||
|
|
||||||
|
ges_timeline_layer_remove_object (layer, tlobj);
|
||||||
|
|
||||||
|
g_object_set (tfs, "uri", new_uri, NULL);
|
||||||
|
ret = ges_timeline_layer_add_object (layer, tlobj);
|
||||||
|
|
||||||
|
/* We do not need our reference anymore */
|
||||||
|
g_object_unref (tlobj);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue