[pulseaudio-discuss] [RFC PATCH 3/3] alsa: Add a generic fallback mapping

Alexander E. Patrakov patrakov at gmail.com
Fri Jul 25 21:47:17 PDT 2014


25.07.2014 19:31, David Henningsson wrote:
> In case all other profiles fail, try this fallback mapping as well.
> It allows the device to specify the channel count, so it can be used
> for devices that only supports being opened in multichannel mode.
>
> Signed-off-by: David Henningsson <david.henningsson at canonical.com>
> ---
>   src/modules/alsa/alsa-mixer.c                    |  1 +
>   src/modules/alsa/mixer/profile-sets/default.conf | 11 +++++++++--
>   2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
> index 57d56c0..ed4b75b 100644
> --- a/src/modules/alsa/alsa-mixer.c
> +++ b/src/modules/alsa/alsa-mixer.c
> @@ -3861,6 +3861,7 @@ static int mapping_verify(pa_alsa_mapping *m, const pa_channel_map *bonus) {
>       static const struct description_map well_known_descriptions[] = {
>           { "analog-mono",            N_("Analog Mono") },
>           { "analog-stereo",          N_("Analog Stereo") },
> +        { "generic",                N_("Generic") },
>           { "analog-surround-21",     N_("Analog Surround 2.1") },
>           { "analog-surround-30",     N_("Analog Surround 3.0") },
>           { "analog-surround-31",     N_("Analog Surround 3.1") },
> diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf
> index a481efa..978551b 100644
> --- a/src/modules/alsa/mixer/profile-sets/default.conf
> +++ b/src/modules/alsa/mixer/profile-sets/default.conf
> @@ -107,7 +107,7 @@ device-strings = hw:%f
>   channel-map = mono
>   paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono
>   paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headset-mic
> -priority = 1
> +priority = 2
>   
>   [Mapping analog-stereo]
>   device-strings = front:%f hw:%f
> @@ -165,7 +165,7 @@ direction = output
>   # device name standardized in alsa.
>   device-strings = hw:%f
>   channel-map = aux0,aux1,aux2,aux3
> -priority = 1
> +priority = 2
>   direction = input

I don't quite understand why the above priority changes are needed. If I 
understand the previous patches correctly, priority order only matters 
when comparing two non-fallback mappings or two fallback mappings.

Other than that, the series looks OK as a stopgap solution for such 
essentially-multichannel cards until ALSA gains an "upmix if needed, but 
don't downmix" flag in itself.

>   
>   [Mapping iec958-stereo]
> @@ -203,6 +203,13 @@ priority = 4
>   direction = output
>   paths-output = hdmi-output-0
>   
> +[Mapping generic]
> +device-strings = hw:%f
> +channel-map = left,right
> +exact-channels = false
> +fallback = yes
> +priority = 1
> +
>   ; An example for defining multiple-sink profiles
>   #[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo]
>   #description = Foobar



More information about the pulseaudio-discuss mailing list