qemu/audio
Volker Rümelin 9c61fcc89a audio/mixeng: fix clang 10+ warning
The code in CONV_NATURAL_FLOAT() and CLIP_NATURAL_FLOAT()
seems to use the constant 2^31-0.5 to convert float to integer
and back. But the float type lacks the required precision and
the constant used for the conversion is 2^31. This is equiva-
lent to a [-1.f, 1.f] <-> [INT32_MIN, INT32_MAX + 1] mapping.

This patch explicitly writes down the used constant. The
compiler generated code doesn't change.

The constant 2^31 has an exact float representation and the
clang 10 compiler stops complaining about an implicit int to
float conversion with a changed value.

A few notes:
- The conversion of 1.f to INT32_MAX + 1 doesn't overflow. The
  type of the destination variable is int64_t.
- At a later stage one of the clip_* functions in
  audio/mixeng_template.h limits INT32_MAX + 1 to the integer
  range.
- The clip_natural_float_* functions in audio/mixeng.c convert
  INT32_MAX and INT32_MAX + 1 to 1.f.

Buglink: https://bugs.launchpad.net/bugs/1878627
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Message-id: 20200523201712.23908-1-vr_qemu@t-online.de
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2020-05-26 07:46:51 +02:00
..
alsaaudio.c audio/alsaaudio: Remove superfluous semicolons 2020-02-18 20:20:49 +01:00
audio.c audio/jack: add JACK client audiodev 2020-05-25 11:30:03 +02:00
audio.h audio: support more than two channels in volume setting 2019-10-18 08:14:05 +02:00
audio_int.h audio: proper support for float samples in mixeng 2020-02-06 14:35:57 +01:00
audio_legacy.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
audio_template.h audio/jack: add JACK client audiodev 2020-05-25 11:30:03 +02:00
audio_win_int.c audio: use qapi AudioFormat instead of audfmt_e 2019-03-11 10:29:26 +01:00
audio_win_int.h Windows Waveform Audio driver (no ADC support yet) 2009-10-10 01:18:24 +04:00
coreaudio.c audio: proper support for float samples in mixeng 2020-02-06 14:35:57 +01:00
dsound_template.h audio/dsound: fix invalid parameters error 2020-02-06 14:31:20 +01:00
dsoundaudio.c dsoundaudio: dsound_get_buffer_in should honor *size 2020-04-06 13:29:53 +02:00
jackaudio.c audio/jack: add JACK client audiodev 2020-05-25 11:30:03 +02:00
Makefile.objs audio/jack: add JACK client audiodev 2020-05-25 11:30:03 +02:00
mixeng.c audio/mixeng: fix clang 10+ warning 2020-05-26 07:46:51 +02:00
mixeng.h audio: proper support for float samples in mixeng 2020-02-06 14:35:57 +01:00
mixeng_template.h audio: fix saturation nonlinearity in clip_* functions 2020-03-16 10:18:07 +01:00
noaudio.c audio: fix bug 1858488 2020-01-31 08:48:03 +01:00
ossaudio.c ossaudio: disable poll mode can't be reached 2020-01-31 08:48:57 +01:00
paaudio.c audio: proper support for float samples in mixeng 2020-02-06 14:35:57 +01:00
rate_template.h audio: use size_t where makes sense 2019-08-21 09:13:37 +02:00
sdlaudio.c audio: proper support for float samples in mixeng 2020-02-06 14:35:57 +01:00
spiceaudio.c audio: replace shift in audio_pcm_info with bytes_per_frame 2019-10-18 08:14:05 +02:00
trace-events trace-events: Shorten file names in comments 2019-03-22 16:18:07 +00:00
wavaudio.c audio: fix bug 1858488 2020-01-31 08:48:03 +01:00
wavcapture.c audio: basic support for multi backend audio 2019-08-21 09:13:37 +02:00