Image Quality Issue

Firstly – have you been testing Vero and Pi on the same HDMI port on your TV?

If you play an HDR file on Vero and it doesn’t trigger HDR on your TV, this will cause things to look strange.

Can you upload a debug log when this occurs? Unless your previous log covers this.

Thanks

Sam

Hi Sam,

Yes - the Vero and Pi were mostly tested on HDMI 1, although for both devices I tried all the ports at one point.

I have another data point to add. I cast the same Dunkirk sample file from a MacBook Pro via VLC onto a Chromecast Ultra successfully, meaning the TV indicated an HDR input. The Chromecast was connected to the TV via the HDMI 1 port.

Here are the Kodi logs for running the Dunkirk sample directly off of the Vero storage: http://paste.osmc.tv/fafigiqede.

Thanks for the log. We are sending an HDR signal:

Jan 24 09:23:29 osmc-lvroom kernel: codec: Bit depth: 10-bit, Colour range: limited
Jan 24 09:23:29 osmc-lvroom kernel: codec: Primaries: bt2020, Transfer function: smpte-st-2084, RGB-YCC: bt2020nc
Jan 24 09:23:29 osmc-lvroom kernel: codec: No master display info

That should be enough to tell your TV the stream is HDR. The ‘no master display’ is a bug in the kernel. We do send default master display parameters but they are not reported in the log. If you can log into vero via ssh Accessing the command line - General - OSMC and let us know what prints when you type this, while playing an HDR movie:

cat /sys/class/amhdmitx/amhdmitx0/config

we can check what master display info is being sent.

Hi @grahamh,

Thanks for the info. Could you teach me which part of the log lines you posted refers to the HDR output?

I ran the command as instructed. This is the output when playing the HDR video:

$ cat /sys/class/amhdmitx/amhdmitx0/config
AVIF VIC: 0
VIC: 93 3840x2160p24hz
Colour depth: 10-bit
Colourspace: YUV422
Colour range: limited
EOTF: SDR
YCC colour range: limited
PLL clock: 0xc000027b, Vid clock div 0x000a339c
Aspect ratio: 16:9/full frame
Audio config: on
3D config: off

And this is the output when idle in the OSMC/Kodi main menu:

$ cat /sys/class/amhdmitx/amhdmitx0/config
AVIF VIC: 16
VIC: 16 1920x1080p60hz
Colour depth: 10-bit
Colourspace: YUV422
Colour range: limited
EOTF: SDR
YCC colour range: limited
PLL clock: 0xc000027b, Vid clock div 0x000a339c
Aspect ratio: 16:9/full frame
Audio config: on
3D config: off

Thanks. I think maybe there’s no way to be sure master display info is being sent with that kernel. I’ll need to check.

HDR10 is signalled by the bit-depth (10), bt2020 primaries and RGB-YCC matrix and ST 2084 transfer function.

Master display data is optional but nearly always present as it’s part of the Blu-Ray spec. I’m just wondering if there’s an issue with that and your TV is refusing to believe it’s HDR without that data.

Hey @grahamh, I did stumble upon this earlier thread Vero 4K KODI not passing (some) HDR metadata - #184 by WilliamG. I’m assuming it’s a discussion of different issues, but it made me check which Kernel my Vero is running and it’s not 4.9. Should I perhaps look into upgrading to the 4.9 kernel?

You could, but it’s bleeding edge so there might be some surprises. HDR has always worked on 3.14, except master display data was not being read by the decoder so we sent some defaults.

Sad to report (although maybe it was expected) that upgrading to the 4.9 kernel did not seem to resolve the issue.

Yes, but we can check the output of

cat /sys/class/amhdmitx/amhdmitx0/config which should tell us more and logs will tell us more as well.

Output of the above command when playing the vide:

$ cat /sys/class/amhdmitx/amhdmitx0/config
cur_VIC: 93
cur_video_param->VIC=93
cur_video_param->colordepth: 10bit
para->colorspace: 422
AVIF VIC: 93
VIC: 93 3840x2160p24hz
Colour depth: 12-bit
Colourspace: YUV422
Colour range: limited
EOTF: SDR
YCC colour range: limited
PLL clock: 0xc000027b, Vid clock div 0x000a739c
Aspect ratio: 16:9/full frame
audio config: on
audio on/off: on
audio source: I2S
audio type: L-PCM
audio channel num: 2 channels
audio sample rate: 48kHz
audio sample size: MAX
3D config: off

Output of the above command when idle in the main menu:

$ cat /sys/class/amhdmitx/amhdmitx0/config
cur_VIC: 16
cur_video_param->VIC=16
cur_video_param->colordepth: 10bit
para->colorspace: 422
AVIF VIC: 16
VIC: 16 1920x1080p60hz
Colour depth: 12-bit
Colourspace: YUV422
Colour range: limited
EOTF: SDR
YCC colour range: limited
PLL clock: 0xc000027b, Vid clock div 0x000a739c
Aspect ratio: 16:9/full frame
audio config: on
audio on/off: on
audio source: I2S
audio type: L-PCM
audio channel num: 2 channels
audio sample rate: 44.1kHz
audio sample size: MAX
3D config: off

Ok, we do have a problem there (EOTF: SDR). Could you try this from the commandline:

echo 1 | sudo tee /sys/class/amhdmitx/amhdmitx0/force_hdr

Then play a HDR video without rebooting in between. If that works, we can fix the problem with the next release of the 4.9 kernel.

1 Like

You guys are rock stars!

$ cat /sys/class/amhdmitx/amhdmitx0/config
cur_VIC: 93
cur_video_param->VIC=93
cur_video_param->colordepth: 10bit
para->colorspace: 422
AVIF VIC: 93
VIC: 93 3840x2160p24hz
Colour depth: 12-bit
Colourspace: YUV422
Colour range: limited
EOTF: HDR10
YCC colour range: limited
PLL clock: 0xc000027b, Vid clock div 0x000a739c
Aspect ratio: 16:9/full frame
audio config: on
audio on/off: on
audio source: I2S
audio type: L-PCM
audio channel num: 2 channels
audio sample rate: 48kHz
audio sample size: MAX
3D config: off

I’m going to test with some more videos tomorrow.

2 Likes

Good to hear. Do the colours look better, now?

For the time being, you can add this line to file /etc/rc.local just before the line exit 0

echo 1 > /sys/class/amhdmitx/amhdmitx0/force_hdr

Use sudo nano /etc/rc.local to edit that file. Then the force_hdr setting will still be there when you re-boot.

Thanks for all the help, guys.

Just wanted to let you know I haven’t had much time lately to mess with things, but I did watch a movie on the Vero a few days ago and it seemed good. It’s such a subjective thing that it’s always hard to say if it’s better/worse, so I’ll make sure to update here once I’ve had some more time to twiddle with things and have a better idea.

1 Like