From 5a14c497aff6f9834ad0bc53aaf4e2f36c990379 Mon Sep 17 00:00:00 2001 From: Thomas Guillem Date: Tue, 12 Jul 2022 14:03:01 +0200 Subject: [PATCH] wasapi: initialize COM from the timer callback Even if no problems were reported by the missing init. --- modules/audio_output/wasapi.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/audio_output/wasapi.c b/modules/audio_output/wasapi.c index c8045ff022c..a3188548b20 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); } -- GitLab