diff --git a/extern/audaspace/plugins/coreaudio/CoreAudioDevice.cpp b/extern/audaspace/plugins/coreaudio/CoreAudioDevice.cpp index 4bfedd8feec..5cbecdf46eb 100644 --- a/extern/audaspace/plugins/coreaudio/CoreAudioDevice.cpp +++ b/extern/audaspace/plugins/coreaudio/CoreAudioDevice.cpp @@ -147,9 +147,13 @@ void CoreAudioDevice::open() void CoreAudioDevice::close() { - AudioOutputUnitStop(m_audio_unit); - AudioUnitUninitialize(m_audio_unit); - AudioComponentInstanceDispose(m_audio_unit); + // NOTE: Keep the device open for buggy MacOS versions (see blender issue #121911). + if(__builtin_available(macOS 15.2, *)) + { + AudioOutputUnitStop(m_audio_unit); + AudioUnitUninitialize(m_audio_unit); + AudioComponentInstanceDispose(m_audio_unit); + } } CoreAudioDevice::CoreAudioDevice(DeviceSpecs specs, int buffersize) : @@ -165,8 +169,7 @@ m_audio_unit(nullptr) m_specs = specs; open(); - // NOTE: Keep the device open until #121911 is investigated/resolved from Apple side. - // close(); + close(); create(); } diff --git a/extern/audaspace/src/devices/OpenCloseDevice.cpp b/extern/audaspace/src/devices/OpenCloseDevice.cpp index 34279f925b3..43645005779 100644 --- a/extern/audaspace/src/devices/OpenCloseDevice.cpp +++ b/extern/audaspace/src/devices/OpenCloseDevice.cpp @@ -71,9 +71,8 @@ void OpenCloseDevice::playing(bool playing) if(m_delayed_close_thread.joinable()) m_delayed_close_thread.join(); - // NOTE: Disabled until #121911 is investigated/resolved from Apple side. - // m_delayed_close_running = true; - // m_delayed_close_thread = std::thread(&OpenCloseDevice::closeAfterDelay, this); + m_delayed_close_running = true; + m_delayed_close_thread = std::thread(&OpenCloseDevice::closeAfterDelay, this); } } }