From 203d1a154eb5b78fc5f56e9dead04c3a89bcd39e Mon Sep 17 00:00:00 2001
From: raysan5 <raysan5@gmail.com>
Date: Sun, 5 Mar 2017 10:55:58 +0100
Subject: [PATCH] Clear music buffers on stop

---
 src/audio.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/audio.c b/src/audio.c
index 128781a4d..659ead0ff 100644
--- a/src/audio.c
+++ b/src/audio.c
@@ -762,7 +762,18 @@ void ResumeMusicStream(Music music)
 void StopMusicStream(Music music)
 {
     alSourceStop(music->stream.source);
+    
+    // Clear stream buffers
+    void *pcm = calloc(AUDIO_BUFFER_SIZE*music->stream.sampleSize/8*music->stream.channels, 1);
 
+    for (int i = 0; i < MAX_STREAM_BUFFERS; i++)
+    {
+        alBufferData(music->stream.buffers[i], music->stream.format, pcm, AUDIO_BUFFER_SIZE*music->stream.sampleSize/8*music->stream.channels, music->stream.sampleRate);
+    }
+
+    free(pcm);
+    
+    // Restart music context
     switch (music->ctxType)
     {
         case MUSIC_AUDIO_OGG: stb_vorbis_seek_start(music->ctxOgg); break;