From 2799f8975e92047af7458fdd000d423b22fb1c79 Mon Sep 17 00:00:00 2001 From: Alexandre Ratchov Date: Wed, 7 Nov 2018 22:19:53 +0100 Subject: [PATCH] aucat: Fix clipping during float to integer conversions. From Jari Vetoniemi . Thanks! --- aucat/dsp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aucat/dsp.c b/aucat/dsp.c index 6203fb3..35df5e2 100644 --- a/aucat/dsp.c +++ b/aucat/dsp.c @@ -660,11 +660,11 @@ f32_to_adata(unsigned int x) * 31 - (BITS - 1) - (e - 127) * * to ensure output is in the 0..(2^BITS)-1 range, the minimum - * shift is 31 - (BITS - 1), and maximum shift is 31 + * shift is 31 - (BITS - 1) + 1, and maximum shift is 31 */ if (e < 127 - (ADATA_BITS - 1)) y = 0; - else if (e > 127) + else if (e >= 127) y = ADATA_UNIT - 1; else y = m >> (127 + (32 - ADATA_BITS) - e);