Mercurial > repos > blastem
comparison render_sdl.c @ 1589:780604a036e4
Limit underflow warning spam
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 20 Jun 2018 22:49:21 -0700 |
parents | 348814d5b73f |
children | 220ede292e97 |
comparison
equal
deleted
inserted
replaced
1588:348814d5b73f | 1589:780604a036e4 |
---|---|
188 static int32_t cur_min_buffered; | 188 static int32_t cur_min_buffered; |
189 static uint32_t min_remaining_buffer; | 189 static uint32_t min_remaining_buffer; |
190 static void audio_callback_drc(void *userData, uint8_t *byte_stream, int len) | 190 static void audio_callback_drc(void *userData, uint8_t *byte_stream, int len) |
191 { | 191 { |
192 memset(byte_stream, 0, len); | 192 memset(byte_stream, 0, len); |
193 if (cur_min_buffered < 0) { | |
194 //underflow last frame, but main thread hasn't gotten a chance to call SDL_PauseAudio yet | |
195 return; | |
196 } | |
193 cur_min_buffered = 0x7FFFFFFF; | 197 cur_min_buffered = 0x7FFFFFFF; |
194 min_remaining_buffer = 0xFFFFFFFF; | 198 min_remaining_buffer = 0xFFFFFFFF; |
195 for (uint8_t i = 0; i < num_audio_sources; i++) | 199 for (uint8_t i = 0; i < num_audio_sources; i++) |
196 { | 200 { |
197 | 201 |
1434 | 1438 |
1435 if (cur_min_buffered < 0) { | 1439 if (cur_min_buffered < 0) { |
1436 adjust_ratio = max_adjust; | 1440 adjust_ratio = max_adjust; |
1437 SDL_PauseAudio(1); | 1441 SDL_PauseAudio(1); |
1438 last_buffered = NO_LAST_BUFFERED; | 1442 last_buffered = NO_LAST_BUFFERED; |
1443 cur_min_buffered = 0; | |
1439 } else { | 1444 } else { |
1440 adjust_ratio = -1.0 * average_change / ((float)sample_rate / (float)source_hz); | 1445 adjust_ratio = -1.0 * average_change / ((float)sample_rate / (float)source_hz); |
1441 adjust_ratio /= 2.5 * source_hz; | 1446 adjust_ratio /= 2.5 * source_hz; |
1442 if (fabsf(adjust_ratio) > max_adjust) { | 1447 if (fabsf(adjust_ratio) > max_adjust) { |
1443 adjust_ratio = adjust_ratio > 0 ? max_adjust : -max_adjust; | 1448 adjust_ratio = adjust_ratio > 0 ? max_adjust : -max_adjust; |