First of all, Hello eberybody!
I have recently written and ALSA driver for my audio capture card and I have problems with PULSEAUDIO recognising it as a capture source.
Here are some facts and hopefully one of you experienced this in the past and will be able to help:
(1) The capture card has 2 audio inputs (stereo): one HDMI and one analog. I can capture sound from both of them when using ALSA directly.
(2) When I use the PULSEAUDIO command to list audio capture sources:
$ pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2
The output shows the following, which are on-board devices and do not use my ALSA driver:
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
alsa_input.pci-0000_00_1b.0.analog-stereo
Therefore, it can be seen from the above that my devices are not listed as capture sources.
(3) When I use:
$ pactl list
The output, among others, shows 'my' ALSA cards. Please see below 2 exemplary outputs: (a) for an on-board card (which does not use my driver) and (b) for the card which uses my driver:
(a) On-board card:
Card #0
Name: alsa_card.pci-0000_00_1b.0
Driver: module-alsa-card.c
Owner Module: 4
Properties:
alsa.card = "10"
alsa.card_name = "HDA Intel PCH"
alsa.long_card_name = "HDA Intel PCH at 0xfbf20000 irq 67"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:00:1b.0"
sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card10"
device.bus = "pci"
device.vendor.id = "8086"
device.vendor.name = "Intel Corporation"
device.product.name = "6 Series/C200 Series Chipset Family High Definition Audio Controller"
device.form_factor = "internal"
device.string = "10"
device.description = "Built-in Audio"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
Profiles:
output:analog-stereo: Analogue Stereo Output (sinks: 1, sources: 0, priority. 6000)
output:analog-stereo+input:analog-stereo: Analogue Stereo Duplex (sinks: 1, sources: 1, priority. 6060)
output:analog-surround-40: Analogue Surround 4.0 Output (sinks: 1, sources: 0, priority. 700)
output:analog-surround-40+input:analog-stereo: Analogue Surround 4.0 Output + Analogue Stereo Input (sinks: 1, sources: 1, priority. 760)
output:analog-surround-41: Analogue Surround 4.1 Output (sinks: 1, sources: 0, priority. 800)
output:analog-surround-41+input:analog-stereo: Analogue Surround 4.1 Output + Analogue Stereo Input (sinks: 1, sources: 1, priority. 860)
output:analog-surround-50: Analogue Surround 5.0 Output (sinks: 1, sources: 0, priority. 700)
output:analog-surround-50+input:analog-stereo: Analogue Surround 5.0 Output + Analogue Stereo Input (sinks: 1, sources: 1, priority. 760)
output:analog-surround-51: Analogue Surround 5.1 Output (sinks: 1, sources: 0, priority. 800)
output:analog-surround-51+input:analog-stereo: Analogue Surround 5.1 Output + Analogue Stereo Input (sinks: 1, sources: 1, priority. 860)
input:analog-stereo: Analogue Stereo Input (sinks: 0, sources: 1, priority. 60)
off: Off (sinks: 0, sources: 0, priority. 0)
Active Profile: output:analog-stereo+input:analog-stereo
Ports:
analog-output: Analogue Output (priority 9900)
Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40, output:analog-surround-40+input:analog-stereo, output:analog-surround-41, output:analog-surround-41+input:analog-stereo, output:analog-surround-50, output:analog-surround-50+input:analog-stereo, output:analog-surround-51, output:analog-surround-51+input:analog-stereo
analog-input-microphone: Microphone (priority 8700)
Part of profile(s): output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:analog-surround-41+input:analog-stereo, output:analog-surround-50+input:analog-stereo, output:analog-surround-51+input:analog-stereo, input:analog-stereo
analog-input-linein: Line In (priority 8100)
Part of profile(s): output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:analog-surround-41+input:analog-stereo, output:analog-surround-50+input:analog-stereo, output:analog-surround-51+input:analog-stereo, input:analog-stereo
(b) One of my cards (I have more than 1 card):
Card #11
Name: alsa_card.1
Driver: module-alsa-card.c
Owner Module: 31
Properties:
alsa.card = "1"
alsa.card_name = "OEM_VISIONRGB_AV"
alsa.long_card_name = "OEM_VISIONRGB_AV Analog DGC dada"
device.bus_path = "/devices/virtual/sound/card1"
sysfs.path = "/devices/virtual/sound/card1"
device.string = "1"
device.description = "OEM_VISIONRGB_AV"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card"
Profiles:
input:analog-stereo: Analogue Stereo Input (sinks: 0, sources: 1, priority. 60)
off: Off (sinks: 0, sources: 0, priority. 0)
Active Profile: input:analog-stereo
Ports:
analog-input: Analogue Input (priority 10000)
Part of profile(s): input:analog-stereo
Notice that the "Name" fields are much different in their form between my card and the on-board one. I tested that:
Please note that my ALSA driver is still lacking some elements, for example, mixer element is not included and I presume it may be the reason for the lack of cooperation between ALSA and PULSEAUDIO. From your experience, do you know if mixer element is necessary for PULSEAUDIO to qualify ALSA devices as capture sources.
I do apologise for this verbose message. Nonetheless, does the above ring a bell?
Thanks a lot for your help and suggestions,
Przemek