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 | 203 | struct wasapi_state *state = ao->priv; |
| 204 | 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 | 206 | &IID_IMMDeviceEnumerator, |
| 207 | 207 | (void **)&change->pEnumerator); |
| 208 | 208 | EXIT_ON_ERROR(hr); |
| @@ -653,7 +653,7 @@ static void init_volume_control(struct wasapi_state *state) · 652 unmodified lines | ||
| 653 | 653 | MP_DBG(state, "Activating pEndpointVolume interface\n"); |
| 654 | 654 | hr = IMMDeviceActivator_Activate(state->pDevice, |
| 655 | 655 | &IID_IAudioEndpointVolume, |
| 656 | − CLSCTX_ALL, NULL, | |
| 656 | + CLSCTX_INPROC_SERVER, NULL, | |
| 657 | 657 | (void **)&state->pEndpointVolume); |
| 658 | 658 | EXIT_ON_ERROR(hr); |
| 659 | 659 | |
| @@ -845,7 +845,7 @@ static struct enumerator *create_enumerator(struct mp_log *log) · 185 unmodified lines | ||
| 845 | 845 | struct enumerator *e = talloc_zero(NULL, struct enumerator); |
| 846 | 846 | e->log = log; |
| 847 | 847 | HRESULT hr = CoCreateInstance( |
| 848 | − &CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, &IID_IMMDeviceEnumerator, | |
| 848 | + &CLSID_MMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER, &IID_IMMDeviceEnumerator, | |
| 849 | 849 | (void **)&e->pEnumerator); |
| 850 | 850 | EXIT_ON_ERROR(hr); |
| 851 | 851 | |
| @@ -913,7 +913,7 @@ static bool load_device(struct mp_log *l, · 61 unmodified lines | ||
| 913 | 913 | IMMDevice **ppDevice, LPWSTR deviceID) |
| 914 | 914 | { |
| 915 | 915 | IMMDeviceEnumerator *pEnumerator = NULL; |
| 916 | − HRESULT hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, | |
| 916 | + HRESULT hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER, | |
| 917 | 917 | &IID_IMMDeviceEnumerator, |
| 918 | 918 | (void **)&pEnumerator); |
| 919 | 919 | EXIT_ON_ERROR(hr); |
| @@ -1027,7 +1027,7 @@ retry: · 107 unmodified lines | ||
| 1027 | 1027 | |
| 1028 | 1028 | MP_DBG(ao, "Activating pAudioClient interface\n"); |
| 1029 | 1029 | hr = IMMDeviceActivator_Activate(state->pDevice, &IID_IAudioClient, |
| 1030 | − CLSCTX_ALL, NULL, | |
| 1030 | + CLSCTX_INPROC_SERVER, NULL, | |
| 1031 | 1031 | (void **)&state->pAudioClient); |
| 1032 | 1032 | if (FAILED(hr)) { |
| 1033 | 1033 | MP_FATAL(ao, "Error activating device: %s\n", |