[pulseaudio-discuss] [PATCH] alsa-mixer: Take channel mask of volume element into account when finding a subset path

David Henningsson david.henningsson at canonical.com
Wed Oct 19 12:24:40 PDT 2011


On 10/19/2011 08:47 PM, Maarten Bosmans wrote:
> The patch looks simple, but I'm not entirely sure the concept is
> sound. Please review.
>
> The problem I'm trying to solve is that analog-output-mono is (in my
> view incorrectly) seen as a subset of analog-output-lfe-on-mono.
> Relevant debug output:
>
> D: [lt-pulseaudio] alsa-mixer.c: Path analog-output-mono (Analoge
> mono-uitvoer), direction=1, priority=50, probed=yes, supported=yes,
> has_mute=yes, has_volume=yes, has_dB=yes, min_volume=0, max_volume=31,
> min_dB=-81, max_dB=12
> D: [lt-pulseaudio] alsa-mixer.c: Element Master, direction=1,
> switch=2, volume=2, volume_limit=-1, enumeration=0, required=0,
> required_any=0, required_absent=0, mask=0x6, n_channels=2,
> override_map=no
> D: [lt-pulseaudio] alsa-mixer.c: Element Master Mono, direction=1,
> switch=1, volume=1, volume_limit=-1, enumeration=0, required=4,
> required_any=0, required_absent=0, mask=0x7ffffffffffff, n_channels=1,
> override_map=yes
> D: [lt-pulseaudio] alsa-mixer.c: Element PCM, direction=1, switch=1,
> volume=1, volume_limit=-1, enumeration=0, required=0, required_any=0,
> required_absent=0, mask=0x3600000000f66, n_channels=2,
> override_map=yes
>
> D: [lt-pulseaudio] alsa-mixer.c: Path analog-output-lfe-on-mono
> (Analoge output (LFE)), direction=1, priority=40, probed=yes,
> supported=yes, has_mute=yes, has_volume=yes, has_dB=yes, min_volume=0,
> max_volume=31, min_dB=-81, max_dB=12
> D: [lt-pulseaudio] alsa-mixer.c: Element Master, direction=1,
> switch=1, volume=1, volume_limit=-1, enumeration=0, required=0,
> required_any=0, required_absent=0, mask=0x3600000000f66, n_channels=2,
> override_map=yes
> D: [lt-pulseaudio] alsa-mixer.c: Element Master Mono, direction=1,
> switch=1, volume=1, volume_limit=-1, enumeration=0, required=4,
> required_any=0, required_absent=0, mask=0x80, n_channels=1,
> override_map=yes
> D: [lt-pulseaudio] alsa-mixer.c: Element PCM, direction=1, switch=1,
> volume=1, volume_limit=-1, enumeration=0, required=0, required_any=0,
> required_absent=0, mask=0x3600000000f66, n_channels=2,
> override_map=yes
>
> D: [lt-pulseaudio] alsa-mixer.c: Removing path 'analog-output-mono' as
> it is a subset of 'analog-output-lfe-on-mono'.
>
> Is it correct to think that analog-output-mono should not be a subset
> of analog-output-lfe-on-mono? If it is, the patch fixes this.

Hmm, a while ago I ran into the same thing, filed bug 
https://bugs.freedesktop.org/show_bug.cgi?id=40910 and forgot about it. 
I agree, analog-output-lfe-on-mono shouldn't be a subset of 
analog-output-mono, but I'm not sure how these merge masks and 
override-maps work so I can't tell if your fix is right or wrong (at 
least not without looking more deeply into it).

-- 
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic


More information about the pulseaudio-discuss mailing list