mirror of
https://github.com/holub/mame
synced 2025-06-03 19:36:26 +03:00
Fix sound_sdl::sdl_callback, fill buffer with silence when underflow.
The problem is most noticeable when you are saving state, and the save takes a relatively long time, short period of audio gets played repeatedly, which is usually unpleasant. I found out it's caused by sdl_sound::sdl_callback not fill the audio buffer with silence when underflow occurs. According to https://wiki.libsdl.org/SDL_AudioSpec, if there's nothing to play, the callback should fill the buffer with silence. I tested this change and the problem is gone.
This commit is contained in:
parent
fe01a1342c
commit
9788f622e2
@ -359,6 +359,7 @@ static void sdl_callback(void *userdata, Uint8 *stream, int len)
|
||||
if (LOG_SOUND)
|
||||
fprintf(sound_log, "Underflow at sdl_callback: SPP=%d SBI=%d(%d) Len=%d\n", (int)thiz->stream_playpos, (int)sb_in, (int)thiz->stream_buffer_in, (int)len);
|
||||
|
||||
memset(stream, 0, len);
|
||||
return;
|
||||
}
|
||||
else if ((thiz->stream_playpos+len) > thiz->stream_buffer_size)
|
||||
|
Loading…
Reference in New Issue
Block a user