From 62ae9b7d30e6e0457d8a47a6a281d4c328e2ec65 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 21 Feb 2022 17:34:36 +0100 Subject: [PATCH] filter-chain: avoid denormals in biquad See #1681 #2160 --- src/modules/module-filter-chain/builtin_plugin.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/modules/module-filter-chain/builtin_plugin.c b/src/modules/module-filter-chain/builtin_plugin.c index 9b68a7fcb..91c5d7f63 100644 --- a/src/modules/module-filter-chain/builtin_plugin.c +++ b/src/modules/module-filter-chain/builtin_plugin.c @@ -24,6 +24,7 @@ #include "config.h" +#include #include #ifdef HAVE_SNDFILE #include @@ -303,10 +304,12 @@ static void bq_run(struct builtin *impl, unsigned long samples, int type) y2 = y1; y1 = y; } - bq->x1 = x1; - bq->x2 = x2; - bq->y1 = y1; - bq->y2 = y2; +#define F(x) (-FLT_MIN < (x) && (x) < FLT_MIN ? 0.0f : (x)) + bq->x1 = F(x1); + bq->x2 = F(x2); + bq->y1 = F(y1); + bq->y2 = F(y2); +#undef F } /** bq_lowpass */