From 437043dbdfd19163c13e5b3d5b2b16037f5959f3 Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Sat, 9 Jan 2016 04:35:23 +0100 Subject: 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 b55e328a9..1a941ef97 100644 --- a/gst/playback/gststreamsynchronizer.c +++ b/gst/playback/gststreamsynchronizer.c @@ -493,7 +493,7 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent, GstStream *ostream = l->data; GstClockTime start_running_time; - if (ostream == stream) + if (ostream == stream || ostream->flushing) continue; if (ostream->segment.format == GST_FORMAT_TIME) { -- cgit v1.2.1