diff --git a/modules/audio_output/wasapi.c b/modules/audio_output/wasapi.c index c8045ff022cdf55f296a368256419ce45562fd2d..a3188548b20d76e05fd0d99c169922d18611acf6 100644 --- a/modules/audio_output/wasapi.c +++ b/modules/audio_output/wasapi.c @@ -177,7 +177,14 @@ static void StartDeferredCallback(void *val) aout_stream_t *s = val; aout_stream_sys_t *sys = s->sys; - HRESULT hr = IAudioClient_Start(sys->client); + HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); + /* From a timer callback, so it's impossible that COM was init before */ + assert(SUCCEEDED(hr)); + + hr = IAudioClient_Start(sys->client); + + CoUninitialize(); + atomic_store(&sys->started_state, SUCCEEDED(hr) ? STARTED_STATE_OK : STARTED_STATE_ERROR); }