(2016-04-14, 07:49)wesk05 Wrote: I am just telling you what I (and others) are finding. There is only one combination that allows BTW (0-15) and WTW (236-255) from YUV420 video to passthrough and that is by setting the display driver to full and enabling limited color range in Kodi.
But are you using the modified Intel drivers that fritsch has worked on, that adds this
https://lists.freedesktop.org/archives/i...81516.html ?
This offers an additional output mode.
You have :
1. Full - where the output is aimed at 0-255 Full displays (and Full InfoFrames are added to the HDMI). (By default this requires Kodi to pre-scale content to 0-255 - which is the old default behaviour) If your TV ignores Infoframes, or can be overridden you can use Kodi's Limited Range option to send 16-235 video via this route though (So Intel driver thinks you are Full, but actually you are sending "Limited within Full"). This technique falls over if your display uses Info-frmaes though as it will detect the Full info-frames and switch to Full input range (so a 16-235 picture will look washed out and desaturated). However when it works it avoids clipping <16 and >235 content.
2. Limited - where the output is aimed at 16-235 Limited displays (and Limited InfoFrame are added to the HDMI). It will re-scale 0-255 input video to 16-235 (Which will have lost <15 and >235 content earlier in the process) Dithering will help mask the double conversion.
3. Video (aka Limited 16:235 pass-through). This is the new mode that is a modified version of 1, with the InfoFrames changed to send Limited Infoframes. It avoids the problems of the driver signalling Full range in the Infoframes when it is sending Limited video, and is a pass-through solution that avoids clipping <16 and >235 content with a suitably aware app feeding it (the app sends 16-235 content as 16-235) and doesn't re-scale video from 16-235 to 0-255. It works on modern HDMI displays that interpret Infoframes correctly.
Quote:With other combinations, it is either clamped (driver - limited, Kodi - full /driver- YCbCr, Kodi - full) or upscaled and remapped (driver - full, Kodi- full) which means 0-15 and 236-255 are discarded. I have verified this with both Intel and AMD display drivers. I haven't checked it on Linux, that is on my to do list.
Kodi may not have control over the display driver, but the outcome of enabling the limited color range option in Kodi is as described above.
PS: This observation is based on actual pixel RGB value readouts from the HDMI output.
I think you may not have used a driver with the third option of Video 16:235 pass-through?
Code:
broadcast_rgb_names[] = {
{ INTEL_BROADCAST_RGB_AUTO, "Automatic" },
{ INTEL_BROADCAST_RGB_FULL, "Full" },
{ INTEL_BROADCAST_RGB_LIMITED, "Limited 16:235" },
+ { INTEL_BROADCAST_RGB_VIDEO, "Video 16:235 pass-through" },
};
Until I had a driver that supported Video 16:235 pass-through I used option 1. with Kodi set for limited range on my older TVs (that ignored info frames for Full/Limited range) but had to use option 2. on my 2014 Sony UHD set which always went into Full mode when I used option 1. with Kodi set for limited range because of the mismatch between InfoFrame Full whilst the video was 16-235 Limited. Option 3 now means I can get Limited Range passed through and correctly flagged and my new UHD set is happy.