summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2018-06-20 22:49:21 -0700
committerMichael Pavone <pavone@retrodev.com>2018-06-20 22:49:21 -0700
commitdb4c41186afcfba0533c9f02f420dd5d6f5fe96b (patch)
tree69331b48d8b1de0ea89788a0b2a1bb0a25ae4ca0
parent87f3284b3fa319fc0968272320ca6de79627d23f (diff)
Limit underflow warning spam
-rwxr-xr-xrender_sdl.c5
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;