From 2717f4a86f3afa8a1cc5d4399b11e4cbab631944 Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Sat, 9 Jan 2016 04:35:23 +0100 Subject: [PATCH] streamsynchronizer: Ignore flushing streams [..] [..] when resetting group start time. In GES, we are usually connected to the streamsynchronizer on one audio and one video pad. When seeking the timeline, both nlecompositions often output their flush_start before any of them has output its flush_stop. The current code, when receiving the first flush stop was using the running time of the start of the second composition, which could be pretty much anything, and means nothing at that point. This patch is thread-safe, as STREAM_SYNCHRONIZER_LOCK is taken both when setting flushing and when checking it. https://bugzilla.gnome.org/show_bug.cgi?id=750013 --- gst/playback/gststreamsynchronizer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c index cc7c97f6a2..091e5764fa 100644 --- a/gst/playback/gststreamsynchronizer.c +++ b/gst/playback/gststreamsynchronizer.c @@ -493,7 +493,7 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent, GstSyncStream *ostream = l->data; GstClockTime start_running_time; - if (ostream == stream) + if (ostream == stream || ostream->flushing) continue; if (ostream->segment.format == GST_FORMAT_TIME) {