[pulseaudio-discuss] These ideas I've had for the better part of a month, forgive me for there length.

Mike Mestnik mmestnik at nagios.com
Sat Aug 7 10:47:52 PDT 2010

There is a cause to add several stream types to pulse audio for the
support of all the hardware's features.  Current stream types can be
described by ~3 dimensions (channels, bits, bit-format, rate).

The first that would be necessary is raw.  That is pre-mixed information
that can't be further mixed.  Each stream is to be given a priority
~0-15 where default for existing streams is 7 and raw streams default to 11.

This makes pre-mixed sounds cause all other sounds to be silenced so
they can be played.  The effect is the ability to play videos(ac3/dts)
while other applications are emitting data, no need to close
browser/flash.  The first optional extension is the ability to indicate
to sources that they will not be played in the form of a warning
returned to data passed and a signal indicating that play can continue.

A notable improvement over the current ALSA-passthrough is the addition
of framing.  Currently pausing and restarting a pre-mixed stream causes
loud pops and clicks, this is undesirable and as such pulse audio can
offer a solution.

The definition of atoms(the smallest part that can be presented to
hardware as a whole).  This gives several parameters...  Variable sized
atoms(yes/no), Time|duration of packet(*taken from size, constant,
variable).  This is going to add information to the pre-mixed stream, in
the case of ac3/dts the size of each atom would be included as
out-of-band information as well as perhaps the wall-clock length, though
I believe that ac3/dts streams are already a set bits/sec.

The next stream type should be a pulse audio internal type(s) used for
the mixing of mp3/ac3 and perhaps dts streams.  It's my understanding
that ac3 uses vectors to describe 6 channels of sound much like a 2ch
mp3.  If I'm not mistaken these vectors can be combined mathematically
as-is to represent the combination of two sounds.  This would be a great
achivement over any uncompress/combine/recompress senerio.

It's absolutely true that an ac3 stream can not be mixed with any other
stream, but it's false that a representation of that stream can not be
mixed.  These new stream types would be used to carry a representation
of the original ac3 stream in a format that pulse-audio can standardize
on and use...  Perhaps for now these representations would simply be 6ch
PCM.  Though in that case a strem type of ac3 would be necessary.

Mike Mestnik
Technical Team
Nagios Enterprises, LLC
Email:  mmestnik at nagios.com
Web:    www.nagios.com

More information about the pulseaudio-discuss mailing list