[pulseaudio-discuss] These ideas I've had for the better part of a month, forgive me for there length.
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.
Nagios Enterprises, LLC
Email: mmestnik at nagios.com
More information about the pulseaudio-discuss