From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: Problems with snd_pcm_status_get_delay() Date: Tue, 08 Oct 2002 18:44:57 +0200 Sender: alsa-devel-admin@lists.sourceforge.net Message-ID: References: <3DA30704.3050000@superbug.demon.co.uk> Mime-Version: 1.0 (generated by SEMI 1.14.4 - "Hosorogi") Content-Type: text/plain; charset=US-ASCII Return-path: In-Reply-To: <3DA30704.3050000@superbug.demon.co.uk> Errors-To: alsa-devel-admin@lists.sourceforge.net List-Help: List-Post: List-Subscribe: , List-Unsubscribe: , List-Archive: To: James Courtier-Dutton Cc: alsa-devel@lists.sourceforge.net List-Id: alsa-devel@alsa-project.org 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