diff --git a/plugins/win-wasapi/win-wasapi.cpp b/plugins/win-wasapi/win-wasapi.cpp index 68432b08c..b66a29064 100644 --- a/plugins/win-wasapi/win-wasapi.cpp +++ b/plugins/win-wasapi/win-wasapi.cpp @@ -386,7 +386,14 @@ DWORD WINAPI WASAPISource::ReconnectThread(LPVOID param) os_set_thread_name("win-wasapi: reconnect thread"); - CoInitializeEx(0, COINIT_MULTITHREADED); + const HRESULT hr = CoInitializeEx(0, COINIT_MULTITHREADED); + const bool com_initialized = SUCCEEDED(hr); + if (!com_initialized) { + blog(LOG_ERROR, + "[WASAPISource::ReconnectThread]" + " CoInitializeEx failed: 0x%08X", + hr); + } obs_monitoring_type type = obs_source_get_monitoring_type(source->source); @@ -400,6 +407,9 @@ DWORD WINAPI WASAPISource::ReconnectThread(LPVOID param) obs_source_set_monitoring_type(source->source, type); + if (com_initialized) + CoUninitialize(); + source->reconnectThread = nullptr; source->reconnecting = false; return 0;