s905 - hdmi handshake /color space problem with older TVs

  • Hi,

    I use version 005 of your S905 build on an OTT MXQ Pro 4k (p200). With my older Philips TV, the picture goes green or pink from time to time. Apparently, this is some problem with the hdmi handshake and can be circumvented by forcing the hdmi colorspace to RGB.

    The odroid community allows this by setting a boot parameter. See Enable bootarg in order to force use of RGB colorspace by PabloCamp0s · Pull Request #1 · wrxtasy/LibreELEC.tv.7.0 · GitHub

    Could something similar be implemented for your libreelec build?

    Regards,

    Magnus

    Edited once, last by kszaq (December 6, 2016 at 12:57 PM).

  • The android kernels on some newer S905 firmwares have tackled this problem by creating a new /sys node:

    Setting /sys/devices/virtual/amhdmitx/amhdmitx0/rgb_mode to 1 and re-selecting the HDMI input on the TV is supposed to help. See the discussion on MXQ Pro (an maybe other boxes too) Request! - FreakTab.com

    I will try to get an update for my android firmware later, mine does not have this setting yet.

    Edited once, last by mmpp (August 4, 2016 at 11:56 AM).

  • Hello,

    the problem persists with version 006. My TV just turned green again :(

    Apparently the latest amlogic linux kernel does not include a way to force RGB mode. Do you see any chance to adapt some way to force RGB mode?

  • I have a patch for amlogic hdmi driver, applied over a LE self built installation.

    Unfortunatelly, there are several issues with it:

    It forces RGB444 mode always so its probably not the better thing to apply to each installation. EDID parsing or reading from a config file an applying some logic to the patch would be leaner, but I haven't spent time on it.
    Its a patch over 3.10 kernel. 006 version seems to be working over 3.14, so amlogic drivers could have changed (and some commits have been added to them)
    My hackish patch is on my work computer and hasnt been versioned, so until monday I wont be able to commit them.

    Other than these, the patch is working 100% and no colors have been changed again

  • It is good to hear that forcing RGB really does help with the problem. There is no newer Android firmware for my box, so I could not try.

    Actually, patching the kernel is not too difficult. All you need is call

    Code
    hdmitx_output_rgb();


    in the hdmi driver at the right position (see the patch for the odroid c2 linked above). What is needed is a way to make this behaviour selectable - which is beyond my kernel foo.

    I guess it is time to setup an ARM compile environment and do my own kernel :)


  • Do you know what influence that patch would have on non-RGB capable displays? Are such displays even available?

    Not sure about non-RGB capable displays, but I've always preferred the YCbCr color space.

    On my RPi2 YCbCr output has always produced more natural colors than RGB (it's selectable in CONFIG.TXT there).


  • Being selectable would be the simplest and fairest solution. A default value of forced RGB would ensure compatibility.

    I would rather it not be default, I think the number of people that don't have this issue outweigh the people that do. IMO it zshould be user selectable but defaulted off.

  • Thanks for adding the option in the latest release. Setting the sys node to 1 when the image is pinkish results in a short black screen followed by a screen with correct colours.

    I put the echo command into autostart.sh and will check if the discoloration still appears - this evening it was all right, so it looks promising.

  • Hello,

    the "pink effect" is less frequent with forceRGB on, but still shows up sometimes. Unlike before, stopping and restarting playback fixed the issue in my tests. This makes it bearable in my case. I read in the release thread that one person with a Sony TV still sees the issue. In the odroid forum, the recommendation is to switch HDMI inputs on the TV once after forceRGB has been set; I will try that next.

  • Hello,

    I had some time on the weekend to test things. Sadly, the forceRGB setting does not really help with the "pink effect". It still shows up, and only sometimes stopping and starting the video helps. I guess I was lucky in the first tests.

    There is absolutely nothing in the kernel dmesg output. If someone were to create a kernel with debug messages for the hdmi handshake / link parameters, I would be happy to test and provide logs.


  • Hello,

    I had some time on the weekend to test things. Sadly, the forceRGB setting does not really help with the "pink effect". It still shows up, and only sometimes stopping and starting the video helps. I guess I was lucky in the first tests.

    There is absolutely nothing in the kernel dmesg output. If someone were to create a kernel with debug messages for the hdmi handshake / link parameters, I would be happy to test and provide logs.

    seconded, i am still getting the same issue with my sony tv and force rgb enabled