You are not logged in.
I send my audio through an HDMI connection to my AV Receiver. In order to avoid any delay in playback for example after switching an application or stopped video playback for a few seconds, I commented out the following line:
/etc/pulse/default.pa
### Automatically suspend sinks/sources that become idle for too long
#load-module module-suspend-on-idle
After a reboot or simply
pulseaudio -k
it works as expected, playback starts immediately. Unfortunately, programs such as Plex with audio passthrough for HD audio formats such as DTS-HD Master or Dolby True HD no longer play any sound.
Starting Plex with:
pasuspender plex-desktop
solves this problem and Plex forwards the audio formats as desired. But since pasuspender suspends PulseAudio, no sound from other programs is now possible as long as plex is running, even if it is minimized.
Is there a better way to do this or a way to disable pasuspender when minimizing Plex?
Offline
Configure plex to use pulseaudio and configure pulseaudio with
load-module module-allow-passthrough
A better approach than disabling pulse idling would in general be to enable hdmi silent_stream but i don't find refs to the module to pass that to and am not on Arch to check myself
Online
Thank you for your reply!
Unfortunately, adding the module to the Pulseaudio configuration file didn't help. The sound remains either silent or starts with a delay.
Configure plex to use pulseaudio
Could you please explain what you mean by this?
Currently in the Plex settings I have selected HDA NVidia, DENON-AVAMP/HDMI Audio Output as the audio device and then activated the passthrough options.
Last edited by DanielHCoding (2024-02-17 09:26:50)
Offline
That module is a pulseaudio configuration. But if plex is not running over pulseaudio in the first place this is moot. With that module loaded and not using pasuspender, do you still have an option for passthrough?
I'd have to install plex myself to check it's options, but the general goal should be to have it use pulseaudio but passthrough over other applications during playback
Last edited by V1del (2024-02-11 14:18:49)
Online
That makes sense. Yes with module-allow-passthrough loaded and not using pasuspender i still have all the passthrough options in plex and have already tested all output devices.
Exactly, that would be the optimal behavior. Currently it looks as if deactivating module-suspend-on-idle permanently sends a stream to the receiver and the passthrough stream coming from Plex is not recognized.
Offline
FWIW I dug out the kernel module option which should™ obsolete your disabling suspend on idle approach and restore behavior as before -- without the drawback of having to force disable pulseaudio: create a file in /etc/modprobe.d/silentHdmiStream.conf
options snd-hda-codec-hdmi enable_silent_stream=1
and reboot.
FWIW I also installed installed plex. You'd generally not explicitly use exclusive mode, but without using pasuspender you pick the stereo digital hdmi stream of the HDMI device you want, and then in pavucontrol enable the codecs that should get passed through for said device. That setting should also generally work without explicitly enabling suspend-on-idle again but with the allow-passthrough module I mentioned. Cross check e.g. the setup instructions from https://kodi.wiki/view/PulseAudio
Last edited by V1del (2024-02-13 08:37:48)
Online
Thanks for your response. I have tested many different variants in the last few days and I think I have found the core of the problem.
First of all, unfortunately creating the file in /etc/modprobe.d/ didn't show any noticeable change for me.
Nevertheless, passthrough is possible at least to a certain point using the method you and the kodi Wiki page from your last post described:
1. Open pavucontrol and set in the configuration tab the Output of your connected AVR (in my case HDMI2) to "Digital Stereo Output" (important: you have to choose "Stereo Output" nevertheless passthrough of multi-channel audio will work!)
2. Enable all your desired passthrough codecs for this output device in the Output Settings tab of pavucontrol.
3. In Plex change the Output device to the output you just configured in pavucontrol (important: in my case plex shows three different HDMI2 outputs. Choose the right one by checking the level meter in pavucontrol otherwise Plex will not use Pulseaudio!).
Result: Plex passes codecs such as Dolby Digital or DTS to the AVR. The AVR shows the correct codec on the display and switches on the corresponding decoders. As long as a film is open in Plex, playback from other programs is not possible, which is the correct behavior according to this statement from the Kodi Wiki:
Passthrough is always an exclusive mode. If you have another application hogging the device, e.g. Chrome or Skype, passthrough won't work.
However, if the film is stopped but Plex is still open, playback from other programs is possible again.
This would be the behavior I imagined if it weren't for one last problem:
The passthrough of the lossless audio codecs such as DTS-HD MA or Dolby TrueHD which are particularly important to me and among other things one of my reasons for watching physical media still don't work.
After a long search I found out, that although pulseaudio version 13.0 was released with support for this codecs they were subsequently marked in the release notes as not working yet. You can read it on the Kodi Wiki page above and in the release notes here:
https://www.freedesktop.org/wiki/Softwa … otes/13.0/
In conclusion, I hope that the developers at pulseaudio continue to pursue the feature, as a little time has passed between version 13 and the current version 17.
Unfortunately, I think at the moment I'm left with the workaround mentioned at the beginning: Selecting DENON-AVAMP as Plex Output and starting plex with pasuspender will at least allow me to passthrough the desired lossless codecs.
Offline