AVS Forum banner
1 - 20 of 80 Posts

·
Registered
Joined
·
41 Posts
Discussion Starter · #1 · (Edited)
KODI 19.0 Matrix HDR Windows API (merged)

This is a fork of Kodi 19.0 "Matrix" version that adds full HDR support with maximum image quality and HDR10 metadata passthrough in Windows 10 and UWP.

Because we are in January 2020 and Kodi does not have (yet) an official version that supports playing 4K HDR content for Windows 10, I created this fork, as a personal initiative to cover this important lack in the official version.

The source code is publicly available and has also been sent to "Kodi Team" to be merged.



KEY FEATURES


  • Maximum 4K image quality with passthrough of HDR10 metadata perfectly (independently verified with HDMI analyzer).
  • Perfect adjustment of the display refresh rate to match with content: 23,976 fps, 24,000 fps, etc.
  • NEW: Auto switch HDR mode and color space. Enable this feature from "Settings > Player > Use HDR display capabilities" = ON.
  • Toggle HDR keymap, default assigned to 'F11' key, to toggle HDR on/off from keyboard/remote (manual mode).
  • No need to install external programs or addons. MadVR, MPC-HC, LAV filters, DSPlayer are not needed.
  • Play the SDR content correctly with the Windows HDR switch ON, although it is recommended for maximum quality to play the SDR content with the Windows HDR switch OFF.
  • On systems that do not have an HDR display, it playback HDR content using tone mapping in both DXVA and pixel shaders (HDR to SDR conversion).
  • Fixed important bugs in the tone mapping function present in the official versions of Kodi 18.x: very dark image or washed colors.
  • It supports the HLG (Hybrid Log-Gamma) format used for HDR in Live TV broadcasts. Compatible with the "IPTV PVR Simple client" addon but in the future more addons can be created / updated supporting it.
  • All HDR functionality has been implemented using only the standard Microsoft Windows API. It does not use pre-compiled external libraries or proprietary APIs from Intel or Nvidia. It does not use hacks that only work for a specific type of HW, therefore, it is highly compatible with most Intel, Nvidia, AMD or Ryzen HDMI 2.0 graphics cards.
  • Improved swapchain performance using some new DX12 / Windows 10 features.
  • Fixed NVIDIA only related stuttering/tearing issues. These are also common for 1080p SDR content but it's less obvious (still present in v18.x and can affect some users).


Tested on Intel NUC 8i3BEK + Denon AVX-1600H + Sony TV KD-55AG9 OLED.

and

Asus Maximus XI Hero + Asus Nvidia GTX1650 + Denon AVX-1600H + Sony TV KD-55AG9 OLED



DOWNLOAD

https://github.com/thexai/xbmc/releases



CHANGE LOG

Code:
Version 3.7.2
Updated at 29-06-2020 (merged in Kodi 19 alpha master).

Updated with latest master branch commits: includes ffmpeg 4.3, estuary skin improvements, addons installation fixes and improvements.
No changes in HDR code.


Version 3.7.1
Updated at 17-06-2020 (forked from Kodi 19 alpha master).

New advancedsettings option 'disableDXVAdiscretedecoder' for some Nvidia systems who still need it.
Updated with latest master branch commits.


Version 3.7.0
Updated at 13-06-2020 (forked from Kodi 19 alpha master).

Removed "Nvidia shared textures" workaround due is not longer need on Windows 10 2004.
Some code refactored and clean-up.
Updated with latest master branch commits.


Version 3.6.5
Updated at 30-05-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits.
Includes "peripheral.joystick" addon in installer.
No changes in HDR code.


Version 3.6.4
Updated at 20-05-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits.
No changes in HDR code.


Version 3.6.3
Updated at 09-05-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits: increased various add-on API's version.
No changes in HDR code.


Version 3.6.2
Updated at 30-04-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits: fixed seek on interlaced content DXVA.
No changes in HDR code.


