PULSEAUDIO는 내 ALSA 캡처 장치를 캡처 소스로 나열하지 않습니다.

PULSEAUDIO는 내 ALSA 캡처 장치를 캡처 소스로 나열하지 않습니다.

우선, 안녕하세요 여러분!

제 이름은 Przemek Gajos이고 이것이 저의 첫 번째 게시물입니다.

최근에 오디오 캡처 카드용 ALSA 드라이버를 작성했는데 PULSEAUDIO가 이를 캡처 소스로 인식하는 데 문제가 있습니다.

여러분 중 누군가가 과거에 이런 일을 겪었고 도움이 될 수 있기를 바라는 몇 가지 사실은 다음과 같습니다.

(1) 캡처 카드에는 오디오 입력(스테레오) 2개(HDMI 1개, 아날로그 1개)가 있습니다. ALSA를 직접 사용하면 두 소리 모두 캡처할 수 있습니다.

(2) PULSEAUDIO 명령을 사용하여 오디오 캡처 소스를 나열하는 경우:

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

출력에는 다음이 표시됩니다. 이는 온보드 장치이며 내 ALSA 드라이버를 사용하지 않습니다.

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

따라서 위에서 볼 수 있듯이 내 장치는 캡처 소스로 나열되지 않습니다.

(3) 내가 사용할 때:

  $ pactl list

출력에는 "my" ALSA 카드가 표시됩니다. 아래의 2가지 샘플 출력을 참조하세요. (a) 온보드 카드(내 드라이버를 사용하지 않음) 및 (b) 내 드라이버를 사용하는 카드:

(a) 기내 카드:

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) 내 카드 중 하나(카드가 2개 이상 있음):

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

내 카드와 기내카드는 '이름' 입력란의 형식이 매우 다르므로 주의하시기 바랍니다. 내가 테스트한 내용은 다음과 같습니다.

  • alsa_card.pci-0000_00_1b.0(온보드 카드)에서 캡처하면 제대로 작동합니다.

  • alsa_card.1(내 카드)에서는 캡처할 수 없습니다.

내 ALSA 드라이버에는 여전히 일부 요소가 누락되어 있습니다. 예를 들어 믹서 요소가 포함되어 있지 않습니다. 이것이 ALSA와 PULSEAUDIO 간의 협력이 부족한 이유일 수 있다고 생각합니다. 귀하의 경험에 비추어 볼 때 PULSEAUDIO가 ALSA 장치를 캡처 소스로 인증하기 위해 믹서 요소가 필요한지 알고 계십니까?

이렇게 긴 메시지를 보내게 되어 사과드립니다. 그래도 위의 내용이 눈살을 찌푸리게 하는가?

많은 도움과 조언 부탁드립니다,

프셰미크


관련 정보