mirror of
https://github.com/mpv-player/mpv
synced 2025-04-21 14:49:08 +00:00
ao_wasapi: don't limit the scope of execution context
May fix broken systems like #12145 or #14314. Probably won't change anything, but it is the correct context to use anyway.
This commit is contained in:
parent
965809f108
commit
d7ceedbd99
@ -202,7 +202,7 @@ HRESULT wasapi_change_init(struct ao *ao, bool is_hotplug)
|
|||||||
{
|
{
|
||||||
struct wasapi_state *state = ao->priv;
|
struct wasapi_state *state = ao->priv;
|
||||||
struct change_notify *change = &state->change;
|
struct change_notify *change = &state->change;
|
||||||
HRESULT hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL,
|
HRESULT hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER,
|
||||||
&IID_IMMDeviceEnumerator,
|
&IID_IMMDeviceEnumerator,
|
||||||
(void **)&change->pEnumerator);
|
(void **)&change->pEnumerator);
|
||||||
EXIT_ON_ERROR(hr);
|
EXIT_ON_ERROR(hr);
|
||||||
|
@ -653,7 +653,7 @@ static void init_volume_control(struct wasapi_state *state)
|
|||||||
MP_DBG(state, "Activating pEndpointVolume interface\n");
|
MP_DBG(state, "Activating pEndpointVolume interface\n");
|
||||||
hr = IMMDeviceActivator_Activate(state->pDevice,
|
hr = IMMDeviceActivator_Activate(state->pDevice,
|
||||||
&IID_IAudioEndpointVolume,
|
&IID_IAudioEndpointVolume,
|
||||||
CLSCTX_ALL, NULL,
|
CLSCTX_INPROC_SERVER, NULL,
|
||||||
(void **)&state->pEndpointVolume);
|
(void **)&state->pEndpointVolume);
|
||||||
EXIT_ON_ERROR(hr);
|
EXIT_ON_ERROR(hr);
|
||||||
|
|
||||||
@ -845,7 +845,7 @@ static struct enumerator *create_enumerator(struct mp_log *log)
|
|||||||
struct enumerator *e = talloc_zero(NULL, struct enumerator);
|
struct enumerator *e = talloc_zero(NULL, struct enumerator);
|
||||||
e->log = log;
|
e->log = log;
|
||||||
HRESULT hr = CoCreateInstance(
|
HRESULT hr = CoCreateInstance(
|
||||||
&CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, &IID_IMMDeviceEnumerator,
|
&CLSID_MMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER, &IID_IMMDeviceEnumerator,
|
||||||
(void **)&e->pEnumerator);
|
(void **)&e->pEnumerator);
|
||||||
EXIT_ON_ERROR(hr);
|
EXIT_ON_ERROR(hr);
|
||||||
|
|
||||||
@ -913,7 +913,7 @@ static bool load_device(struct mp_log *l,
|
|||||||
IMMDevice **ppDevice, LPWSTR deviceID)
|
IMMDevice **ppDevice, LPWSTR deviceID)
|
||||||
{
|
{
|
||||||
IMMDeviceEnumerator *pEnumerator = NULL;
|
IMMDeviceEnumerator *pEnumerator = NULL;
|
||||||
HRESULT hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL,
|
HRESULT hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER,
|
||||||
&IID_IMMDeviceEnumerator,
|
&IID_IMMDeviceEnumerator,
|
||||||
(void **)&pEnumerator);
|
(void **)&pEnumerator);
|
||||||
EXIT_ON_ERROR(hr);
|
EXIT_ON_ERROR(hr);
|
||||||
@ -1027,7 +1027,7 @@ retry:
|
|||||||
|
|
||||||
MP_DBG(ao, "Activating pAudioClient interface\n");
|
MP_DBG(ao, "Activating pAudioClient interface\n");
|
||||||
hr = IMMDeviceActivator_Activate(state->pDevice, &IID_IAudioClient,
|
hr = IMMDeviceActivator_Activate(state->pDevice, &IID_IAudioClient,
|
||||||
CLSCTX_ALL, NULL,
|
CLSCTX_INPROC_SERVER, NULL,
|
||||||
(void **)&state->pAudioClient);
|
(void **)&state->pAudioClient);
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
MP_FATAL(ao, "Error activating device: %s\n",
|
MP_FATAL(ao, "Error activating device: %s\n",
|
||||||
|
Loading…
Reference in New Issue
Block a user