[gst-devel] Linux audio is a mess? [was: JACK and GStreamer, from the horse's mouth]

Lennart Poettering mztfg at 0pointer.de
Thu Nov 30 16:40:53 CET 2006


On Wed, 29.11.06 14:49, Ronald S. Bultje (rbultje at ronald.bitfreak.net) wrote:

Hi!

> > maybe we should try to get all interested people together at a more,
> > ...humm... popular conference such as linux.conf.au 2007. Or perhaps someone
> > should organize as seperate "The grand cleanup-the-linux-audio-jumble
> > summit".
> 
> You guys are making far too big a problem out of this.

It's not entirely clear what you mean by "this".

> It's fixed. The solution is ALSA. ALSA handles devices and sound servers
> through dmix. The API is apparently push-based, since that's what their
> API docs say. You don't like dmix? Fix it. You don't like the push-model?
> Sucks. But nothing you can do about it.

In a way, PA is just a way to fix "dmix". PA can be started on-demand
from libasound, which makes it behave much like dmix, a very powerful
dmix.

ALSA is not "the solution" for all problems we currently have in Linux
multimedia. Why? Because it doesn't provide compatibility with OSS,
with ESD and what not. It's just one API. And there are others, which
are unlikely to go away, which however are incompatible with
ALSA. 

Currently, you have to shut down all ALSA apps, if you want to run an
OSS app. Currently, you have to shutdown all ALSA and OSS apps if you
want to use JACK or any other software where latency is an issue
(because you have to turn of dmix for that). If you want to run KDE
and Gnome at the same time, you have to run, ALSA, esd, and arts at
the same time. And this list goes on and on.

(yes there are kludges like aoss, esddsp and whatever, but they are
kludges - no real solutions)

That's the mess I want to see cleaned up. Certainly, it would be nice
if suddenly all apps would use ALSA and nothing else, and if ALSA dmix
would be perfect. However, that is not going to happen. 

Currently it is just *impossible* to run a desktop where all Linux
audio applications are compatible with each other, can be run
simultaneously, work well doing that and don't inhibit others from
running cleanly. That's the mess that needs to be fixed. 

Most Unix programs have been programmed under the assumption that they
talk directly to the hardware. That was traditionally OK, but nowadays
this becomes a problem: you might want to stream its output to other
apps. You might want to adjust the volume of each playback stream
individually. You might want to reroute audio output from one output
device to another one while is playing. You might want to output audio
on more than a single device at the same time. You might want to send
audio to a different machine on the network. You might want to
multicast audio on your net. However, that all is not possible with
just ALSA.

> What use case is jack ("pro audio"? - come on, it's all or nothing) or
> pulseaudio ("the non-linux desktop unix/gnome user"?) trying to
> address?

An incomprehensive list of use cases for PulseAudio ist included in this Ubuntu spec:

https://wiki.ubuntu.com/PulseAudio

PA is not just another sound server that blocks your audio device and
annoys the hell out of you. It's more like an application server for
audio on the desktop. In some way it's the counterpart of the new
userspace audio system featured in Windows Vista.

> You guys seem to be fighting a war that is not going on. I don't

I tend to not fight in any wars. I prefer to just take part in discussions.

> understand why RedHat would hire someone to ununbreak this and introduce a
> new audio sound server. If networking is really the only thing, then
> please just get off your asses and introduce something for that in ALSA so
> we can all sleap peacefully and hack on relevant things. It's not worth
> doing the fight again.

I am surprised that you take part on this discussion with such strong
positions if you don't have the slightest idea what JACK, or what PA
can do for you.

No, it's not just networking. It's actually world peace I am
interested in.

Sleep peacefully,
      Lennart

-- 
Lennart Poettering; lennart [at] poettering [dot] net
ICQ# 11060553; GPG 0x1A015CC4; http://0pointer.net/lennart/




More information about the gstreamer-devel mailing list