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.
