From e85a9b74c65171470f30b77db78b789c849508e9 Mon Sep 17 00:00:00 2001 From: Nevyn Bengtsson Date: Sat, 4 Jan 2020 01:58:03 +0100 Subject: [PATCH] Audio source: unqueue before playing --- src/modules/audio/source.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/modules/audio/source.c b/src/modules/audio/source.c index 8b7b2114..04858537 100644 --- a/src/modules/audio/source.c +++ b/src/modules/audio/source.c @@ -170,6 +170,12 @@ void lovrSourcePlay(Source* source) { lovrAudioStreamRewind(source->stream); } + // in case we have some queued buffers, make sure to unqueue them before streaming more data into them. + ALint processed; + alGetSourcei(lovrSourceGetId(source), AL_BUFFERS_PROCESSED, &processed); + ALuint buffers[SOURCE_BUFFERS]; + alSourceUnqueueBuffers(source->id, processed, buffers); + lovrSourceStream(source, source->buffers, SOURCE_BUFFERS); alSourcePlay(source->id); }