mirror of
https://github.com/mpv-player/mpv
synced 2024-12-17 20:34:58 +00:00
346c687d5a
One strange issue is that we apparently can't stop the audio API on audio reset (ao_driver.reset). We could use SDL_PauseAudio, but that doesn't specify whether remaining audio is dropped. We also could use SDL_LockAudio, but holding that over a long time will probably be bad, and it probably doesn't drop audio. This means we simply play silence after a reset, instead of stopping the callback completely. (The existing code ran into an underrun in this situation.) The delay estimation works about the same. We simply assume that the callback is locked to audio timing (like ao_jack), and that 1 callback corresponds to 1 period. It seems this (removed) code fragment assumes there 1 one period size delay: // delay subcomponent: remaining audio from the next played buffer, as // provided by the callback buffer_interval += callback_interval; so we explicitly do that too. |
||
---|---|---|
.. | ||
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.c | ||
ao.c | ||
ao.h | ||
internal.h | ||
pull.c | ||
push.c |