From c62a0694480855820389b537dba3e040af006565 Mon Sep 17 00:00:00 2001 From: Leon Styhre Date: Wed, 5 Jan 2022 00:08:50 +0100 Subject: [PATCH] Fixed an issue where the audio device was accessed after it had been closed. --- es-app/src/main.cpp | 2 -- es-core/src/AudioManager.cpp | 2 ++ es-core/src/components/VideoFFmpegComponent.cpp | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/es-app/src/main.cpp b/es-app/src/main.cpp index 2a704e219..fc1430bf1 100644 --- a/es-app/src/main.cpp +++ b/es-app/src/main.cpp @@ -529,10 +529,8 @@ int main(int argc, char* argv[]) } Window* window = Window::getInstance(); - ViewController::getInstance(); CollectionSystemsManager::getInstance(); - SystemScreensaver screensaver; MediaViewer mediaViewer; GuiLaunchScreen guiLaunchScreen; diff --git a/es-core/src/AudioManager.cpp b/es-core/src/AudioManager.cpp index a0d539bd3..1d8dec2ac 100644 --- a/es-core/src/AudioManager.cpp +++ b/es-core/src/AudioManager.cpp @@ -119,6 +119,8 @@ void AudioManager::deinit() SDL_CloseAudio(); SDL_QuitSubSystem(SDL_INIT_AUDIO); + + sAudioDevice = 0; } void AudioManager::mixAudio(void* /*unused*/, Uint8* stream, int len) diff --git a/es-core/src/components/VideoFFmpegComponent.cpp b/es-core/src/components/VideoFFmpegComponent.cpp index 45c04c8bf..1359e9ffe 100644 --- a/es-core/src/components/VideoFFmpegComponent.cpp +++ b/es-core/src/components/VideoFFmpegComponent.cpp @@ -1412,7 +1412,8 @@ void VideoFFmpegComponent::stopVideo() std::queue().swap(mAudioFrameQueue); // Clear the audio buffer. - AudioManager::getInstance().clearStream(); + if (AudioManager::sAudioDevice != 0) + AudioManager::getInstance().clearStream(); if (mFormatContext) { av_frame_free(&mVideoFrame);