GNOME Bugzilla – Bug 346326
alsasrc doesn't support many high end sound cards due to channel and caps restrictions
Last modified: 2006-07-02 11:13:46 UTC
As far as I can tell the problems arise in the following functions (testing with a Delta 44 sound card): gst_alsa_detect_formats: Returns EMPTY Caps. This is due to the template caps only supporting widths of 8 or 16. The Delta 44 requires 32 bit. gst_alsa_detect_channels: GST_ALSA_MAX_CHANNELS is limited to 8. The minimum (and maximum) required by the Delta 44 is 12 channels. There's also no check to see if the minimum is greater than GST_ALSA_MAX_CHANNELS when setting the maximum to GST_ALSA_MAX_CHANNELS.
Created attachment 68230 [details] [review] Patch to gstalsa.c and gstalsasrc.c This is a rough patch which fixes the problem for me. In the long run I guess it'd be best to extend the range of channel_positions (and so raise the GST_ALSA_MAX_CHANNELS limit).
Although, I'm not sure limiting input by the number of channel positions necessarily makes sense, since they're often irrelevant. E.g. In the case of the Delta 44 they are simply 12 mono inputs (4 physical inputs handled in different ways).
Thanks for the patch! I've committed the alsasrc template caps bit with some modifications: - 32 bps should be the first set of caps, as the caps should be sorted by preference - if you bump the channels from [1,2] to [1,MAX] you should do that for 16bps and 8bps as well The rest is the same as bug #345188. I think that should be done a bit differently so that there is channel layout info in the caps (and if it is only 10x MONO) .. *** This bug has been marked as a duplicate of 345188 ***