From: Paul Brossier Date: Tue, 29 Sep 2009 17:58:43 +0000 (+0200) Subject: src/temporal/filter.c: fix aubio_filter_do and aubio_filter_do_outplace X-Git-Tag: 0.4.0-beta1~781 X-Git-Url: https://git.aubio.org/?a=commitdiff_plain;h=6481c0c0aa437c68bbc598ebdcb39c2890f548b3;p=aubio.git src/temporal/filter.c: fix aubio_filter_do and aubio_filter_do_outplace --- diff --git a/src/temporal/filter.c b/src/temporal/filter.c index df4dba65..9368303a 100644 --- a/src/temporal/filter.c +++ b/src/temporal/filter.c @@ -36,11 +36,12 @@ struct _aubio_filter_t { lvec_t * x; }; -void aubio_filter_do(aubio_filter_t * f, fvec_t * in) { - aubio_filter_do_outplace(f, in, in); +void aubio_filter_do_outplace(aubio_filter_t * f, fvec_t * in, fvec_t * out) { + fvec_copy(in, out); + aubio_filter_do (f, out); } -void aubio_filter_do_outplace(aubio_filter_t * f, fvec_t * in, fvec_t * out) { +void aubio_filter_do(aubio_filter_t * f, fvec_t * in) { uint_t i,j,l, order = f->order; lsmp_t *x; lsmp_t *y; @@ -52,18 +53,14 @@ void aubio_filter_do_outplace(aubio_filter_t * f, fvec_t * in, fvec_t * out) { y = f->y->data[i]; for (j = 0; j < in->length; j++) { /* new input */ - if (IS_DENORMAL(in->data[i][j])) { - x[0] = y[0] = 0.; - } else { - x[0] = in->data[i][j]; - y[0] = b[0] * x[0]; - for (l=1;ldata[i][j]); + y[0] = b[0] * x[0]; + for (l=1;ldata[i][j] = y[0]; + in->data[i][j] = y[0]; /* store for next sample */ for (l=order-1; l>0; l--){ x[l] = x[l-1];