mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2025-03-06 06:17:43 +00:00
AudioStream: Fix infinite loop
This commit is contained in:
parent
2be8287edf
commit
d96062b690
|
@ -189,11 +189,15 @@ void AudioStream::ApplyVolume(s16* samples, u32 num_frames)
|
||||||
if (m_volume == 100)
|
if (m_volume == 100)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const s32 volume_mult = static_cast<s32>(m_volume) * 32768;
|
const s32 volume_mult = static_cast<s32>((static_cast<float>(m_volume) / 100.0f) * 32768.0f);
|
||||||
const u32 num_samples = num_frames * m_channels;
|
|
||||||
|
|
||||||
|
u32 num_samples = num_frames * m_channels;
|
||||||
while (num_samples > 0)
|
while (num_samples > 0)
|
||||||
*samples = static_cast<s16>((static_cast<s16>(*samples) * volume_mult) >> 15);
|
{
|
||||||
|
*samples = static_cast<s16>((static_cast<s32>(*samples) * volume_mult) >> 15);
|
||||||
|
samples++;
|
||||||
|
num_samples--;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioStream::InternalWriteFrames(s32* bData, u32 nSamples)
|
void AudioStream::InternalWriteFrames(s32* bData, u32 nSamples)
|
||||||
|
|
Loading…
Reference in a new issue