[pulseaudio-discuss] HDMI audio passthrough no longer working

Alexander E. Patrakov patrakov at gmail.com
Sun Mar 8 04:42:54 PDT 2015


08.03.2015 13:54, Xamindar wrote:
> Further testing has shown that this is a pulseaudio problem. When I have
> my audio device set to "Digital Surround 7.1" as it should be,
> passthrough will not work in any app I test (kodi and vlc). My options
> are here in this image: http://i.imgur.com/3zkMsGy.png
> I do have the passthrough settings checked as can be seen in this image:
> http://i.imgur.com/N7KMCZc.png
>
> If I downgrade my settings to the "Digital Stereo" option then
> passthrough will work for some reason.
>
> Is this a limitation/regression in pulseaudio? Or do I simply have some
> configuration set wrong?

This is a limitation and not a regression (i.e. passthrough never worked 
on non-stereo sinks). Here is what happens.

Passthrough works this way: an application negotiates a format with 
PulseAudio, and then sends a fake stereo stream that contains encoded 
data, just what would have to be transferred over spdif. Then PulseAudio 
is supposed to copy this fake stereo data to the receiver.

So, it would need to open the ALSA device in stereo mode. But, in 
multichannel profiles, it opens the ALSA device with the number of 
channels other than 2. So, to support your use case, new logic has to be 
added to the sink code so that it opens audio device with 2 channels and 
exposes 2 channels while in passthrough mode, even if it would use a 
different channel count otherwise.

What fails in your testcase is the line above the "rate update failed, 
or other parts of sample spec didn't match" comment in src/pulse/sink.c 
(the fake channel count doesn't match, as explained above).

But, why are you using the passthrough mode at all? HDMI, unlike SPDIF, 
has enough bandwidth to pass the 7.1 PCM stream. For SPDIF, passthrough 
was a necessity due to this bandwidth limitation. For real HDMI (as 
opposed to HDMI-to-SPDIF converter that doesn't support multichannel PCM 
anyway), it only serves marketing purposes (i.e., in theory, provides no 
benefits over software decoding and sending the resulting multichannel 
PCM stream). I sometimes think that the proper fix is to disallow 
passthrough completely for multichannel HDMI profiles, i.e. to 
effectively hide the checkboxes that you have demonstrated on the 
screenshot.

-- 
Alexander E. Patrakov


More information about the pulseaudio-discuss mailing list