I’m using a USB audio interface under Ubuntu/ALSA. It has 6 input channels and 10 output channels. I am having problems getting input working correctly with this device with gstreamer. I believe that this has to do with the bitmask that gstreamer assumes for the input.
When I look at debug output I see that it is using channel-mask=(bitmask)0x3f. This is certainly correct for, e.g. 7.1 audio, however, I think this is incorrect for my audio interface. I know that the output channel bitmask for this device is 0x000, and I need to set all output channels to channel-mask=-3 when I sink my pipeline to this device. I assume that the input (alsasrc) bitmask also needs to be set to 0x000, however, I have not been able to find a way to do this. I am using Gstreamer version 1.8.3
When I tell gstreamer to use the audio interface as the source for the pipeline all I get it a kind of “ground loop hum” type of noise. If I use a separate program to get data from the device and send it to the ALSA loopback, and then use the loopback as gstreamer alsasrc everything works fine. In both cases the pipeline runs without error. The problem is definitely within gstreamer and is very likely channel-mask related.
Any advice on how to solve this problem under gst-launch is appreciated.