diff --git a/gst/audiobuffersplit/gstaudiobuffersplit.c b/gst/audiobuffersplit/gstaudiobuffersplit.c index fd3f8091f9..d73e391dac 100644 --- a/gst/audiobuffersplit/gstaudiobuffersplit.c +++ b/gst/audiobuffersplit/gstaudiobuffersplit.c @@ -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;