[CentOS] Linux Sound Architecture (Updated)

Tue Mar 11 22:11:11 UTC 2008
Ignacio Vazquez-Abrams <ivazqueznet at gmail.com>

On Tue, 2008-03-11 at 16:14 -0400, Ross S. W. Walker wrote:
> Ignacio Vazquez-Abrams wrote:
> > 
> > On Tue, 2008-03-11 at 11:59 -0400, Ross S. W. Walker wrote:
> > > I have been working a while trying to get a big picture of how Linux
> > > handles sound processing and after much work I have put together this
> > > little representation of what I have learned.
> > > 
> > > Please send me any additional comments or components that I may have
> > > missed.
> > 
> > Some corrections (PulseAudio contains an ALSA module that can redirect
> > audio back into PA):
> 
> ALSA provides an ALSA driver in it's plugins to send audio to a
> PulseAudio server, so that part is pure ALSA. I mean sure it
> uses PulseAudio's protocol to send over the network, but as far
> as ALSA is concerned it's just another ALSA kernel driver for
> communicating with sound hardare. The PulseAudio server by
> itself is of course a pure sound server.
> 
> Having said that, I don't believe that the ALSA driver for
> PulseAudio counts as yet another interface.

No, but it does place part of ALSA above (in front of?) part of PA.
(JACK and OSS also have similar ALSA plugins, although I don't see the
point of the OSS module)

> Also sound servers can and do use third party API products such
> as GStreamer.

"Can" far, far more than "do". The only concrete evidence of that I was
able to find were the PA GStreamer and JACK plugins. I was unable to
find any evidence that ESD or aRts use third-party APIs, only ALSA and
OSS. (Incidentally, I found that NAS can only use OSS. Yet another
reason for it to die.)

> Often GStreamer provides those plugins on behalf
> of the sound server (cause no one else wants to), but the
> plugin is still part of the sound server and as far as the sound
> server is concerned it is just sending audio directly to the
> hardware API.

It's just sending audio, period. It's not at all concerned with where it
ends up, just that it moves to the next stage.

> GStreamer/Phonon also have plugins for
> communicating with sound servers as well as HW APIs such as
> ALSA or OSS. When diagramming these third party APIs things
> can ugly pretty darn fast.

Indeed. And I also think that an ASCII diagram is no longer sufficient
for showing the details.

-- 
Ignacio Vazquez-Abrams <ivazqueznet at gmail.com>

PLEASE don't CC me; I'm already subscribed
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.centos.org/pipermail/centos/attachments/20080311/3b96ab8e/attachment-0005.sig>