audiomixer: The pad's size is always supposed to be the whole buffer size

And the offset the offset into that buffer. Changing the size will
cause all kinds of assumptions to fail and cause crashes.
This commit is contained in:
Sebastian Dröge 2014-12-18 22:42:14 +01:00
parent 30ce523d59
commit 0d38b2212c

View file

@ -1114,10 +1114,9 @@ gst_audio_mixer_fill_buffer (GstAudioMixer * audiomixer, GstAudioMixerPad * pad,
if (start_running_time_offset < audiomixer->offset) {
GstBuffer *buf;
guint diff = (audiomixer->offset - start_running_time_offset) * bpf;
pad->position += diff;
pad->size -= diff;
/* FIXME: This could only happen due to rounding errors */
if (pad->size == 0) {
if (pad->position >= pad->size) {
/* Empty buffer, drop */
gst_buffer_unref (inbuf);
pad->buffer = NULL;