PULSEAUDIO não lista meu dispositivo de captura ALSA como uma fonte de captura

3

Escrevi recentemente um driver ALSA para minha placa de captura de áudio e tenho problemas com o reconhecimento do PulseAudio como fonte de captura.

Aqui estão alguns fatos e esperamos que um de vocês tenha experimentado isso no passado e possam ajudar:

  1. A placa de captura possui 2 entradas de áudio (estéreo): uma HDMI e uma analógica. Eu posso capturar o som de ambos ao usar o ALSA diretamente.

  2. Quando uso o comando pulseaudio para listar fontes de captura de áudio:

    $ pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2 
    

    A saída mostra o seguinte, que são dispositivos on-board e não usam o driver ALSA:

    alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
    alsa_input.pci-0000_00_1b.0.analog-stereo
    

    Portanto, pode ser visto acima que meus dispositivos não estão listados como fontes de captura.

  3. Quando eu uso:

    $ pactl list
    

    A saída, entre outros, mostra 'meu' cartões ALSA. Por favor, veja abaixo dois exemplos de resultados: (a) para um cartão de bordo (que não usa o meu driver) e (b) para o cartão que usa o meu driver:

    (a) Cartão de bordo:

        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) Um dos meus cartões (eu tenho mais de um cartão):

        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
    

    Observe que os campos "Nome" são muito diferentes em sua forma entre o meu cartão e o on-board. Eu testei isso:

    • a captura de alsa_card.pci-0000_00_1b.0 (placa on_board) funciona corretamente.

    • falha em capturar de alsa_card.1 (meu cartão).

Por favor, note que o meu driver ALSA ainda está faltando alguns elementos, por exemplo, elemento misturador não está incluído e eu presumo que pode ser a razão para a falta de cooperação entre a ALSA e PULSEAUDIO. Pela sua experiência, você sabe se o elemento do mixer é necessário para que o PULSEAUDIO qualifique os dispositivos ALSA como fontes de captura.

Peço desculpas por essa mensagem detalhada. No entanto, o que precede soa um sino?

    
por Prz3m3k 17.02.2015 / 16:00

0 respostas