[alsa-devel] Can't detect "XRUNs"
Raphaël Dingé
raphael.dinge at ohmforce.com
Wed Jul 4 17:11:17 CEST 2018
> I'm going back to the program to see if there is anything suspect.
So I got back to the program and put a bit more logging. I have new
results, but they are even more confusing.
Here is the part that writes to the buffer :
snd_pcm_wait(pcm, 1000 /* milliseconds */);
snd_pcm_sframes_t avail = snd_pcm_avail_update(pcm);
if (avail < 0)
{
std::cout << "snd_pcm_avail_update failed\n";
snd_pcm_recover (pcm, avail, 1);
}
snd_pcm_sframes_t nb_written = snd_pcm_writei(pcm, &buffer[0],
frames_per_buffer);
if (nb_written < 0) {
std::cout << "snd_pcm_writei failed\n";
snd_pcm_recover(pcm, nb_written, 1 /* silent */);
xrun_count++;
}
Not sure if this is the proper way, didn't write it myself, but looks
more or less legit.
When I launch the program, nothing is output to the console.
But! If I echo 1 > xrun_injection, then I have "snd_pcm_avail_update
failed" systematically.
However at the same time, no events are traces in
/sys/kernel/debug/tracing/trace
Then the program itself is always dropping audio. In /proc/kmsg I see
messages about lost interrupts and callback suppression.
Does it ring a bell?
I'm using kernel 4.17.2
http://kernel.org/pub/linux/kernel/v4.x/linux-4.17.2.tar.xz
With glibc 2.27
http://ftp.gnu.org/gnu/glibc/glibc-2.27.tar.bz2
With Alsa 1.1.6
http://www.mirrorservice.org/sites/ftp.alsa-project.org/pub/lib/alsa-lib-1.1.6.tar.bz2
Thanks,
Raphael
More information about the Alsa-devel
mailing list