Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Hardware & Software > Software players

Reply
 
Thread Tools Search this Thread Display Modes
Old 19th January 2020, 11:41   #1  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
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.5 and 19.0: 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 18.5 / 19 master 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 fix libaacs decryption.
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.

Last edited by pistacho; 7th July 2020 at 20:11. Reason: merged tag
pistacho is offline   Reply With Quote
Old 19th January 2020, 12:34   #2  |  Link
Klaus1189
Registered User
 
Join Date: Feb 2015
Location: Bavaria
Posts: 1,718
I tested it, but again (I tested Kodi HDR builds already earlier) the HDR image is very greyisch when playing HDR videos, HDR is enabled in windows wia toggle in kodi and TV also shows HDR in OSD.
What do I do wrong here?

I deleted the old Kodi profile folder and used new settings, but the issue appears again like on the older builds.

MPC-BE with madVR looks OK here, but with wrong color because the 5700 XT has the BT2020 issue.
Klaus1189 is offline   Reply With Quote
Old 19th January 2020, 12:46   #3  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
Some specific models of graphics cards and some drivers have serious bugs.

"MPC-BE with madVR looks OK here, but with wrong color" OK with wrong color = NG

=> "MPC-BE with madVR also has problems with in my setup"
pistacho is offline   Reply With Quote
Old 19th January 2020, 12:52   #4  |  Link
Klaus1189
Registered User
 
Join Date: Feb 2015
Location: Bavaria
Posts: 1,718
I tested HDR videos from YouTube, some Samsung HDR testclips and some UHD Blu-rays, but every video is displayed very greyisch and TV is showing HDR in OSD info. With very greyisch I mean very, like displaying HDR video on SDR mode of TV and madVR not doing anything HDR related.

madVR should not have problems at all. I use it for several years now and the only thing is the 5700 XT BT.2020 bug in the drivers up to now. What problems do you have?
Klaus1189 is offline   Reply With Quote
Old 19th January 2020, 13:43   #5  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
Quote:
Originally Posted by Klaus1189 View Post
What problems do you have?
With my HW I have no problem:

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

also

Nvidia GTX1650 + Denon AVX-1600H + Sony TV KD-55AG9


With this HW, Kodi HDR version works perfect. I don't need madVR at all (I've never tried it).
pistacho is offline   Reply With Quote
Old 19th January 2020, 15:10   #6  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
Quote:
Originally Posted by Klaus1189 View Post
the HDR image is very greyisch when playing HDR videos, HDR is enabled in windows wia toggle in kodi and TV also shows HDR in OSD.
What do I do wrong here?
For some odd reason seems Kodi is not detecting HDR capable display in your system.

Check this log line at startup:

Code:
2020-01-18 17:30:04.446 T:8760  NOTICE: -----------------------------------------------------------------------
2020-01-18 17:30:04.446 T:8760  NOTICE: Starting Kodi (19.0-ALPHA1 Git:20200114-2698a89bb6). Platform: Windows NT x86 64-bit
2020-01-18 17:30:04.446 T:8760  NOTICE: Using Release Kodi x64 build
2020-01-18 17:30:04.446 T:8760  NOTICE: Kodi compiled 2020-01-14 by MSVC 191627034 for Windows NT x86 64-bit version 10.0 (0x0A000007)
2020-01-18 17:30:04.446 T:8760  NOTICE: Running on Windows 10, kernel: Windows NT x86 64-bit version 10.0.18362
2020-01-18 17:30:04.446 T:8760  NOTICE: FFmpeg version/source: 4.0.4-Kodi
2020-01-18 17:30:04.446 T:8760  NOTICE: Host CPU: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz, 8 cores available
2020-01-18 17:30:04.446 T:8760  NOTICE: Desktop Resolution: 1920x1200 32Bit at 59Hz
2020-01-18 17:30:04.446 T:8760  NOTICE: Running with restricted rights
2020-01-18 17:30:04.446 T:8760  NOTICE: Aero is enabled
2020-01-18 17:30:04.446 T:8760  NOTICE: HDR Display capable is detected and Windows HDR switch is ON
pistacho is offline   Reply With Quote
Old 19th January 2020, 16:20   #7  |  Link
Klaus1189
Registered User
 
Join Date: Feb 2015
Location: Bavaria
Posts: 1,718
I enabled debug logging and opened the kodi.log in \AppData\Roaming\Kodi and there is exactly the red marked line in it.
If I disable the windows HDR switch, the video looks better, but still washed out, since HDR is presented as SDR without any processing of HDR metadata.
If I enable the windows switch in Kodi menu, the video looks much more greyisch. So I come to the point where I don't know any further.
Klaus1189 is offline   Reply With Quote
Old 19th January 2020, 16:46   #8  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
It is clear that this is not how it has to work.

For some reason it is not going well in your system but i don't know what is happening...

Other users with AMD graphics have reported that works OK. (e.g. AMD RX580)

Last edited by pistacho; 19th January 2020 at 16:50.
pistacho is offline   Reply With Quote
Old 19th January 2020, 17:35   #9  |  Link
Klaus1189
Registered User
 
