May fix broken systems like #12145 or #14314. Probably won't change anything, but it is the correct context to use anyway.
Unified · Split
| @@ -202,7 +202,7 @@ HRESULT wasapi_change_init(struct ao *ao, bool is_hotplug) · 201 unmodified lines | |||
| 202 | { | 202 | { |
| 203 | struct wasapi_state *state = ao->priv; | 203 | struct wasapi_state *state = ao->priv; |
| 204 | struct change_notify *change = &state->change; | 204 | struct change_notify *change = &state->change; |
| 205 | HRESULT hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, | 205 | HRESULT hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER, |
| 206 | &IID_IMMDeviceEnumerator, | 206 | &IID_IMMDeviceEnumerator, |
| 207 | (void **)&change->pEnumerator); | 207 | (void **)&change->pEnumerator); |
| 208 | EXIT_ON_ERROR(hr); | 208 | EXIT_ON_ERROR(hr); |
| @@ -653,7 +653,7 @@ static void init_volume_control(struct wasapi_state *state) · 652 unmodified lines | |||
| 653 | MP_DBG(state, "Activating pEndpointVolume interface\n"); | 653 | MP_DBG(state, "Activating pEndpointVolume interface\n"); |
| 654 | hr = IMMDeviceActivator_Activate(state->pDevice, | 654 | hr = IMMDeviceActivator_Activate(state->pDevice, |
| 655 | &IID_IAudioEndpointVolume, | 655 | &IID_IAudioEndpointVolume, |
| 656 | CLSCTX_ALL, NULL, | 656 | CLSCTX_INPROC_SERVER, NULL, |
| 657 | (void **)&state->pEndpointVolume); | 657 | (void **)&state->pEndpointVolume); |
| 658 | EXIT_ON_ERROR(hr); | 658 | EXIT_ON_ERROR(hr); |
| 659 | 659 | ||
| @@ -845,7 +845,7 @@ static struct enumerator *create_enumerator(struct mp_log *log) · 185 unmodified lines | |||
| 845 | struct enumerator *e = talloc_zero(NULL, struct enumerator); | 845 | struct enumerator *e = talloc_zero(NULL, struct enumerator); |
| 846 | e->log = log; | 846 | e->log = log; |
| 847 | HRESULT hr = CoCreateInstance( | 847 | HRESULT hr = CoCreateInstance( |
| 848 | &CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, &IID_IMMDeviceEnumerator, | 848 | &CLSID_MMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER, &IID_IMMDeviceEnumerator, |
| 849 | (void **)&e->pEnumerator); | 849 | (void **)&e->pEnumerator); |
| 850 | EXIT_ON_ERROR(hr); | 850 | EXIT_ON_ERROR(hr); |
| 851 | 851 | ||
| @@ -913,7 +913,7 @@ static bool load_device(struct mp_log *l, · 61 unmodified lines | |||
| 913 | IMMDevice **ppDevice, LPWSTR deviceID) | 913 | IMMDevice **ppDevice, LPWSTR deviceID) |
| 914 | { | 914 | { |
| 915 | IMMDeviceEnumerator *pEnumerator = NULL; | 915 | IMMDeviceEnumerator *pEnumerator = NULL; |
| 916 | HRESULT hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, | 916 | HRESULT hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER, |
| 917 | &IID_IMMDeviceEnumerator, | 917 | &IID_IMMDeviceEnumerator, |
| 918 | (void **)&pEnumerator); | 918 | (void **)&pEnumerator); |
| 919 | EXIT_ON_ERROR(hr); | 919 | EXIT_ON_ERROR(hr); |
| @@ -1027,7 +1027,7 @@ retry: · 107 unmodified lines | |||
| 1027 | 1027 | ||
| 1028 | MP_DBG(ao, "Activating pAudioClient interface\n"); | 1028 | MP_DBG(ao, "Activating pAudioClient interface\n"); |
| 1029 | hr = IMMDeviceActivator_Activate(state->pDevice, &IID_IAudioClient, | 1029 | hr = IMMDeviceActivator_Activate(state->pDevice, &IID_IAudioClient, |
| 1030 | CLSCTX_ALL, NULL, | 1030 | CLSCTX_INPROC_SERVER, NULL, |
| 1031 | (void **)&state->pAudioClient); | 1031 | (void **)&state->pAudioClient); |
| 1032 | if (FAILED(hr)) { | 1032 | if (FAILED(hr)) { |
| 1033 | MP_FATAL(ao, "Error activating device: %s\n", | 1033 | MP_FATAL(ao, "Error activating device: %s\n", |