IO streams sync

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

 



Lee Revell escribió:

>On Mon, 2006-06-19 at 18:17 +0200, alejandro wrote:
>  
>
>>Hello,
>>
>>Is there any document describing the ALSA components and functions?
>>Particularly the link between audio I/O and timers, in order to frame 
>>accurate sync multiple audio cards and video.
>>    
>>
>
>You probably want to be using JACK for this.  ALSA is just a low level
>HAL.  There are some patches floating around that add video capabilities
>("videojack").
>
>Lee
>
>  
>
James Courtier-Dutton escribió:

>alejandro wrote:
>
>>Hello,
>>
>>Is there any document describing the ALSA components and functions?
>>Particularly the link between audio I/O and timers, in order to frame 
>>accurate sync multiple audio cards and video.
>>
>>Thank you,
>>
>
>
>Alejandro,
>
>This is achieved using the snd_pcm_delay() function call.
>It gives you a measure of the number of samples between the current
>write pointer and the codec output.
>I.e. If you call snd_pcm_writei() now, it will be snd_pcm_delay() sample
>frames duration until the sample reach the speakers.
>So, from that you can accurately predict the exact time that a
>particular sample will reach the speakers, and therefore keep video in
>sync with it.
>This method is used in xine  (http://xinehq.de)
>See the audio_out.c loop.
>
>One then combines this with a resampler (as xine does), to adjust for
>clock speed differences between sound cards and the system timer, so
>this prevents sync drift.
>
>James
>
>
>

Lee and James,

It is not possible to sync two interfaces if we don't have timestamped
frame numbering (UST/MSC pairs). That means that we need to know, from a
common clock, the time at which a (numbered) frame will be output or was
input from a jack. Current time is not usable, because obviously there
is an unknown delay between function calls. If the system is not able to
produce timestamp/frame count pairs, there is no possibility to sync
audio streams or audio to video streams. I have looked at JACK, and the
situation is the same as with the ALSA API.

There are cards in the market with such timestamped operations supported
in the hardware and proprietary APIs, but is there a way to accessing
these operations from ALSA or JACK?

Thank you,

Alejandro


-- 
Alejandro Palencia
Open Studio Networks
+34 932054354





_______________________________________________
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