summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Duponchelle <mathieu.duponchelle@opencreed.com>2016-01-09 04:35:23 +0100
committerTim-Philipp Müller <tim@centricular.com>2016-01-16 22:01:13 +0000
commit437043dbdfd19163c13e5b3d5b2b16037f5959f3 (patch)
tree2a899de53102fefaded90416a8230626b5a03e78
parent50ad5639559496ae07e67b2f6da44ebe4a5527b1 (diff)
downloadgstreamer-plugins-base-437043dbdfd19163c13e5b3d5b2b16037f5959f3.tar.gz
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
-rw-r--r--gst/playback/gststreamsynchronizer.c2
1 files changed, 1 insertions, 1 deletions
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) {