mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-10 13:00:29 +03:00
LibAudio: Rescale integer samples correctly in FLAC loader
The FLAC samples are signed, so we need to rescale them not by their bit depth, but by half of the bit depth. For example, a 24-bit sample extends from -2^23 to 2^23-1, and therefore needs to be rescaled by 2^23 to conform to the [-1, 1] double sample range.
This commit is contained in:
parent
442aa48a61
commit
c974be91ab
Notes:
sideshowbarker
2024-07-18 05:37:29 +09:00
Author: https://github.com/kleinesfilmroellchen Commit: https://github.com/SerenityOS/serenity/commit/c974be91abe Pull-request: https://github.com/SerenityOS/serenity/pull/9461
@ -414,8 +414,7 @@ void FlacLoaderPlugin::next_frame()
|
||||
|
||||
VERIFY(left.size() == right.size());
|
||||
|
||||
// TODO: find the correct rescale offset
|
||||
double sample_rescale = static_cast<double>(1 << pcm_bits_per_sample(m_current_frame->bit_depth));
|
||||
double sample_rescale = static_cast<double>(1 << (pcm_bits_per_sample(m_current_frame->bit_depth) - 1));
|
||||
dbgln_if(AFLACLOADER_DEBUG, "Sample rescaled from {} bits: factor {:.1f}", pcm_bits_per_sample(m_current_frame->bit_depth), sample_rescale);
|
||||
|
||||
m_current_frame_data.clear_with_capacity();
|
||||
|
Loading…
Reference in New Issue
Block a user