From e5b5d53e3e8fed2237004b756da7a03b361794a9 Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Sun, 5 May 2024 23:47:56 +0200 Subject: [PATCH] audio: fix crash on looped stream shutdown --- src/engine/audio.c | 6 +++--- src/engine/audio_stream.c | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/engine/audio.c b/src/engine/audio.c index cdb43ea..912610f 100644 --- a/src/engine/audio.c +++ b/src/engine/audio.c @@ -78,9 +78,6 @@ bool Audio_Shutdown(void) return false; } - Audio_Sample_Shutdown(); - Audio_Stream_Shutdown(); - if (g_AudioDeviceID) { SDL_PauseAudioDevice(g_AudioDeviceID, 1); SDL_CloseAudioDevice(g_AudioDeviceID); @@ -88,6 +85,9 @@ bool Audio_Shutdown(void) } Memory_FreePointer(&m_MixBuffer); + + Audio_Sample_Shutdown(); + Audio_Stream_Shutdown(); return true; } diff --git a/src/engine/audio_stream.c b/src/engine/audio_stream.c index b658d0c..4db1bd0 100644 --- a/src/engine/audio_stream.c +++ b/src/engine/audio_stream.c @@ -441,6 +441,10 @@ bool Audio_Stream_Unpause(int32_t sound_id) int32_t Audio_Stream_CreateFromFile(const char *file_path) { + if (!g_AudioDeviceID) { + return AUDIO_NO_SOUND; + } + assert(file_path != NULL); for (int32_t sound_id = 0; sound_id < AUDIO_MAX_ACTIVE_STREAMS;