audiobuffersplit: Update output buffer size after each buffer to compensate for accumulated errors

https://bugzilla.gnome.org/show_bug.cgi?id=796981
This commit is contained in:
Sebastian Dröge 2018-08-17 14:56:51 +03:00
parent ff952374b5
commit 186870d10a

View file

@ -385,6 +385,13 @@ gst_audio_buffer_split_output (GstAudioBufferSplit * self, gboolean force,
ret = gst_pad_push (self->srcpad, buffer);
if (ret != GST_FLOW_OK)
break;
/* Update the size based on the accumulated error we have now after
* taking out a buffer. Same code as above */
size = samples_per_buffer * bpf;
if (self->error_per_buffer + self->accumulated_error >=
self->output_buffer_duration_d)
size += bpf;
}
return ret;