Vero 4K H265 movies (8-bit encoded only?) - blacks show as grey, colours washed out (reduced colourspace)

The only problem I see here is incorrect scaling in one of the YCbCr to RGB or RGB to YCbCr steps when the source content has full range flag. It passes super black (0-15) and super white (236-255) for source contents that have limited range flag, but acutally have super black and white (eg. a test pattern). The problem is when it detects a full range flag. if you can have that ignored, I think the output will be fine.

Hi Sam,

Enjoy your well-deserved holiday.

I’m going into hospital on Friday, and will be in for a few days at least - colourspace issues can certainly wait!

Take care,
RR

Hi wesko5,

If the vero 4k can output the 8-bit full colourspace files in the same manner as the Pi, in terms of visuals (rather than how it’s achieved technically), that’d be fine.

The compressed low and high-end colourspace isn’t noticeable (although even an overclocked original Pi 3, with decent cooling, struggles in terms of framerate on busy 1080p files with decent bitrates)

Regards,
RR

All the best for that! :+1:t2:

Thank you Wuschel_Wuschel, that’s very much appreciated

All the best of luck indeed.

Thank you Sam, that’s most kind.

Okay. I need to work out in the chain this issue occurs then.
I probably asked this before (apologies); does disabling HW acceleration resolve the issue? I know it may not play back smoothly but this would be useful to know.

Sam

It’s the same with HW acceleration disabled. LE 9.0 nightly on S912 shows similar issue. Xiaomi Mi Box (Android Oreo) is the only Amlogic box that shows correct levels (with 16-235 clipping). If you disable HW acceleration on the Mi Box, the output is same as seen on other Amlogic devices.

Hi Sam, Wesk05,

I’m finally back out of hospital. Nightmare.

Have you had any chance to further investigate the colourspace issue with 8-bit hevc files?

Many thanks in advance

1 Like

Hopefully you are back on the mend.
I am back from holiday on 13th July, which realistically means I’ll be getting back to things on the 14th (Saturday).

Sam

Hope you had a terrific holiday Sam.

I did thanks.

Sam

That’s good to hear

Hi,

Unfortunately after more than two months I’ve still not found a way to play back the majority of my 8-bit h265 encoded files.

Does anybody think this colourspace problem is fixable on the Vero 4K? I really hope so, as it’s a tremendous device, this issue aside.

Thanks

Hi,

I am working on (first reproducing, then fixing) as we speak.

Sam

1 Like

Whilst this is welcome news, working this late on a Sunday? I wouldn’t ask that of anybody Sam. Please enjoy the remainder of the weekend.

Hi,

I’ve had a chance to look at this. AMLogic (SoC vendor) state that full range HDMI TX output shouldn’t need to be toggled manually as it should be set automatically to match the colour range of the video being played. I’m still investigating why that isn’t happening, but in the interim I have produced a new kernel which should always send full range video output. I would appreciate it if you could test this and confirm if we’re moving in the right direction.

You can run these commands via SSH:

wget "https://collab.osmc.tv/s/G6cUokkBI4WajGd/download" -O test.deb
sudo dpkg -i test.deb
reboot

Cheers

Sam

1 Like

This worsens the problem. Now limited range video has black level 16 output as 30 and for full range 16 is output as 45 and 0 as 30. See post below.

1 Like

All I did:

diff --git a/drivers/amlogic/hdmi/hdmi_tx_20/hw/hdmi_tx_hw.c b/drivers/amlogic/hdmi/hdmi_tx_20/hw/hdmi_tx_hw.c
index 7bc1bc1..8a2864a 100755
--- a/drivers/amlogic/hdmi/hdmi_tx_20/hw/hdmi_tx_hw.c
+++ b/drivers/amlogic/hdmi/hdmi_tx_20/hw/hdmi_tx_hw.c
@@ -4589,7 +4589,7 @@ static void config_hdmi20_tx(enum hdmi_vic vic,
                hdev->HWOp.CntlConfig(hdev, CONF_AVI_BT2020, SET_AVI_BT2020);

        data32  = 0;
-       data32 |= (((0 == COLORRANGE_FUL) ? 1 : 0) << 2);
+       data32 |= 1 << 2;
        data32 |= (0 << 0);
        hdmitx_wr_reg(HDMITX_DWC_FC_AVICONF3,   data32);

This should always force full range I think.

1 Like