# HG changeset patch # User Michael Pavone # Date 1529560161 25200 # Node ID 780604a036e450c8f26645880d9eb5a73e6aced7 # Parent 348814d5b73fa9819676ad4de70b337d9cbb5a8b Limit underflow warning spam diff -r 348814d5b73f -r 780604a036e4 render_sdl.c --- a/render_sdl.c Wed Jun 20 09:43:28 2018 -0700 +++ b/render_sdl.c Wed Jun 20 22:49:21 2018 -0700 @@ -190,6 +190,10 @@ 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 @@ 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;