[alsa-devel] right way to enumerate pcm devices

Jaroslav Kysela perex at perex.cz
Wed Feb 13 15:38:04 CET 2019


Dne 13. 02. 19 v 15:13 sylvain.bertrand at gmail.com napsal(a):
> On Wed, Feb 13, 2019 at 07:25:13AM +0100, Takashi Iwai wrote:
>> It's only the matter of alsa-lib card config.  Just due to heuristic
>> reason, the secondary device is assigned as iec958 as default.  There
>> are explicit whitelist setup in alsa-lib/src/conf/cards/USB-Audio.conf
>> for the card that behave differently.  You'd need to adjust
>> accordingly.
> 
> Tell me if I did understand you right:
> 
> I cannot trust the hint system to select proper pcm devices for, let's say the
> mic of my USB cam.

As Takashi noted, we can fix this for your device in the alsa-lib's
configuration file to not show the extra invalid surround devices, but
it does not mean that the other USB devices are not affected. We are
always a little bit behind the hardware. The library does not do any
probing for the available channels when the devices are enumerated.

> I would have to ignore "mostly" the configuration system (the major exception
> would be the default pcm device) and build myself the pcm devices from the info
> I can get from the hardware device (hardware mixing, input and/or output,
> number of channels/etc).
> 
> I would have to cherry pick configuration defined pcm devices for specific
> modes, like surroundX, only if the "basic user" explicitely requests such modes.
> 
> The advanced user should override the default pcm device if he/she wants to
> do/fix tricky sound thingies.
> 
> ----
> 
> To summarize:
> 	- show always the pcm default
> 	- build custom pcm devices based on hardware info, and show them
> 	- for "special" modes, likes surroundX, show the related configuration
> 	  defined pcm devices only if the "basic" user want to fool around with
> 	  them.

This is not optimal. It would be better to settle something in the one
place. I would start to fix the blacklists in
/usr/share/alsa/cards/USB-Audio.conf for your device (and post the
alsa-lib's patch here).

Perhaps the USB driver might forward also more hints/parameters about
the device characteristics to improve this hint system.

					Jaroslav

-- 
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list