2010/2/11 Jaroslav Kysela <perex@xxxxxxxx> > On Thu, 11 Feb 2010, Clemens Ladisch wrote: > > >> Do you mean that PA only wake up once when configure sound card to use > two > >> periods per buffer ? > > > > When using two periods per buffer, ALSA tries to wake up PA two times. > > However, PA ignores the sound card's interrupts and is woken up by its > > own timer. > > PA can drive the wake-ups using avail_min sw parameter. If this value is > high enough, no userspace wake up is called, only interrupt is processed > and internal ring buffer pointers in the driver are updated. > > Jaroslav > Even using a high resolution timer , the application still cannot achieve latency better than the configured period size For USB case , the driver cannot give accurate hw pointer position , hw pointer increase in steps for the current implementation, (i.e. the graph is a stepping fuction if you plot the position of hardware pointer against time elasped ) . This mean that the wake up time cannot be calculated using as number of sample/rate since the fuction is not linear especially when using max buffer size , min period --> max period size is much greater than the watermark The glitch is most likely underrun, Refer to http://thread.gmane.org/gmane.linux.alsa.devel/60371/focus=60535 The delay value cannot be used for buffer filling, of course (also in standard - no-XRUN case - avail functions should be used). _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel