[pulseaudio-discuss] [PATCH] lfe-filter: Deal with empty input chunks

David Henningsson david.henningsson at canonical.com
Wed Sep 16 23:16:17 PDT 2015


Reviewed and pushed. Thanks!

On 2015-09-17 06:14, arun at accosted.net wrote:
> From: Arun Raghavan <git at arunraghavan.net>
>
> 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
> ---
>   src/pulsecore/filter/lfe-filter.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/pulsecore/filter/lfe-filter.c b/src/pulsecore/filter/lfe-filter.c
> index 8c79b55..5f5ace2 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?) */
>

-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic


More information about the pulseaudio-discuss mailing list