From d96062b6906312f92784d1adb4197eee345fe98b Mon Sep 17 00:00:00 2001 From: Stenzek Date: Thu, 21 Mar 2024 02:21:57 +1000 Subject: [PATCH] AudioStream: Fix infinite loop --- src/util/audio_stream.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/util/audio_stream.cpp b/src/util/audio_stream.cpp index 4a1806d8d..04756dadf 100644 --- a/src/util/audio_stream.cpp +++ b/src/util/audio_stream.cpp @@ -189,11 +189,15 @@ void AudioStream::ApplyVolume(s16* samples, u32 num_frames) if (m_volume == 100) return; - const s32 volume_mult = static_cast(m_volume) * 32768; - const u32 num_samples = num_frames * m_channels; + const s32 volume_mult = static_cast((static_cast(m_volume) / 100.0f) * 32768.0f); + u32 num_samples = num_frames * m_channels; while (num_samples > 0) - *samples = static_cast((static_cast(*samples) * volume_mult) >> 15); + { + *samples = static_cast((static_cast(*samples) * volume_mult) >> 15); + samples++; + num_samples--; + } } void AudioStream::InternalWriteFrames(s32* bData, u32 nSamples)