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@xxxxxxxxxxx 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@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel