
El bus S/PDIF se creó para conectar reproductores de CD a amplificadores de audio sin que la señal se degradara en el camino. En otras palabras, se diseñó para transportar audio estereo sin comprimir. Utilizando los codecs DTS y Dolby Digital es posible transportar audio en formato de 5.1 canales. Requisitos:
- Ordenador con GNU/Linux y salida de video HDMI (debería funcionar con una salida S/PDIF integrada en la tarjeta de sonido, pero no lo he probado)
- Un receptor A/V multicanal (en mi caso utilizo un receptor Pioneer VSX-D510 con un separador de audio HDMI y un cable TOSLINK)
Si no tenemos instalado pavucontrol, lo instalaremos. Al abrirlo nos vamos a la sección “Dispositivos de Salida” y abrimos las opciones avanzadas de la salida de audio digital. Si no están habilitados los codecs de audio comprimido que soporta nuestro receptor A/V, los habilitamos manualmente (en mi caso AC-3 y DTS)

Ahora instalamos un reproductor multimedia que soporte el paso directo de audio a través de S/PDIF. En el caso de MPV abrimos el archivo de configuración
nano ~/.config/mpv/mpv.conf
Y le agregamos el siguiente contenido
audio-spdif=ac3,dts
audio-channels=5.1
Esto nos dará soporte para los codecs AC-3 (Dolby Digital) y DTS
En el caso de VLC nos vamos a preferencias, habilitamos la configuración avanzada y en la sección audio habilitamos “Forzar soporte S/PDIF”

Ahora probamos con un archivo de audio en formato Dolby Digital o DTS (pueden probar con el soundtrack de Midori in the Magic School, el cual tiene una versión en Dolby Digital). Si lo hemos hecho correctamente, la pantalla de nuestro receptor A/V debería mostrarnos que estamos repoduciendo audio en formato Dolby Digital o DTS, según sea el caso, mientras que el mezclador de Pulseaudio no nos debería mostrar ningún flujo de audio correspondiente al archivo de audio que estamos reproduciendo debido a que el trabajo de decodificación de audio lo está haciendo el receptor A/V en lugar del PC

En los casos donde no podamos enviar el audio de esta manera (por ejemplo en los juegos) existe otra posibilidad, la cual consiste en codificar el audio del pc en formato DTS para que cualquier aplicación pueda enviar audio de 5.1 canales. Para ello instalaremos “dcaenc”, el cual se puede instalar en Arch Linux a través de AUR y en Gentoo desde los repositorios oficiales como “media-sound/dcaenc” (es necesario habilitar “alsa” en USE). Editamos el archivo de configuración de ALSA
sudo nano /etc/asound.conf
Y agregamos lo siguiente
<confdir:pcm/dca.conf>
Al reiniciar pulseaudio (o pipewire-pulse) la salida de audio digital deberia tener un modo de salida DTS. Si todo va bien, el receptor A/V debería mostrar que estamos reproduciendo audio en formato DTS

Es recomendable utilizar esta opción cuando la reproducción directa no es posible