[alsa-devel] 答复: 答复: how to combine mutil-channel in playback or capture?
Daniel Mack
zonque at gmail.com
Fri Mar 22 11:19:06 CET 2013
Hi,
please don't top-post.
On 22.03.2013 11:11, Zhang wei wrote:
> But what is the mechanism to synchronize the data from different
> channel,and maybe different channel pairs use different DMA buffer.
You can try and see if syncing the individual, non-combinded PCM streams
helps:
http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html#pcm_sync
> So, I guess ,about the combine ,according to the alsa.conf,the alsa-lib
> opened the 4 devices(in my case) and got every channel paris’s data in
> turns in a monent. And then combine them together in order as one frame?
It will feed the input to all pcm streams. I don't really know if it
uses the sync mechanism on that, but I'd guess so.
> Because all the CODEC have the same clock timing,so the different DMA
> buffer stored the different channel data for the same moment. Alsa-lib
> obtains the same size data from each buffer in turns in once.repeat it
> again and again.
>
> Right?
Yes, and so the streams won't drift.
Why don't you just go ahead and try it? You should play back some wav
file with a test pattern which you can recognize on a DSO or IIS
analyzer on the bus. Then see if they are in sync.
Daniel
More information about the Alsa-devel
mailing list