diff options
author | Michael Pavone <pavone@retrodev.com> | 2018-06-20 22:49:21 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2018-06-20 22:49:21 -0700 |
commit | db4c41186afcfba0533c9f02f420dd5d6f5fe96b (patch) | |
tree | 69331b48d8b1de0ea89788a0b2a1bb0a25ae4ca0 /render_sdl.c | |
parent | 87f3284b3fa319fc0968272320ca6de79627d23f (diff) |
Limit underflow warning spam
Diffstat (limited to 'render_sdl.c')
-rwxr-xr-x | render_sdl.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/render_sdl.c b/render_sdl.c index 7e0e826..87b4971 100755 --- a/render_sdl.c +++ b/render_sdl.c @@ -190,6 +190,10 @@ static uint32_t min_remaining_buffer; static void audio_callback_drc(void *userData, uint8_t *byte_stream, int len) { memset(byte_stream, 0, len); + if (cur_min_buffered < 0) { + //underflow last frame, but main thread hasn't gotten a chance to call SDL_PauseAudio yet + return; + } cur_min_buffered = 0x7FFFFFFF; min_remaining_buffer = 0xFFFFFFFF; for (uint8_t i = 0; i < num_audio_sources; i++) @@ -1436,6 +1440,7 @@ void render_framebuffer_updated(uint8_t which, int width) adjust_ratio = max_adjust; SDL_PauseAudio(1); last_buffered = NO_LAST_BUFFERED; + cur_min_buffered = 0; } else { adjust_ratio = -1.0 * average_change / ((float)sample_rate / (float)source_hz); adjust_ratio /= 2.5 * source_hz; |