mirror of https://github.com/mpv-player/mpv
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. |
||
---|---|---|
.. | ||
ao.c | ||
ao.h | ||
ao_alsa.c | ||
ao_coreaudio.c | ||
ao_coreaudio_chmap.c | ||
ao_coreaudio_chmap.h | ||
ao_coreaudio_exclusive.c | ||
ao_coreaudio_properties.c | ||
ao_coreaudio_properties.h | ||
ao_coreaudio_utils.c | ||
ao_coreaudio_utils.h | ||
ao_jack.c | ||
ao_lavc.c | ||
ao_null.c | ||
ao_openal.c | ||
ao_opensles.c | ||
ao_oss.c | ||
ao_pcm.c | ||
ao_pulse.c | ||
ao_rsound.c | ||
ao_sdl.c | ||
ao_sndio.c | ||
ao_wasapi.c | ||
ao_wasapi.h | ||
ao_wasapi_changenotify.c | ||
ao_wasapi_utils.c | ||
internal.h | ||
pull.c | ||
push.c |