From 6bd1ec6bb0008c71b2e9f138687214b8b6739a60 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 2 Aug 2016 15:04:33 -0400 Subject: [PATCH] audio: a little more robustness in the capture device's thread. --- src/audio/SDL_audio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c index b8b045a7c..e55923ff4 100644 --- a/src/audio/SDL_audio.c +++ b/src/audio/SDL_audio.c @@ -729,7 +729,6 @@ SDL_CaptureAudio(void *devicep) while (still_need > 0) { const int rc = current_audio.impl.CaptureFromDevice(device, ptr, still_need); - SDL_assert(rc != 0); /* device should have blocked, failed, or returned data. */ SDL_assert(rc <= still_need); /* device should not overflow buffer. :) */ if (rc > 0) { still_need -= rc; @@ -751,7 +750,9 @@ SDL_CaptureAudio(void *devicep) /* !!! FIXME: this should be LockDevice. */ SDL_LockMutex(device->mixer_lock); - if (!SDL_AtomicGet(&device->paused)) { + if (SDL_AtomicGet(&device->paused)) { + current_audio.impl.FlushCapture(device); /* one snuck in! */ + } else { (*callback)(udata, stream, stream_len); } SDL_UnlockMutex(device->mixer_lock);