Version 3.6.1
Updated at 25-04-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits: increased addons API's (inputstream v2.3.0, PVR v6.4.0) and other updates.
No changes in HDR code.


Version 3.6.0
Updated at 18-04-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits: ISO BluRay is now part of master branch, libdav1d, spdlog, inputstream bump API to v2.2.0 and many other changes.
No important changes in HDR code, only some fixes in log code after spdlog merge.


Version 3.5.0
Updated at 09-04-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits: includes fix for libraries sorting by date, add-ons updates and other issues.
Re-enabled ISO BluRay support using libudfread (although it has not yet merged into master branch).
More robust DXVA code in tone mapping mode: avoids potential apply double mappings in some systems.


Version 3.4.0
Updated at 02-04-2020 (forked from Kodi 19 alpha master).

Reverted master branch commits to 18-feb to fix ISO BluRay bug, incorrect libraries sorting by date (year 1601 bug) and other issues.
Fixed bad render HDR10 sources on some non HDR capable systems using DXVA render method.
Lighter installer since it does not include binary addons (they are also downloaded from the repository).


Version 3.3.1
Updated at 28-03-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits (fix some addons related crashes).
No changes in HDR code.


Version 3.3.0
Updated at 23-03-2020 (forked from Kodi 19 alpha master).

Fixed oversaturated HLG colors.
Switch Windows HDR off on every stop when is played HDR content.
Updated with latest master branch commits.


Version 3.2.1
Updated at 14-03-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits.
No changes in HDR code.


Version 3.2.0
Updated at 06-03-2020 (forked from Kodi 19 alpha master).

On screen notification when toggle HDR with 'F11' key (manual mode).
Removed toggle HDR from power options menu and all associated code.
Improved display HDR detection/status if system has multiple displays HDR or Kodi is using a non HDR display in a system that has HDR display.
Updated with latest master branch commits.


Version 3.1.0
Updated at 28-02-2020 (forked from Kodi 19 alpha master).

Improved HDR auto-switch timings synchronization: playing not start until switch is finished.
SDR is not restored on exit if auto switch setting is not enabled.
Updated with latest master branch commits.


Version 3.0.0
Updated at 21-02-2020 (forked from Kodi 19 alpha master).

Auto switch HDR mode and color space.
Only toggles HDR in screen currently used by Kodi (if system has various HDR screens).
Changed behavior of setting "Use display HDR capabilities": now enables HDR auto switch mode.
Updated with latest master branch commits. Includes ffmpeg 4.2.2.


Version 2.2.2
Updated at 14-02-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits.
Minor improvements in HDR code.


Version 2.2.1
Updated at 07-02-2020 (forked from Kodi 19 alpha master).

In Windows 10 is used swapchain with 6 backbuffers for all content HDR / SDR / 3D.
Updated with latest master branch commits. Includes libaacs decryption fix.
Simplified code to turn HDR on/off when Kodi starts/exits.
HDR display detection code refactored.


Version 2.2.0
Updated at 04-02-2020 (forked from Kodi 19 alpha master).

'F11' keymap to toggle HDR on/off
Restores original Windows HDR config when Kodi exits
Refactor HDR display detection code
Removed unneeded code


Version 2.1.0
Updated at 02-02-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits. Includes UHD BD improvements.
Fix for 4K HDR 60 fps content (Gemini Man).
Disabled Nvidia sharing textures (stuttering fix).
SetMaximumFrameLatency to 1 again.
Discrete decoding can use D3D_FEATURE_LEVEL_12_0.


Version 2.0.0
Updated at 01-02-2020 (forked from Kodi 19 alpha master).

Improved swapchain with some DX12/Windows 10 exclusive features.
Improved NVIDIA stability keeping low latency.
Reduced video memory usage in HDR rendering (all graphics cards).


Version 1.9.2
Updated at 31-01-2020 (forked from Kodi 19 alpha master).

Definitive cure for NVIDIA stuttering/tearing issues. (thanks bentom)
NVIDIA Control Panel 3D profile (power management) may be no longer necessary but leave it in 'Adaptive' may be a good practice.


