diff --git a/AV.cc b/AV.cc index ba862c6..8c64f9f 100644 --- a/AV.cc +++ b/AV.cc @@ -187,8 +187,8 @@ void AV::playCallback(Uint8 * stream, int len) i < samples_decoded; i++) { - stream16[i] = - min(SHRT_MAX, stream16[i] + (int)(volume * m_sound_buffer[i])); + int sample_val = stream16[i] + (int)(volume * m_sound_buffer[i]); + stream16[i] = min(SHRT_MAX, max(SHRT_MIN, sample_val)); } } int sz = m_active_sounds.size();