mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-19 06:46:38 +00:00
ges: Let user set TimelineObject URI while not containing any TrackObject
In the case of not properly set uri, we can keep using the same TimelineFileSource changing its URI until its TrackObject could be created. This is particularly usefull in the case of formatter trying to load filesource when the file has been moved
This commit is contained in:
parent
ac6f8599fe
commit
3ca5e7bcaa
1 changed files with 21 additions and 2 deletions
|
@ -59,6 +59,8 @@ enum
|
|||
static GESTrackObject
|
||||
* ges_timeline_filesource_create_track_object (GESTimelineObject * obj,
|
||||
GESTrack * track);
|
||||
void
|
||||
ges_timeline_filesource_set_uri (GESTimelineFileSource * self, gchar * uri);
|
||||
|
||||
static void
|
||||
ges_timeline_filesource_get_property (GObject * object, guint property_id,
|
||||
|
@ -92,7 +94,7 @@ ges_timeline_filesource_set_property (GObject * object, guint property_id,
|
|||
|
||||
switch (property_id) {
|
||||
case PROP_URI:
|
||||
tfs->priv->uri = g_value_dup_string (value);
|
||||
ges_timeline_filesource_set_uri (tfs, g_value_dup_string (value));
|
||||
break;
|
||||
case PROP_MUTE:
|
||||
ges_timeline_filesource_set_mute (tfs, g_value_get_boolean (value));
|
||||
|
@ -139,7 +141,7 @@ ges_timeline_filesource_class_init (GESTimelineFileSourceClass * klass)
|
|||
*/
|
||||
g_object_class_install_property (object_class, PROP_URI,
|
||||
g_param_spec_string ("uri", "URI", "uri of the resource",
|
||||
NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
||||
NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
||||
|
||||
/**
|
||||
* GESTimelineFileSource:max-duration:
|
||||
|
@ -407,3 +409,20 @@ ges_timeline_filesource_new (gchar * uri)
|
|||
|
||||
return res;
|
||||
}
|
||||
|
||||
void
|
||||
ges_timeline_filesource_set_uri (GESTimelineFileSource * self, gchar * uri)
|
||||
{
|
||||
GESTimelineObject *tlobj = GES_TIMELINE_OBJECT (self);
|
||||
GList *tckobjs = ges_timeline_object_get_track_objects (tlobj);
|
||||
|
||||
if (tckobjs) {
|
||||
/* FIXME handle this case properly */
|
||||
GST_WARNING_OBJECT (tlobj, "Can not change uri when already"
|
||||
"containing TrackObjects");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
self->priv->uri = uri;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue