[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