mirror of
https://github.com/mpv-player/mpv
synced 2025-01-18 13:14:36 +00:00
5929dc458f
Until now, we've always calculated a timeout based on a heuristic when to refill the audio buffers. Allow AOs to do it completely event-based by providing wait and wakeup callbacks. This also shuffles around the heuristic used for other AOs, and there is a minor possibility that behavior slightly changes in real-world cases. But in general it should be much more robust now. ao_pulse.c now makes use of event-based waiting. It already did before, but the code for time-based waiting was also involved. This commit also removes one awkward artifact of the PulseAudio API out of the generic code: the callback asking for more data can be reentrant, and thus requires a separate lock for waiting (or a recursive mutex). |
||
---|---|---|
.. | ||
ao_alsa.c | ||
ao_coreaudio_properties.c | ||
ao_coreaudio_properties.h | ||
ao_coreaudio_utils.c | ||
ao_coreaudio_utils.h | ||
ao_coreaudio.c | ||
ao_dsound.c | ||
ao_jack.c | ||
ao_lavc.c | ||
ao_null.c | ||
ao_openal.c | ||
ao_oss.c | ||
ao_pcm.c | ||
ao_portaudio.c | ||
ao_pulse.c | ||
ao_rsound.c | ||
ao_sdl.c | ||
ao_sndio.c | ||
ao_wasapi_utils.c | ||
ao_wasapi_utils.h | ||
ao_wasapi.c | ||
ao_wasapi.h | ||
ao.c | ||
ao.h | ||
internal.h | ||
pull.c | ||
push.c |