From 76501f4f57d6d00a914a2e7242ab393fb751a190 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 11 Feb 2015 15:44:21 +0100 Subject: af_rubberband: always calculate and set delay Basically, add an if and reindent the block instead of exiting early. --- audio/filter/af_rubberband.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/audio/filter/af_rubberband.c b/audio/filter/af_rubberband.c index 754fb39c06..27e26c1039 100644 --- a/audio/filter/af_rubberband.c +++ b/audio/filter/af_rubberband.c @@ -126,18 +126,17 @@ static int filter_out(struct af_instance *af) } size_t out_samples = rubberband_available(p->rubber); - if (!out_samples) - return 0; - - struct mp_audio *out = - mp_audio_pool_get(af->out_pool, af->data, out_samples); - if (!out) - return -1; - if (p->pending) - mp_audio_copy_config(out, p->pending); - float **out_data = (void *)&out->planes; - out->samples = rubberband_retrieve(p->rubber, out_data, out->samples); - af_add_output_frame(af, out); + if (out_samples) { + struct mp_audio *out = + mp_audio_pool_get(af->out_pool, af->data, out_samples); + if (!out) + return -1; + if (p->pending) + mp_audio_copy_config(out, p->pending); + float **out_data = (void *)&out->planes; + out->samples = rubberband_retrieve(p->rubber, out_data, out->samples); + af_add_output_frame(af, out); + } int delay = rubberband_get_latency(p->rubber); delay += p->pending ? p->pending->samples : 0; -- cgit v1.2.3