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 045c1d6
This commit is contained in:
q66 2023-08-31 03:17:54 +02:00 committed by Wim Taymans
parent 9f7d960c66
commit aa11dbe10c

View file

@ -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));
}