From aa11dbe10c0f2319a5c4c8dcfff1d5dccc03589e Mon Sep 17 00:00:00 2001 From: q66 Date: Thu, 31 Aug 2023 03:17:54 +0200 Subject: [PATCH] alsa: get rid of non-portable isinf use The isinf function returns -1 for negative infinity on glibc, but the standard guarantees no such behavior (e.g. in C++ it always returns a bool, on musl libc it's a macro that expands to a bool expression), saying just that it returns a non-zero value. This was added in pulseaudio around 15 years ago, and was never fixed; pipewire then got the code from it. However, we can portably check against -INFINITY instead (from math.h, already included). Ref https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/045c1d6 --- spa/plugins/alsa/acp/volume.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spa/plugins/alsa/acp/volume.h b/spa/plugins/alsa/acp/volume.h index b916bd29d..de786b7c2 100644 --- a/spa/plugins/alsa/acp/volume.h +++ b/spa/plugins/alsa/acp/volume.h @@ -83,7 +83,7 @@ static inline pa_volume_t pa_sw_volume_from_linear(double v) static inline pa_volume_t pa_sw_volume_from_dB(double dB) { - if (isinf(dB) < 0 || dB <= PA_DECIBEL_MININFTY) + if (dB == -INFINITY || dB <= PA_DECIBEL_MININFTY) return PA_VOLUME_MUTED; return pa_sw_volume_from_linear(pa_volume_dB_to_linear(dB)); }