Version 1.9.1
Updated at 28-01-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits. Fix some crashes related to Live TV / EPG.
No changes in HDR code.


Version 1.9.0
Updated at 25-01-2020 (forked from Kodi 19 alpha master).

Removed specific NVIDIA code to workaround tearing/stuttering issues. These are due to the power saving functionality in the drivers. It is solved by
creating a maximum performance profile in NVIDIA control panel > 3D settings.
Removed 'autoHDR' option in advancedsettings.xml. Now is used GUI setting in Settings > Player > Use HDR display capabilities.


Version 1.8.1
Updated at 23-01-2020 (forked from Kodi 19 alpha master).

Fix NVIDIA HDR refresh rate match (tearing).
Updated with latest master branch commits.


Version 1.8.0
Updated at 18-01-2020 (forked from Kodi 19 alpha master).

Improves stability in NVIDIA HDR full screen switching.
Improves detection of HDR display in some multi-screen escenarios.


Version 1.7.5
Updated at 14-01-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits. Fix some crashes due recent libraries updates.
No changes in HDR code.


Version 1.7.4
Updated at 10-01-2020 (forked from Kodi 19 alpha master).

New advancedsettings option 'autoHDR' to turn on display HDR when Kodi starts.

(Copy or create text file advancedsettings.xml and place in Kodi 'userdata' folder)


Version 1.7.3
Updated at 07-01-2020 (forked from Kodi 19 alpha master).

Rebased to latest master. Now includes libbluray 1.1.2


Version 1.7.2
Updated at 06-01-2020 (forked from Kodi 19 alpha master).

Eliminate rounding errors when handling HDR metadata.
Updated with latest master branch commits.


Version 1.7.1
Updated at 05-01-2020 (forked from Kodi 19 alpha master).

Power options menu closes dialog when toggle HDR is done.
Code cleanup.


Version 1.7.0
Updated at 04-01-2020 (forked from Kodi 19 alpha master).

Toggle display HDR on/off without restart.
Internal code improvements.
Fixed: small incorrectness DXVA HW tone mapping (clipped high luminance values).


Version 1.6.1
Updated at 31-12-2019 (forked from Kodi 19 alpha master).

Some performance improvements.
Internal code changes and refactorings.


Version 1.6.0
Updated at 27-12-2019 (forked from Kodi 19 alpha master).

Fixed: bad image when is used pixel shaders render method in HDR source to SDR render.
Several internal changes that do not affect functionality but are necessary to merge with Kodi master branch.


Version 1.5.1
Updated at 26-12-2019 (forked from Kodi 19 alpha master).

Fixed: bad image when is used pixel shaders render method in HDR mode.
Improved: prevents use tone mapping when HDR is active (regardless of settings).


Version 1.5.0
Updated at 24-12-2019 (forked from Kodi 19 alpha master).

NEW: Toggles Windows HDR On/Off from power options menu.


Version 1.4.1
Updated at 19-12-2019 (forked from Kodi 19 alpha master).

Fixed: very dark image in HDR10 to SRD conversion using DXVA HW tone mapping.


Version 1.4.0
Updated at 19-12-2019 (forked from Kodi 19 alpha master).

Added support for HLG (Hybrid Log-Gamma) and Rec.2020 for Live TV


Version 1.3.0
Updated at 14-12-2019 (forked from Kodi 19 alpha master).

Improved the detection of some HDR10 streams (The Mandalorian).
Improved handle of changes in metadata at middle of stream.


Version 1.2.0
Updated at 11-12-2019 (forked from Kodi 19 alpha master).

Fixed: Some streams 4K BT.2020 are incorrect detected as HDR resulting in bad image (live IPTV).
Various improvements.


Version 1.1.0
Updated at 08-12-2019 (forked from Kodi 19 alpha master).

New: Handle changes in static HDR metadata.
New: Python 2 & Python 3 compatible versions.  


Version 1.0.0:
Updated at 06-12-2019 (forked from Kodi 19 alpha master).

