mpv/audio/out
Kevin Mitchell 31539884c8 ao_wasapi: avoid under-run cascade in exclusive mode.
Don't wait for WASAPI to send another feed event if we detect an underfull
buffer. It seems that WASAPI doesn't always send extra feed events if
something causes rendering to fall behind. This causes every subsequent playback
buffer to under-run until playback is reset. The fix is simply to do a one-shot
double feed when this happens, which allows rendering to catch up with playback.

This was observed to happen when using MsgWaitForMultipleObjects to wait for the
feed event and toggling fullscreen with vo=opengl:backend=win. This commit
improves the behaviour in that specific case and more generally makes exclusive
mode significantly more robust.

This commit also moves the logic to avoid *over*filling the exclusive mode
buffer into thread_feed right next to the above described underfil logic.
2016-02-26 15:43:51 -08:00
..
ao.c ao: initial OpenSL ES support 2016-02-27 00:00:36 +01:00
ao.h audio: add option for falling back to ao_null 2015-10-05 19:12:23 +02:00
ao_alsa.c ao_alsa: filter audio device list 2015-11-24 19:47:58 +01:00
ao_coreaudio.c ao_coreaudio: replace fourcc_repr() 2016-01-11 20:25:00 +01:00
ao_coreaudio_chmap.c ao_coreaudio: fix 7.1(rear) channel mapping 2016-02-04 12:29:32 +01:00
ao_coreaudio_chmap.h ao_coreaudio_chmap: change license to LGPL 2016-01-19 21:21:49 +01:00
ao_coreaudio_exclusive.c ao_coreaudio_exclusive: check for maximum channel count 2015-10-26 16:00:24 +01:00
ao_coreaudio_properties.c mpv_talloc.h: rename from talloc.h 2016-01-11 21:05:55 +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: replace fourcc_repr() 2016-01-11 20:25:00 +01:00
ao_coreaudio_utils.h ao_coreaudio: replace fourcc_repr() 2016-01-11 20:25:00 +01:00
ao_jack.c ao_jack: remove "alsa" std-channel-layout choice 2015-11-07 15:20:34 +01:00
ao_lavc.c mpv_talloc.h: rename from talloc.h 2016-01-11 21:05:55 +01:00
ao_null.c mpv_talloc.h: rename from talloc.h 2016-01-11 21:05:55 +01:00
ao_openal.c ao_openal: wipe out global context on init error 2016-01-18 20:46:22 -08:00
ao_opensles.c ao: initial OpenSL ES support 2016-02-27 00:00:36 +01:00
ao_oss.c ao_oss: use new sample format determination code 2015-09-10 23:39:46 +02:00
ao_pcm.c mpv_talloc.h: rename from talloc.h 2016-01-11 21:05:55 +01:00
ao_pulse.c ao_pulse: attempt to fall back to an arbitrary sample format 2016-01-05 19:52:05 +01:00
ao_rsound.c mpv_talloc.h: rename from talloc.h 2016-01-11 21:05:55 +01:00
ao_sdl.c Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
ao_sndio.c ao_sndio: fix comment 2015-06-26 23:03:37 +02:00
ao_wasapi.c ao_wasapi: avoid under-run cascade in exclusive mode. 2016-02-26 15:43:51 -08:00
ao_wasapi.h ao_wasapi: add "wasapi" prefix to non-static find_deviceID function 2016-01-28 00:56:03 -08:00
ao_wasapi_changenotify.c ao_wasapi: correct check for specified device on default change 2016-01-28 00:55:58 -08:00
ao_wasapi_utils.c ao_wasapi: use SUCCEEDED/FAILED macros 2016-02-26 15:43:51 -08:00
internal.h ao: make better use of atomics 2015-05-11 23:27:41 +02:00
pull.c Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
push.c Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00