Join Date: Feb 2015
Location: Bavaria
Posts: 1,718
As already mentioned I have currently a RX 5700 XT. Has anybody with that card got it working? Probably PEBCAK?
Klaus1189 is offline   Reply With Quote
Old 19th January 2020, 19:04   #10  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
I don't know.

People only write in forums when they have issues. If someone works OK with RX 5700 XT, he hasn't said it yet.
pistacho is offline   Reply With Quote
Old 24th January 2020, 10:52   #11  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
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.
pistacho is offline   Reply With Quote
Old 25th January 2020, 13:17   #12  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
I found that specific stuttering and tearing issues are caused by NVIDIA drivers bug in power saving:

To fix it create a profile for kodi.exe in 3D configuration settings NVIDIA control Panel

Leave all as default except power control mode and set to maximum performance




The explanation is simple:

With the energy saving activated, the GPU clock varies continuously (throttling) and reaches low as 300 MHz. These extreme variations cause display refresh rate to destabilize at 23,976 Hz.

For some reason the effect is not noticeable so much at 60 Hz. Or simply at 60Hz it already consumes more and GPU clock does not reach such low values.

And do not worry about consumption because don't consume almost anything even with maximum performance. The fans are stopped.




EDIT: Also seems beneficial set "vertical sync" to enabled.

Last edited by pistacho; 28th January 2020 at 11:35. Reason: removed vertical sync to fast advice
pistacho is offline   Reply With Quote
Old 26th January 2020, 16:34   #13  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
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.
pistacho is offline   Reply With Quote
Old 26th January 2020, 17:14   #14  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
Quote:
Originally Posted by Klaus1189 View Post
As already mentioned I have currently a RX 5700 XT. Has anybody with that card got it working? Probably PEBCAK?
Seems @oldpainlesskodi has RX 5700 and it worked well: https://forum.doom9.org/showthread.p...04#post1895004
pistacho is offline   Reply With Quote
Old 26th January 2020, 19:01   #15  |  Link
Klaus1189
Registered User
 
Join Date: Feb 2015
Location: Bavaria
Posts: 1,718
With madVR it works, so for this issue it is not the 5700 XT or the driver. If you want me to test something for you, I'll do it for you. Keep in mind I am clearly not a noob, just see some other posts and a thread of me
I stay with my personal favourite which is clearly MPC-BE (I also do translation work for several years for this project) with both MPC Video Render and madVR.
Klaus1189 is offline   Reply With Quote
Old 26th January 2020, 20:48   #16  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
People using madVR are like a sect
pistacho is offline   Reply With Quote
Old 26th January 2020, 20:54   #17  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
This has made me laugh

Quote:
1. extract the contents of the "madVRhdrMeasure113" folder and copy and paste it into the madVR installation folder in C: without starting any installation.

2. download the file "HDR_TOGGLE.exe" to the desktop

3. I don't understand how I should set the HDR setting in madVR: let madVR decide, passtrough HDR to display, tone map HDR using pixel shaders. Which one do I select?

4. i impose the video card: 10 bit color depth and 4: 4: 4 RGB: standard pixel format PC (full RGB).
I impose in madVR: "PC Levels 0-255" "native bit depth display" 10 bits.
I impose in LG OLED B9 65: black level: HIGH.
I impose in the video LAV filter: PC RGB (0-255) and D3D11.

5. all other madVR settings are the Asmodian HIGH settings.

6. io uso Mediaportal e MPC-HC. Before playing a video i click on the HDR_TOGGLE.exe to activate the Windows HDR.

7. during HDR video playback it turns off, then on, then off and on again. Everything automatically. And I will see everything perfect.
pistacho is offline   Reply With Quote
Old 26th January 2020, 21:05   #18  |  Link
DMU
Registered User
 
Join Date: Dec 2018
Posts: 207
Quote:
Originally Posted by pistacho View Post
This has made me laugh
What specifically made you laugh?
__________________
R3 3200G / Vega8 / Samsung UE40NU7100
Win11Pro 21H2 / 4K RGB 59Hz / AMD last driver
MPC-HC 1.9.17 / madVR 0.92.17 / FSW / SM / 8bit

Last edited by DMU; 27th January 2020 at 12:45.
DMU is offline   Reply With Quote
Old 27th January 2020, 20:05   #19  |  Link
pistacho
Registered User
 
Join Date: Feb 2010
Location: Spain
Posts: 549
I'm sorry, I was just wondering why "HDR toggle" is so complicated in Windows and gives so many headaches.

Thank you very much for providing the initial toggle code
pistacho is offline   Reply With Quote
Old 27th January 2020, 22:07   #20  |  Link
DMU
Registered User
 
Join Date: Dec 2018
Posts: 207
you welcome
jogal detected
__________________
R3 3200G / Vega8 / Samsung UE40NU7100
Win11Pro 21H2 / 4K RGB 59Hz / AMD last driver
MPC-HC 1.9.17 / madVR 0.92.17 / FSW / SM / 8bit
DMU is offline   Reply With Quote
Reply

Tags
hdr passthrough, hdr player, hdr10, hlg, kodi

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 07:43.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.