Como enviar áudio para os dois fones de ouvido e HDMI simultaneamente?

12

Estou precisando enviar áudio através do HDMI e do fone de ouvido de 3,5 mm simultaneamente. Não consegui encontrar nada sobre isso. Isso é possível?

Joker327
fonte
Deseja reproduzir áudio idêntico ou dois fluxos de áudio diferentes ?
tremby

Respostas:

7

Não chegando a uma resposta completa, mas alguns pensamentos sobre esse assunto.

Vamos dar uma olhada no lado do hardware: infelizmente, os esquemas não são úteis para o Pi B + e nem estão disponíveis para o Pi2, por isso estamos presos ao B Rev 2.1 aqui por enquanto.

A saída de áudio do fone de ouvido é gerada pelo PWM. Desde os pinos 40 e 45 do GPIO do BCM2835 através de um filtro passa-baixo RC. (Veja esquemas , página 2.)

O áudio no HDMI, por outro lado, é supostamente transmitido digitalmente. A Wikipedia afirma: "Para áudio digital, se um dispositivo HDMI tiver áudio, é necessário implementar o formato da linha de base: PCM estéreo (não compactado)." E, de fato, o áudio analógico baseado em PWM mencionado anteriormente não é alimentado pelo conector HDMI.

Então agora verificamos algumas notícias antigas: conector de fones de ouvido analógico e HDMI digital. Do meu ponto de vista, esses dois devem ser abordados separadamente e independentemente, assim também (quase) simultaneamente. Agora PulseAudiodeve poder transmitir de uma fonte para várias peças de hardware de som. Ainda me pergunto por que não há nada para encontrar na web sobre isso.

Ghanima
fonte
Eu concordo que eles devam ser abordados separadamente, fui solicitado por alguém para quem estou trabalhando em um raspberry pi e eles pediram para fazer isso, expliquei a eles que não acreditava que isso fosse possível, mas teria que verificar com outras pessoas que sabem mais sobre isso do que eu.
Joker327 19/11/2015
3

Eu adoraria poder fazer a mesma coisa também. Pelo menos tento contribuir com essa tendência com algumas idéias que esperam um eventual desenvolvimento cooperativo.

O que me vem à cabeça é que talvez possa (e deva) haver duas instâncias do módulo do driver carregadas em paralelo, cada uma para uma rota de sinal. No entanto, isso exigiria alguns parâmetros no nível do módulo do kernel, como na amostra ideal abaixo, cada um criando um dispositivo ALSA (número 0 para HDMI e 3 para fones de ouvido na amostra). Você pode enviar algum som para um e outro para o outro (ou copiar para ambos).

Tentei no google a página inicial do código-fonte do módulo snd_bcm2835 (para avaliar a viabilidade do patch simples), mas sem sorte (e tempo), então desisti por enquanto. Se alguém encontrar a fonte e contribuir com o link, analisarei isso novamente.

NOTA !!! A seguir, é apenas uma amostra ideal dos comandos de carregamento do módulo do kernel. No software Raspberry Pi atual, esses parâmetros (AFAIK) não existem!

modprobe snd_bcm2835 out=hdmi alsa=0
modprobe snd_bcm2835 out=ear alsa=3
pmendl
fonte
Olá e bem-vindo! Eu também estaria interessado em começar este trabalho (bem para ser honesto, não adianta vida real especificamente;))
Ghanima