At Wed, 09 Oct 2002 02:25:40 +1000, James Courtier-Dutton wrote: > > Hello > > Can someone please explain to me the use of snd_pcm_status_get_delay() > > If a buffer size is 16384, and avail=6384, should delay therefore equil > 10000 ? In all cases ?
no, the current implementation is the state-sensitive, as you mentioned below : > I have found that in SND_PCM_STATE_RUNNING, delay = buffer_size - avail. > I have found that in SND_PCM_STATE_PREPARED, delay = 0 delay=0 gets back at all states except RUNNING (and DRAINING on playback). > This causes problems. As one fills the buffer in SND_PCM_STATE_PREPARED > , delay stays at 0, but when the buffer fills enough and moves to state > SND_PCM_STATE_RUNNING, the delay value suddenly jumps to delay = > buffer_size - avail. > > This causes problems with applications that need "delay" to be as > accurate as possible at all times. > Is this a bug in alsa09, or should I ignore "delay" and just use the > "buffer_size - avail" value. snd_pcm_status_get_avail() returns the available space at any state. so you can use this and calcuate "buffer_size - avail" manually instead of get_delay(). ciao, Takashi ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel
