summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-02-11 15:44:21 +0100
committerwm4 <wm4@nowhere>2015-02-11 16:32:40 +0100
commit76501f4f57d6d00a914a2e7242ab393fb751a190 (patch)
tree8c8e053174b8d2fba8cf436f90a5430b69b94f0e
parentd85aa35ffbd978c7ae86bf84ebf9ac7686312e8f (diff)
downloadmpv-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.c23
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;