Hi Clemens,
thank you. In blocking-mode it works. Then i will follow the non-blocking mode. I modified first the callback:
void playback_callback (snd_pcm_sframes_t nframes) { snd_pcm_sframes_t avail;
avail = snd_pcm_avail_update(handle); while (avail >= period_size) { snd_pcm_writei(handle, buffer_alsa , nframes); avail = snd_pcm_avail_update(handle); std::cout << " Avail: " << avail << std::endl; } }
... called it at the end: playback_callback(period_size);
and I get (for "avail"):
Frames: 6894888 buffer_size (frames): 2048 buffer_time (frames): 46439 period_size (frames): 256 period_time (usec): 5804 periods (count): 8 Avail: 1282 Avail: 1027 Avail: 772 Avail: 517 Avail: 261 Avail: 6
the same mistake...
Regards Thomas
tsepp2001@t-online.de wrote:
Am I right to use async mode
No. It is not supported by all devices, and almost impossible to use correctly.
to get lowest latency times
Latency depends on the buffer size, and how fast your code can react to the notification that some space is available.
and using pause/play/stop?
You probably want to use non-blocking mode.
Regards, Clemens _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel