mpv/audio/out
James Ross-Gowan 3c10ed540b ao_wasapi: fix try_format logic in shared mode
The MSDN documentation for IsFormatSupported says a return code of
AUDCLNT_E_UNSUPPORTED_FORMAT means the function "succeeded but the
specified format is not supported in exclusive mode." This seems to
imply that the format is supported in shared mode, and that's what the
old code assumed, however try_format would incorrectly return success
with some drivers.

The remarks section of the documentation contradicts that assumption. It
says that in shared mode, if the audio engine does not support the
caller-specified format or any similar format, ppClosestMatch is set to
NULL and the function returns AUDCLNT_E_UNSUPPORTED_FORMAT. This is the
same as in exclusive mode, so treat AUDCLNT_E_UNSUPPORTED_FORMAT the
same regardless of opt_exclusive. In shared mode, the format selection
code will fall back to the mix format, which should always be supported.
2015-01-23 22:02:15 +11:00
..
ao.c ao: never autoselect ao_null 2015-01-20 14:28:34 +01:00
ao.h audio/out: make ao_request_reload() idempotent 2014-11-09 09:58:44 +01:00
ao_alsa.c ao_alsa: reinitialize if device got broken 2015-01-21 19:38:18 +01:00
ao_coreaudio.c ao_coreaudio: remove useless guard 2014-12-27 12:33:44 +01:00
ao_coreaudio_exclusive.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_coreaudio_properties.c ao_coreaudio: initialize fetched properties to zeros 2014-12-01 16:51:19 +01:00
ao_coreaudio_properties.h ao_coreaudio: report hardware latency to ao_read_data 2014-07-03 20:05:15 +02:00
ao_coreaudio_utils.c ao_coreaudio: reset possibly random errno value 2015-01-20 14:32:01 +01:00
ao_coreaudio_utils.h coreaudio: use the new device selection API 2014-10-12 12:22:17 +02:00
ao_dsound.c win32: request UTF-16 API variants, Vista+ APIs, and COM C macros 2015-01-07 21:42:44 +01:00
ao_jack.c audio/out/pull: remove race conditions 2014-05-29 02:24:17 +02:00
ao_lavc.c ao_lavc: fix setting up AVFrame pointers 2014-11-21 10:09:25 +01:00
ao_null.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_openal.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_oss.c Do not call strerror() 2014-11-26 21:21:56 +01:00
ao_pcm.c ao_pcm: add append mode 2015-01-14 22:14:56 +01:00
ao_pulse.c ao_pulse: exit AO if stream fails 2015-01-11 04:19:40 +01:00
ao_rsound.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_sdl.c Add some missing "const"s 2014-10-10 13:44:08 +02:00
ao_sndio.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_wasapi.c win32: request UTF-16 API variants, Vista+ APIs, and COM C macros 2015-01-07 21:42:44 +01:00
ao_wasapi.h win32: request UTF-16 API variants, Vista+ APIs, and COM C macros 2015-01-07 21:42:44 +01:00
ao_wasapi_changenotify.c win32: request UTF-16 API variants, Vista+ APIs, and COM C macros 2015-01-07 21:42:44 +01:00
ao_wasapi_utils.c ao_wasapi: fix try_format logic in shared mode 2015-01-23 22:02:15 +11:00
ao_wasapi_utils.h ao/wasapi: use IsEqualGUID and IsEqualPropertyKey 2014-12-16 03:29:51 -08:00
internal.h audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
pull.c audio/out/pull: avoid deadlock if audio callback stops 2014-11-09 15:23:40 +01:00
push.c audio/out/push: fix off-by-one error 2014-11-21 03:50:57 +01:00