No video output after switching receiver inputs

  • I'm running a Raspberry Pi 5 on 11.0.4.

    If I set my receiver to LibreElec's input and then turn on the Raspberry Pi I get a signal and everything works fine. If I switch my receiver to another input (for example to play a game console) and then back to the LibreElec's input I get no signal showing up on my screen, and I don't hear any UI sounds if I start pushing buttons on the remote either. If I turn the Raspberry Pi off then back on using the power button I get a signal again and all works normally. If I unplug the HDMI cable from the Raspberry Pi and plug it back in again I also get a signal and everything works normally. I also tried systemctl restarting kodi via ssh, and that did not cause it to show a signal. I have tried disabling CEC in the system menu (I don't intend on using it anyway) as well as changing a bunch of CEC options to ignore (so it doesn't try and turn anything off or go into standby).

  • I've created a partial workaround but it doesn't always work, and it's pretty janky. I'm using a harmony remote to control everything, so I mapped keyboard 'r' to reboot, and I added 'r' to the startup sequence for watching Kodi. This works when switching inputs, though it adds a lot of delay to wait for the reboot and loses position. For cold start the other devices don't turn on fast enough so they aren't "visible" to Kodi on boot and output is still blank.

  • The EDID hack ensures the RPi thinks something is always connected; solves missing audio due to slow startup of the connected AVR or TV device when all powered on at the same time. However re-reading your description it sounds more like the receiver loses the connection to the RPi when the source changes; as the other way around isn't possible because the EDID hack ensures the RPi sees something connected and outputs continuously. Hmm..

  • Is there any way to query kodi via the web API or from ssh to see if it thinks it's connected and outputting through HDMI?


    However re-reading your description it sounds more like the receiver loses the connection to the RPi when the source changes..

    I think you're on to something. The receiver has a feature I'm not terribly familiar with called "scenes" that lets you change a bunch of settings with one command. One of the settings it can change is input. So I created two scenes, one with kodi input and two with a video game console as input. If I tell the receiver to change to scene 1 instead of telling it to change to input 1, then it works. Still doesn't show up on cold start, though. Switching scenes back and forth after everything is fully up does work.

    Edited once, last by Intropy: Merged a post created by Intropy into this post. (December 30, 2023 at 2:32 AM).

  • Kodi reads the EDID data to determine resolutions and audio capabilities once at startup and never checks again. One of these days that might change, but that's how the current implementation works. The forced EDID at kernel DRM level means everything on the Linux side (all the way up the code stack) is blissfully unaware that anything on the HDMI connection changes/changed.