sample_move_d32u24_sS() converts into samples like 0x00****** but S32
format expects samples like 0x********. Therefore it will not use the
full volume range when also using sample_move_d32u24_sS() for S32.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
This adds missing includes for alloca. The man page of alloca(3) states
that alloca.h should be #include'd to use alloca.
Also work around missing alloca.h header on Windows by adding a
compatibility module.
Closes: #197
According to the ALSA documentation, snd_pcm_readi() returns -ESTRPIPE
when a suspend event occured. But xrun_recovery() checks for -EAGAIN
instead.
If the ALSA client is connected to the ALSA loopback device, it leads to
an infinite loop in the client when the computer is resumed from sleep.
The client takes up to 99% of the CPU resources.
The problem is fixed by a proper error checking of snd_pcm_readi().
A word of caution however: on kernels prior to 3.8, it will trigger a
bug in the snd-aloop driver, and may lead to a kernel oops.
The kernel fix can be found there:
http://www.spinics.net/lists/stable-commits/msg23379.html
Signed-off-by: elboulangero <elboulangero@gmail.com>