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

Reply via email to