On Fri, Jan 27, 2012 at 01:20:17AM +0100, Rafał Cieślak wrote:
However, it seems that somehow I cannot change it. If I try using snd_seq_set_client_pool_output(), this gives absolutely no effect, and does not seem to make any effect, the pool size stays at 500 (even though the function returns 0) (to check the pool size I look at /proc/asound/seq/clients, and it is always 500).
If you manage to fill a 500-event buffer, could that mean that you are sending events a long time ahead of their due time ?
In that case the solution is to keep events in application buffers until say half a second before they are really needed. In other words let the app do the rough timing, and ALSA the fine one.
It requires a bit more logic, but it's probably needed anyway - you can't expect kernel side ALSA to buffer e.g. a complete song.
Limiting the send-ahead time will also make the app more responsive in case you have to stop and/or reposition the stream.
Ciao,