On Wed, 04 Jul 2018 17:11:17 +0200, Raphaël Dingé wrote: > > > 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 You applied my patch, right? Otherwise the xrun injection won't trigger the xrun tracing event by itself, just calling snd_pcm_stop(). Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel