[pulseaudio-discuss] [PATCH v2] alsa: Add support for sound cards with 4-channel input.

Tanu Kaskinen tanuk at iki.fi
Mon May 7 19:09:36 PDT 2012


On Mon, 2012-05-07 at 13:02 -0700, David Henningsson wrote:
> 2012-05-07 03:47, Tanu Kaskinen skrev:
> > On Mon, 2012-05-07 at 09:46 +0530, Arun Raghavan wrote:
> >> On Tue, 2012-05-01 at 20:09 +0300, Tanu Kaskinen wrote:
> >>> Changes in v2:
> >>>   - Call the mapping a generic 4-channel input mapping
> >>>     instead of a 4-channel mic array mapping. The mapping
> >>>     will be used also by sound cards that have two stereo
> >>>     input jacks, so in those cases talking about mic arrays
> >>>     is wrong.
> >>>   - Added a comment about using the "hw" device name.
> >>>
> >>> BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=45813
> >>> ---
> >>>   src/modules/alsa/alsa-mixer.c                    |    1 +
> >>>   src/modules/alsa/mixer/profile-sets/default.conf |    9 +++++++++
> >>>   2 files changed, 10 insertions(+)
> >>>
> >>> diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
> >>> index abb12ee..8b54f75 100644
> >>> --- a/src/modules/alsa/alsa-mixer.c
> >>> +++ b/src/modules/alsa/alsa-mixer.c
> >>> @@ -3888,6 +3888,7 @@ static int mapping_verify(pa_alsa_mapping *m, const pa_channel_map *bonus) {
> >>>           { "analog-surround-61",     N_("Analog Surround 6.1") },
> >>>           { "analog-surround-70",     N_("Analog Surround 7.0") },
> >>>           { "analog-surround-71",     N_("Analog Surround 7.1") },
> >>> +        { "analog-4-channel-input", N_("Analog 4-channel Input") },
> >> Since this is limited to some specific hardware, shouldn't we set up
> >> udev rules instead of always probing?
> > "All devices supporting 4-channel input" isn't very specific hardware
> > IMHO,
> 
> I agree with Arun on this one.

In addition to the PS3 and Kinect devices and the webcams in bestbuy.com
that the reporter linked to, there's also at least Alseis iO4:
https://bugs.freedesktop.org/show_bug.cgi?id=49056

It's a device with two stereo inputs, so it's not a mic array. I don't
know how common those are, but iO4 probably isn't the only one.

> Besides, it is not obvious to me what the 
> channel mapping should be either, and couldn't that vary between 
> different 4-channel hardware? Is the aux* just causing all inputs to be 
> added for whatever the client wants to have...?

What do you mean by "added"? Mixed together? No, remixing is disabled
with aux channels (not sure about mono downmix, though). Not having any
remixing may perhaps cause other problems, but if that's the case, it's
then a separate bug. I really think the input channel maps should be
all-aux by default (possibly even with stereo mics, binaural equipment
being a rare exception), because the channel semantics don't make much
sense with most input devices (except with PA's monitor sources).

FWIW, there was a report in the bug comments saying that "recording
through PA works as expected" with this fix.

> > and I doubt udev can be used to query the amount of supported
> > channels.
> Hmm...that raises a thought I didn't consider before. Why don't we do 
> this in alsa-lib? If this varies between devices, we could create e g, 
> for 4-channel mic hardware A, we set up a alsa-lib ttable to have 
> "front" record two channels, the two left ones mixing in to the left and 
> the two right ones mixing into the right. Or in what way do we actually 
> use all four channels today?

I would be ok with this, especially if you make the patch :)

-- 
Tanu



More information about the pulseaudio-discuss mailing list