From 7cca53fca329de11f31c029ed9c19fa07327d0e3 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Wed, 6 Mar 2024 23:19:43 +0300 Subject: [PATCH] stream buffers recycling fix --- src/audio/AL/ALAudio.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/audio/AL/ALAudio.cpp b/src/audio/AL/ALAudio.cpp index 966c715c..5e47f7b8 100644 --- a/src/audio/AL/ALAudio.cpp +++ b/src/audio/AL/ALAudio.cpp @@ -254,6 +254,13 @@ void ALSpeaker::stop() { stopped = true; if (source) { AL_CHECK(alSourceStop(source)); + + uint processed = AL::getSourcei(source, AL_BUFFERS_PROCESSED); + while (processed--) { + uint buffer; + AL_CHECK(alSourceUnqueueBuffers(source, 1, &buffer)); + al->freeBuffer(buffer); + } al->freeSource(source); } }