diff options
author | Arun Raghavan <git@arunraghavan.net> | 2015-09-17 09:44:49 +0530 |
---|---|---|
committer | David Henningsson <david.henningsson@canonical.com> | 2015-09-17 08:10:44 +0200 |
commit | 76e2cec9a2c3a09fc62ce62042d33375d9878471 (patch) | |
tree | 6283d11da53bb411a5a72deddfdfba754b695839 | |
parent | 3193f6a2c459948a997a0de57778a8a2bf599436 (diff) | |
download | pulseaudio-76e2cec9a2c3a09fc62ce62042d33375d9878471.tar.gz |
lfe-filter: Deal with empty input chunks
It is possible that we get a zero-length memchunk to work with.
Specifically, this happens the resampler (which is called before the
lfe-filter) consumes all the input data, but does not (yet) produce any
output data.
Reproduced using:
pulseaudio --resample-method=soxr-mq
pactl load-module module-null-sink sink_name=lfe_test channels=3 channel_map=front-left,front-right,lfe
paplay --raw /dev/zero --rate=48000 -d lfe_test
Thanks to the original reporter for the backtrace:
Bug: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1496577
-rw-r--r-- | src/pulsecore/filter/lfe-filter.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/pulsecore/filter/lfe-filter.c b/src/pulsecore/filter/lfe-filter.c index 8c79b556b..5f5ace25b 100644 --- a/src/pulsecore/filter/lfe-filter.c +++ b/src/pulsecore/filter/lfe-filter.c @@ -113,7 +113,7 @@ pa_memchunk * pa_lfe_filter_process(pa_lfe_filter_t *f, pa_memchunk *buf) { struct saved_state *s, *s2; void *data; - if (!f->active) + if (!f->active || !buf->length) return buf; /* Remove old states (FIXME: we could do better than searching the entire array here?) */ |