diff --git a/src/output/plugins/wasapi/WasapiOutputPlugin.cxx b/src/output/plugins/wasapi/WasapiOutputPlugin.cxx index 13ddb3f1e..4c306989e 100644 --- a/src/output/plugins/wasapi/WasapiOutputPlugin.cxx +++ b/src/output/plugins/wasapi/WasapiOutputPlugin.cxx @@ -205,7 +205,13 @@ public: WasapiOutput(const ConfigBlock &block); void Enable() override { COMWorker::Aquire(); - COMWorker::Async([&]() { OpenDevice(); }).get(); + + try { + COMWorker::Async([&]() { OpenDevice(); }).get(); + } catch (...) { + COMWorker::Release(); + throw; + } } void Disable() noexcept override { COMWorker::Async([&]() { DoDisable(); }).get();