diff options
author | wm4 <wm4@nowhere> | 2015-02-11 15:44:21 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-02-11 16:32:40 +0100 |
commit | 76501f4f57d6d00a914a2e7242ab393fb751a190 (patch) | |
tree | 8c8e053174b8d2fba8cf436f90a5430b69b94f0e | |
parent | d85aa35ffbd978c7ae86bf84ebf9ac7686312e8f (diff) | |
download | mpv-76501f4f57d6d00a914a2e7242ab393fb751a190.tar.bz2 mpv-76501f4f57d6d00a914a2e7242ab393fb751a190.tar.xz |
af_rubberband: always calculate and set delay
Basically, add an if and reindent the block instead of exiting early.
-rw-r--r-- | audio/filter/af_rubberband.c | 23 |
1 files 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; |