• Max Kellermann's avatar
    output/alsa: non-blocking mode · b1c7649e
    Max Kellermann authored
    Use SND_PCM_NONBLOCK, and perform all snd_pcm_writei() calls in the
    IOThread.  Use a lockless queue to copy data from the OutputThread to
    the IOThread.
    
    This rather major change aims to improve MPD's internal latency.  All
    waits are now under MPD's control, instead of blocking inside
    libasound2.
    
    As a side effect, an output's filter is now decoupled from the actual
    device I/O, which solves a major latency problem with the conversion
    filter on slow CPUs and small period buffers.  See:
    
     https://bugs.musicpd.org/view.php?id=3900
    b1c7649e
Name
Last commit
Last update
android Loading commit data...
doc Loading commit data...
m4 Loading commit data...
python/build Loading commit data...
scripts Loading commit data...
src Loading commit data...
systemd Loading commit data...
test Loading commit data...
win32 Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
INSTALL Loading commit data...
Makefile.am Loading commit data...
NEWS Loading commit data...
README.md Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
mpd.svg Loading commit data...
valgrind.suppressions Loading commit data...