From a71b4984f6206c245a7a354bfa200376dbc01e7a Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Fri, 24 Apr 2020 16:46:50 -0400 Subject: [PATCH] track: Do not commit ourselves automatically when changing state from wrong thread The user is responsible to commit the timeline from the right thread in that case and in the case of gesdemux, the loaded timeline is filling gaps automatically when the project is set loaded. Part-of: --- ges/ges-track.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ges/ges-track.c b/ges/ges-track.c index d9613d961f..2d3f7c59d2 100644 --- a/ges/ges-track.c +++ b/ges/ges-track.c @@ -434,7 +434,10 @@ dispose_trackelements_foreach (GESTrackElement * trackelement, GESTrack * track) static GstStateChangeReturn ges_track_change_state (GstElement * element, GstStateChange transition) { - if (transition == GST_STATE_CHANGE_READY_TO_PAUSED) + GESTrack *track = GES_TRACK (element); + + if (transition == GST_STATE_CHANGE_READY_TO_PAUSED && + track->priv->valid_thread == g_thread_self ()) track_resort_and_fill_gaps (GES_TRACK (element)); return GST_ELEMENT_CLASS (ges_track_parent_class)->change_state (element,