First release.
 

·
Registered
Joined
·
251 Posts
I tried to install this the other day and the installer wouldn’t start. I’ll give it another go tonight.

Windows 10
Xeon 5650
Gtx 1060
 

·
Registered
Joined
·
41 Posts
Discussion Starter · #6 ·
It's strange. The only thing I can think of is that the antivirus software blocks the installation because the version is very recent.

Try with v1.9.1 which is onile from a few days.
 

·
Registered
Joined
·
41 Posts
Discussion Starter · #9 ·
Version 2.1.0

Updated at 02-02-2020 (forked from Kodi 19 alpha master).

Updated with latest master branch commits. Includes UHD BD improvements.
Fix for 4K HDR 60 fps content (Gemini Man).
Disabled Nvidia sharing textures (stuttering fix).
SetMaximumFrameLatency to 1 again.
Discrete decoding can use D3D_FEATURE_LEVEL_12_0.

https://github.com/thexai/xbmc/releases
 

·
Registered
Joined
·
41 Posts
Discussion Starter · #12 · (Edited)
Right.

For now it has priority:
  • Maximum quality.
  • Maximum compatibility with different graphics cards: NVIDIA / Intel / AMD / Ryzen.
  • Stability.
  • Get almost bug free code.

Once this is achieved, new features may come.

However, nothing prevents seeing SDR content with HDR always on. It's how Microsoft thinks it should work, the colors and brightness are correct but SDR => HDR tone mapping is done. Some even prefer it because 8bit banding is reduced.

With NVIDIA it works differently and the driver does the SDR/HDR switching automatically. It can always be left Windows HDR ON and the SDR content is viewed natively.
 

·
Registered
Joined
·
2,116 Posts
However, nothing prevents seeing SDR content with HDR always on. It's how Microsoft thinks it should work, the colors and brightness are correct but SDR => HDR tone mapping is done. Some even prefer it because 8bit banding is reduced.
It would be hard to add automatic switch to HDR when HDR content is played and revert back to SDR when HDR content is stopped?
 

·
Registered
Joined
·
41 Posts
Discussion Starter · #14 ·
Version 2.2.1
Updated at 07-02-2020 (forked from Kodi 19 alpha master).

In Windows 10 is used swapchain with 6 backbuffers for all content HDR / SDR / 3D.
Updated with latest master branch commits. Includes libaacs decryption fix.
Simplified code to turn HDR on/off when Kodi starts/exits.
HDR display detection code refactored.

https://github.com/thexai/xbmc/releases
 

·
Registered
Joined
·
41 Posts
Discussion Starter · #16 ·
Version 3.0.0
Updated at 21-02-2020 (forked from Kodi 19 alpha master).

Auto switch HDR mode and color space.
Only toggles HDR in screen currently used by Kodi (if system has various HDR screens).
Changed behavior of setting "Use display HDR capabilities": now enables HDR auto switch mode.
Updated with latest master branch commits. Includes ffmpeg 4.2.2.

https://github.com/thexai/xbmc/releases


Enable auto switch HDR from "Settings > Player > Use HDR display capabilities" = ON
 

·
Registered
Joined
·
2,116 Posts
Auto switch HDR mode and color space.
Enable auto-switch HDR from "Settings > Player > Use HDR display capabilities" = ON
GREAT! This what I have waited! Now I can completely ditch the fandangos fork.

Thanks for the hard work!
 

·
Registered
Joined
·
251 Posts
I can’t seem to make the 3.X.X versions work properly. I get a black screen when starting an HDR movie and I can’t recover via alt-enter or alt-tab, have to hard reset.

Maybe it’s something in my system. GTX 1060>Denon X3400w>Epson 5040UB.

Version 2.2 works great.
 

·
Registered
Joined
·
4,070 Posts
Wow, just saw this!

HLG supports! I've been searching for HLG support with no avail!

Will try tonight. I hope it works on Windows 7!
 
1 - 20 of 80 Posts
Top