EDID Override - Injecting a Dolby VSVDB Block

Not all kodi upadates will automatically merged in Coreelec.

No audio dropouts for me in this file

I tested this version and it is a bit better, the stream with DTS-MA and TrueHD+Atmos start OK, but there is still some problem. When I pause the stream and the resume the audio is messed up; have to use ā€œjump back 10 secondsā€ trick to sort it outā€¦
For me/my setup the versions without MAT fix definitely work better.

1 Like

Feature Complete - Update 10

  • Rebase on CE-21 ng heads.

  • Refactor DV on and off handling

    • Reduce code footprint
    • Remove various - now unnecessary - ā€œwork-aroundā€ code for colours / lock-ups.
    • Could move DV on / off handling up to the VideoPlayer and out of the Codec - only blocked by HDR10+ detection not yet available in Kodi - this would then allow better res switching without need to check for video playing. (the current fix for the 12 bit issue)
  • Two remaining defects (looks like same root cause) - only issues when using DV Mode: [On]

    • Player Led (DV-LL) - display off during boot and comes on (via CEC) only at the point of the Kodi menu - results in purple and green colours.
    • Player Led (DV-LL) - hot plugin the display (some receivers do this when switching inputs) whilst the device is on - results in purple and green colours.
    • In both cases playing DV content will correct the colours.
    • Donā€™t think I can fix these, maybe a newer kernel will help fix in the future.

When testing use the below tar to update a fresh install of CE-21 ng.

Update tar


Dolby VSVDB Calc (no update)


If upgrading from an older version and you experience issues with wrong playback mode e.g. DV playing in HDR etc. then try:

  • Set - For Dolby Vision [SDR]
    • Play some DV content
  • Set - For Dolby Vision [off]
    • Play some DV content

@cpm
The last your update that did not gave problems to me is ā€œCoreELEC-Amlogic-ng.arm-21.1-Omega_devel_20240611092954ā€.
Alll following updates (including the todayā€™s update) give me P5 as purple/green and sdr and DV 7/8 as Hdr.
Tried all settings , no way. Then please I need your help.
What is:

  • Resetting the settings in the CoreELEC section.
  • Toggling the setting in question to another value, move off to another setting and then go back and toggle the setting back to the desired value.
    Which Coreelec section? If in System I tried , no way.
    Thank you.

Latest CE nightly installed.

try:

  • For Dolby Vision [SDR]

Play some DV content

  • For Dolby Vision [off]

Play some DV content

Thank you @cpm
Followed your advice and now it works .
I would never thought about that solution.
Thanks again for your help and kindness.

2 Likes

no problem

Something to do with Kodi remembering the selection when it had [sdr8, sdr10, hdr10, dv] and now only has [sdr, hdr10, dv] the settings shown on the UI is not what was actually being passed to the backend!, so need to do that to get them back in-line with each other.

Edit:

Ok I think I logically figured this one out, previously the For Dolby Vision [off] was set to a value representing [bypass mode] and I would translate that to use [IPT mode] in the code, it is better though for For Dolby Vision [off] to actually be [IPT mode] e.g. [off] meaning donā€™t map for DV just play as DV i.e. play as IPT - so no need to translate the mode and simplifies the code in a couple of places.

Kodi though is remembering the old value [bypass mode] for [off] because no one was changing it, so switching it to [SDR] and back to [off] forced an update.

[bypass mode] does what it says - bypasses the DV processing and just plays the stream without DV so P5 purple and green and P7/P8 HDR10!

I did not spot it because I try out all modes on each build and do the mapping modes first so For Dolby Vision [SDR] first before doing [off] - so I never had an issue!

1 Like

Got it.
I am sure that you would make a better Kodi than the official one.
Thanks again.

1 Like

@cpm Does update 10 still have the new MAT packer code included?

Iā€™d say no, since @cpm says in first line: ā€œRebase on CE-21 ng headsā€, which does not contain MAT packer code yetā€¦

Cool, without the mat, I test that :slightly_smiling_face:
All works for me. thanks @cpm
Whats mean exactly :
Could move DV on / off handling up to the VideoPlayer and out of the Codec - only blocked by HDR10+ detection not yet available in Kodi - this would then allow better res switching without need to check for video playing. (the current fix for the 12 bit issue)

This build is still working great for me. Interestingly, this one seems to incorporate whichever update from the nightly improved my HFR stuttering issue (maybe something to do with the rebase?) - so Gemini Man is running much more smoothly now!

Gemini Man is a fantastic experience in this setup.

1 Like

I wasnā€™t sure what that line meant exactly.

Also @PurplePlayer mentions in the ng development thread that audio dropout fixes were incorporated in the 20240619 nightly. Iā€™m not sure if he was talking about the MAT packer PR though?

See here:

If heā€™s talking about Cars thatā€™s definitely the MAT Packer change. For me it completely solves the audio dropouts in that movie.

Excited to see that change getting incorporated soon

Indeed itā€™s the same issue. I watched a good 90 minutes of that movie just to test. Interesting behavior is no more audio corrections (visible in first line of player debug) and no more dropped frames (on second line) throughout the movie.

A lot of Disney 4K releases had the audio drop out issue (including I think, Last Jedi from sequel trilogy-- definitely one of the recent star Wars movies).

Also that would be "she":stuck_out_tongue_closed_eyes:

Yes, it is in the CE heads now, did a diff and identical to what I brought into the build previously (as it should be).

Note sure it will make sense, but here goes:

Currently setting up the DV/VS10 mode is done at the AMLCodec level.

The request to change screen resolution/refresh rate is done earlier in the VideoPlayer level to the RenderManager - note this is just a request and actual change would be done later - triggered by a higher level loop triggering all video output across Kodi.

Unless the DV VSIF is being sent on HDMI, the resolution switch code would not think DV was in play and just setup without - and set 12 bit.

It was thus a race for the DV/VS10 mode to switch the HDMI to output DV VSIF packets before the resolution code change was actually done, Plex for example slowed this process down, so sometimes the DV VSIF was not yet being output in time.

The work around currently is to not switch the resolution in this case until the video is known to be playing (a proxy for knowing the DV VSIF packets are being sent)
It gives it 1 sec and then will do the res switch anyway.

Moving the DV/VS10 mode setup into the VideoPlayer before this res switch we can guarantee the DV VSIF is output before the res switch so no need for the proxy method.

I was going to do this, but I also need to differentiate HDR10 from HDR10+ which currently can only be done by inspecting the side-data of the actual video frames so needs to be at the codec level - if Kodi can peek the first frame upstream to identify then can know at the VideoPlayer level and move the DV/VS10 mode switch code into there - a better place for it overall.

Note: knowing the HDR10+ in Kodi would also solve for the GUI Luminance issue for HDR10+, which will currently just follow the HDR10 setting.

3 Likes

Apologies :yum:

Great work, if you implement HDR10+ encoding it becomes a bombā€¦ so much for HDfury etc.

Request:
Iā€™d like to lock the screen resolution when turning on.
If the projector is still off when I turn it on, the AM6B+ fixes on 720p and I have to reset the resolution to 2160p by handā€¦ it bothers me a bitā€¦ ah ah ah