summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorMathieu Duponchelle <mathieu.duponchelle@opencreed.com>2016-01-09 04:35:23 +0100
committerSebastian Dröge <sebastian@centricular.com>2016-01-16 11:05:13 +0100
commit2717f4a86f3afa8a1cc5d4399b11e4cbab631944 (patch)
tree19e17e94f25ad0ebfe6ae7dfe87c5946246b9503 /gst
parentfccf83e69f108fd1bdc10b785761c54d3f413b36 (diff)
downloadgstreamer-plugins-base-2717f4a86f3afa8a1cc5d4399b11e4cbab631944.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
Diffstat (limited to 'gst')
-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 cc7c97f6a..091e5764f 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) {