On Mon, 13 Mar 2006, Tobias Scharnberg wrote:
In my main loop I use SNDCTL_DSP_GETOSPACE to poll
the buffer.
Whenever it shows free fragments, I write more data to the card. What
I experience is that playback is too fast. I can make it slower by
reducing the buffer-size or by setting a very high usleep value so
that all
fragments practically stay free.
Did you think about using select to check for free space in your
device instead of this GETOSPACE method?
The polling is not a good way to do it, I think.
Maybe you also have the card in non-blocking mode (or the opposite).
If you change that, myabe also...
Try to avoid the polling method, IMHO.
Take care,
Cedric.