From 94a96499453c68c9362a1362203460fbd3d18563 Mon Sep 17 00:00:00 2001 From: Till Mayer Date: Tue, 5 Nov 2019 18:34:39 +0100 Subject: [PATCH] AWavLoader: Fixed incorrect computation of m_loaded_samples m_loaded_samples was incremented with the value of the processed buffer. This causes m_loaded_samples to be bigger at some point than m_total_samples when downsampling, as the buffer would contain more samples than actually loaded. --- Libraries/LibAudio/AWavLoader.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Libraries/LibAudio/AWavLoader.cpp b/Libraries/LibAudio/AWavLoader.cpp index eb8403ef0f..c2a04bb1aa 100644 --- a/Libraries/LibAudio/AWavLoader.cpp +++ b/Libraries/LibAudio/AWavLoader.cpp @@ -27,7 +27,9 @@ RefPtr AWavLoader::get_more_samples(size_t max_bytes_to_read_from_input return nullptr; auto buffer = ABuffer::from_pcm_data(raw_samples, *m_resampler, m_num_channels, m_bits_per_sample); - m_loaded_samples += buffer->sample_count(); + //Buffer contains normalized samples, but m_loaded_samples should containt the ammount of actually loaded samples + m_loaded_samples += static_cast(max_bytes_to_read_from_input) / (m_num_channels * (m_bits_per_sample / 8)); + m_loaded_samples = min(m_total_samples, m_loaded_samples); return buffer; }