1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 01:17:36 +00:00
serenity/Userland/Libraries/LibAudio
kleines Filmröllchen ba622cffe4 LibAudio: Fix overflow on 24-bit FLAC LPC data
When computing sample values from a linear predictor, the repeated
multiplication and addition can lead to very large values that may
overflow a 32-bit integer. This was never discovered with 16-bit FLAC
test files used to create and validate the first version of the FLAC
loader. However, 24-bit audio, especially with large LPC shifts, will
regularly exceed and overflow i32. Therefore, we now use 64 bits
temporarily. If the resulting value is too large for 32 bits, something
else has gone wrong :^)

This fixes playback noise on 24-bit FLACs.
2021-08-17 00:16:00 +02:00
..
Buffer.cpp LibAudio: Make ResampleHelper templated for different sample types 2021-06-25 20:48:14 +04:30
Buffer.h LibAudio: Make ResampleHelper templated for different sample types 2021-06-25 20:48:14 +04:30
ClientConnection.cpp LibAudio: Add ClientConnection::async_enqueue() 2021-07-05 19:33:55 +02:00
ClientConnection.h LibAudio: Add ClientConnection::async_enqueue() 2021-07-05 19:33:55 +02:00
CMakeLists.txt LibAudio: Implement a basic FLAC loader 2021-06-25 20:48:14 +04:30
FlacLoader.cpp LibAudio: Fix overflow on 24-bit FLAC LPC data 2021-08-17 00:16:00 +02:00
FlacLoader.h LibAudio: Handle stream errors in FlacLoader 2021-08-02 09:05:28 +02:00
FlacTypes.h LibAudio: Implement a basic FLAC loader 2021-06-25 20:48:14 +04:30
Loader.cpp LibAudio: Implement a basic FLAC loader 2021-06-25 20:48:14 +04:30
Loader.h LibAudio: Make LoaderPlugin::error_string return String& 2021-06-25 20:48:14 +04:30
WavLoader.cpp LibAudio: Make ResampleHelper templated for different sample types 2021-06-25 20:48:14 +04:30
WavLoader.h LibAudio: Make ResampleHelper templated for different sample types 2021-06-25 20:48:14 +04:30
WavWriter.cpp LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00
WavWriter.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00