<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jun 13, 2013 at 1:35 AM, ssm <span dir="ltr"><<a href="mailto:salmin01010@gmail.com" target="_blank">salmin01010@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
Thanks for your reply. Actually, my focus is not on application development,<br>
rather I am trying to understand the audio data processing architecture, at<br>
which points the data get touched. Right now, I am pursuing the audio data<br>
mixing architecture. Can you please tell me which component<br>
(userspace/kernel) mixes/interleaves the audio streams if I configure the<br>
device to stream from 2 channels?<br></blockquote><div><br></div><div>possibly none. ALSA is sufficiently flexible that there are multiple answers to this question. you also haven't defined whether you are talking about playback or recording.<br>
<br></div><div>in general, ALSA does very little in the kernel, and almost everything in libasound (user space).<br><br></div><div>in addition, your USB example is also slightly misleading, because of the limitations of the USB architecture. if you looked at the data flow for a PCI device, you'd find an entirely different data flow with potentially no copying of the data.<br>
</div><div> <br></div></div></div></div>