Re: latency.c and delay related questions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 20 Jun 2006, Christophe Osuna wrote:

> The current delay with "latency" is equal to a minimum (that depends
> on the sound card) plus *two* times the period time.  If I disable

Yes, it's correct. Basically, you cannot avoid double buffering, so the 
total latency is:

1) one capture period
2) one playback period (actually being played)
3) moved captured period to playback buffer (not counted)

So the latency should be 2 * period plus a hw latency as you noted. 
Everything is correct. Of course, you may get better latencies if you run 
"busy loop" on not-loaded system and immediately put captured data to 
playback stream, but it's not a correct behaviour in *nix.

> * why is snd_pcm_link() mandatory? (no sound otherwise)

It links playback and capture streams so only one start() is called. On 
hardware which supports hardware syncing, the DMA operation is started at 
same time for both stream.

> * why two buffers of silence and not just one?

You must wait one period to get data from the capture direction and then 
you have exactly one period time to put these data to the playback. As I 
said, you can get better results with busy-loop but it's bad 
implementation (but if you have a spare dedicated machine without other 
tasks, it might be an option).

						Jaroslav

-----
Jaroslav Kysela <perex@xxxxxxx>
Linux Kernel Sound Maintainer
ALSA Project, SUSE Labs


_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux