audiodecoder: drain current segment upon new one to ensure correct flow return

See also https://bugzilla.gnome.org/show_bug.cgi?id=709224
This commit is contained in:
Mark Nauwelaerts 2015-02-21 17:41:50 +01:00
parent 1dcd1a7479
commit 696b8cdc40

View file

@ -2040,6 +2040,11 @@ gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event)
GstFormat format;
GST_AUDIO_DECODER_STREAM_LOCK (dec);
/* finish data in current segment because upstream now thinks in terms
* of a new segment so it will get confused if remaining data of the old
* segment is delay decoded and dropped with EOS return due to clipping */
gst_audio_decoder_flush (dec, FALSE);
gst_event_copy_segment (event, &seg);
format = seg.format;