diff options
author | Mathieu Duponchelle <mathieu.duponchelle@opencreed.com> | 2016-01-09 04:35:23 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2016-01-16 11:05:13 +0100 |
commit | 2717f4a86f3afa8a1cc5d4399b11e4cbab631944 (patch) | |
tree | 19e17e94f25ad0ebfe6ae7dfe87c5946246b9503 /gst/playback/gststreamsynchronizer.c | |
parent | fccf83e69f108fd1bdc10b785761c54d3f413b36 (diff) |
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/playback/gststreamsynchronizer.c')
-rw-r--r-- | gst/playback/gststreamsynchronizer.c | 2 |
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) { |