diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2013-04-23 13:54:49 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2013-04-23 13:54:49 +0200 |
commit | d77f76049e60358673b081210c4e7dd8e6bdc801 (patch) | |
tree | 9a04f2fddeb83e4b5f777235501cd0378b8385a1 /gst/playback/gststreamsynchronizer.c | |
parent | 2e017bd595b7232295abe4a1e6bb76d9f559c228 (diff) |
streamsynchronizer: Don't consider a stream added for an already running one as "new"
Fixes enabling visualizations after disabling them after they were enabled already.
Diffstat (limited to 'gst/playback/gststreamsynchronizer.c')
-rw-r--r-- | gst/playback/gststreamsynchronizer.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c index 3e7612e33..d4257dcb9 100644 --- a/gst/playback/gststreamsynchronizer.c +++ b/gst/playback/gststreamsynchronizer.c @@ -251,8 +251,8 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent, stream = gst_pad_get_element_private (pad); if (stream && stream->stream_start_seqnum != seqnum) { stream->is_eos = FALSE; - stream->new_stream = TRUE; stream->stream_start_seqnum = seqnum; + stream->drop_discont = TRUE; /* Check if this belongs to a stream that is already there, * e.g. we got the visualizations for an audio stream */ @@ -270,10 +270,12 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent, "Stream %d belongs to running stream %d, no waiting", stream->stream_number, ostream->stream_number); stream->wait = FALSE; + stream->new_stream = FALSE; } else { GST_DEBUG_OBJECT (pad, "Stream %d changed", stream->stream_number); stream->wait = TRUE; + stream->new_stream = TRUE; for (l = self->streams; l; l = l->next) { GstStream *ostream = l->data; @@ -352,7 +354,6 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent, if (stream && segment.format == GST_FORMAT_TIME) { if (stream->new_stream) { stream->new_stream = FALSE; - stream->drop_discont = TRUE; segment.base = self->group_start_time; } |