[pulseaudio-discuss] [PATCH 0/2] Enable 2.1 surround over the channel mapping API

David Henningsson david.henningsson at canonical.com
Tue Oct 22 22:13:54 CEST 2013

These two patches make sense to apply individually, but also complement each
other as the channel mapping API can be used to check whether the four channel
output is actually 2.1 or 4.0.

I think the 2.1 patch is safe to apply right now, but I'd like to test the
channel map API patch more first.
Also, while the channel map API patch is useful as it is, there is at least
room for these improvements:
 1) In case ALSA supports all the channels PA wants to output to, but only in
    another order than PA would like it to be, PA should adjust its channel map
    order accordingly. This is probably easy to do, I just haven't done it. So 
    currently only the other way around is supported, i e, making ALSA adjust to
    PA's preferred order.
 2) ALSA's "paired" mode of channel map is treated as "fixed" mode.
 3) In case a device does not support the channel map API at all (no channel maps
    returned from the query_chmap call), there is no use doing the set_chmap call

Note: on one device I tested on, a USB headset, the mono channel map was not
given by the kernel. As a result, mono output profile was no longer available.
This should be fixed in the kernel.

David Henningsson (2):
  alsa: Use alsa-lib's channel mapping API to select the best channel
  alsa: Add surround 2.1 profile

 src/modules/alsa/alsa-sink.c                       |   6 +
 src/modules/alsa/alsa-source.c                     |   6 +
 src/modules/alsa/alsa-util.c                       | 142 +++++++++++++++++++++
 src/modules/alsa/alsa-util.h                       |   2 +
 src/modules/alsa/mixer/profile-sets/default.conf   |   7 +
 .../alsa/mixer/profile-sets/extra-hdmi.conf        |   7 +
 .../profile-sets/force-speaker-and-int-mic.conf    |   7 +
 .../alsa/mixer/profile-sets/force-speaker.conf     |   7 +
 8 files changed, 184 insertions(+)


More information about the pulseaudio-discuss mailing list