And after fixing them for the hundredth time in the last ten years, I finally decided to write down what I seem to always forget. Isn’t this what tech blogs are for?!
So what was happening this time: After some years without any major issues, our media center PC decided to reboot in circles, which turned out to be caused be a defective motherboard. After replacing it with the one from my gaming PC everything worked fine, except that I had to use the onboard graphics card as the passive cooler of the former PC-Express graphics card wouldn’t allow me to use the DVB-S card in the upper PCI slot.
In my vdr-sxfe startup script I’ve set the audio parameter to alsa:plug:'hdmi:CARD=NVidia,DEV=0'. But the only results I get is either no sound at all or vdr-sxfe restarting every few seconds. At some point I managed to set the audio channel in VDR to stereo instead of AC3. Guess what happened? Immediately vdr-sxfe stopped restarting and sound was coming from the left and right speakers.
Conclusion: Something must be terribly wrong with the AC3 passthrough. But what? And who controls which device is used for the AC3 passthrough? I know that I should have asked myself this questions earlier, but trial and error worked perfectly well in the past đ
After trying to remember which files I modified several times before to optimize vdr-sxfe audio and video output, I came to the point where I felt certain that the whole magic must only happen in ~/.xine/config_xineliboutput. As vdr-sxfe is based on Xine this seems to make sense.
Some tests later it was proven, that the audio parameter of vdr-sxfe never affects the value of audio.device.alsa_passthrough_device in the config file.
So the solution to my AC3 passthrough problem is setting the audio.device.alsa_passthrough_device value in the config file to plug:'hdmi:CARD=NVidia,DEV=0'.
Today the new PCI-Express graphics card arrived and all I had to do is changing the vdr-sxfe audio parameter and the audio.device.alsa_passthrough_device value in the config file to plug:'hdmi:CARD=NVidia_1,DEV=0'.
For the sake of completeness, here are all non-default values from my ~/.xine/config_xineliboutput
audio.device.alsa_default_device:plug:'hdmi:CARD=NVidia_1,DEV=0'
audio.device.alsa_front_device:plug:'hdmi:CARD=NVidia_1,DEV=0'
audio.device.alsa_passthrough_device:plug:'hdmi:CARD=NVidia_1,DEV=0'
audio.device.alsa_surround51_device:plug:'hdmi:CARD=NVidia_1,DEV=0'
audio.output.speaker_arrangement:Pass Through
audio.synchronization.av_sync_method:resample
video.processing.ffmpeg_thread_count:2
media.xvdr.num_buffers_hd:5000
media.xvdr.scr_tuning_step:100
effects.goom.fps:25
effects.goom.height:576
effects.goom.width:720
engine.buffers.audio_num_buffers:500
engine.buffers.video_num_buffers:250
engine.buffers.video_num_frames:50
engine.performance.memcpy_method:libc