Dolby Vision Profile, VS10, plus other info on skins

Continuing the discussion from Dynamic conversion of HDR10+ SEI to DV P8 NAL:

Splitting out so the original thread can focus on the HDR10+ to DV topic.

Been updating the inbuilt Estuary skin based on frodo19’s changes and adding a couple of things I wanted around video colour details and the AML HW fps, will also share later in the week/weekend.

13 Likes

Would it be possible to expose the same in Estuary as Nestya did in Arctic Fuse ?
Detection of native and converted SDR/HDR/Dolby Vision content on a single line, with an indication of the Dolby Vision Profile

image

I find it very useful but prefer the plain and simple Estuary :slight_smile:

Here is the code I used for someone to implement in Estuary:

Edit: Updated code with a fix for the spacing between the source and the arrow during conversion.

<control type="textbox">
                        <height>80</height>
                        <aligny>center</aligny>
                        <autoscroll>false</autoscroll>
                        <align>left</align>
                        <font>font_mini</font>
                        <textcolor>dialog_fg_90</textcolor>
                        <label>[B]High Dynamic Range[/B][CR]$VAR[HDRSourceVar]$VAR[DVProfileVar]$VAR[DVELVar]$VAR[VideoConvVar]</label>
                        <visible>!VideoPlayer.Content(livetv)</visible>
                    </control>
<variable name="DVProfileVar">
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),8)">-> Dolby Vision Profile 8</value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),7)">-> Dolby Vision Profile 7</value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),5)">-> Dolby Vision Profile 5</value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),4)">-> Dolby Vision Profile 4</value>
<value condition="String.Contains(Player.Process(video.dovi.codec.string),7)">Profile 7</value>
<value condition="String.Contains(Player.Process(video.dovi.codec.string),5)">Profile 5 </value>
<value condition="String.Contains(Player.Process(video.dovi.codec.string),4)">Profile 4 </value>
<value condition="String.Contains(Player.Process(video.dovi.codec.string),8)">Profile 8 </value>
<value/>
<value condition="String.Contains(Player.Process(video.dovi.codec.string),)">$LOCALIZE[10005]</value>
</variable>
<variable name="HDRSourceVar">
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),8)">HDR10+ </value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),7)">HDR10+ </value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),5)">HDR10+ </value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),4)">HDR10+ </value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),dolby vision)">Dolby Vision </value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10)">HDR10 </value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Sdr)">SDR </value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),)">$LOCALIZE[13205]</value>
</variable>
<variable name="DVELVar">
<value condition="String.Contains(Player.Process(video.dovi.el.type),minimum)"> MEL </value>
<value condition="String.Contains(Player.Process(video.dovi.el.type),full)"> FEL </value>
<value condition="String.Contains(Player.Process(video.dovi.el.type),none)"/>
</variable>
<variable name="VideoConvVar">
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),8)"/>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),7)"/>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),5)"/>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(video.dovi.codec.string),4)"/>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Sdr) + String.Contains(Player.Process(video.dovi.codec.string),8)"/>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Sdr) + String.Contains(Player.Process(video.dovi.codec.string),7)"/>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Sdr) + String.Contains(Player.Process(video.dovi.codec.string),5)"/>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Sdr) + String.Contains(Player.Process(video.dovi.codec.string),4)"/>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(amlogic.vs10.mode),dolby vision">-> Dolby Vision</value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Hdr10) + String.Contains(Player.Process(amlogic.vs10.mode),sdr">-> SDR</value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Sdr) + String.Contains(Player.Process(amlogic.vs10.mode),hdr10">-> HDR10</value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),Sdr) + String.Contains(Player.Process(amlogic.vs10.mode),dolby vision">-> Dolby Vision</value>
<value condition="String.Contains(Player.Process(video.source.hdr.type),dolby vision) + String.Contains(Player.Process(amlogic.vs10.mode),sdr">-> SDR</value>
<value/>
1 Like

Thank you for sharing.

1 Like

Arctic Fuse Hotfix available here → https://discourse.coreelec.org/t/dynamic-conversion-of-hdr10-sei-to-dv-p8-nal/51770/421

Just FYI - I needed to rebuild my Ubuntu VM used for building CE due to issues - part way through and found out gnu.org is down (primary DC issue) so cannot get a build at present so likely will have to hold off releasing this week until that comes back and can find time again.

4 Likes

No problem, I’m a patient client :grinning:

1 Like

How do I activate the player process in your modified arctic skin?

Arctic Zephyr - Reloaded updated to 4.0

Link

1 Like

Here

AF Player Info

You can open the Player Process Info with a remote shortcut using the Keymap Editor addon.

To create a shortcut:

Open Keymap Editor → Edit → Global → Other → Player Process Info → Edit key → Press the key you want to set as a shortcut → Return to the main page → Save.

1 Like

… I forget some thing…

Thank you for your feedback.

This code is designed for screens that do not have native HDR10+ compatibility.

Np.
Deleted now. :slightly_smiling_face:

It lacks reliable detection of HDR10+ (on compatible screens) as well as Dolby Atmos and DTS:X detection by Kodi.

Dolby Atmos and DTS:X added to the Arctic Fuse Skin → Dynamic conversion of HDR10+ SEI to DV P8 NAL - #421 by Nestya

regarding 5.0 skin: just in case, here’s the tweaked version of DialogProcessInfo with CPU usage fully visible (build/version label is dropped). I’ve also fixed subtitle language label:
when file didn’t have subs at all, the subtitle label was not visible, but value was present and showed ‘Disabled’.
I wanted to also add total CPU usage (single value) where the ‘per core’ value was, but couldn’t find the appropriate variable for that…
DialogPlayerProcessInfo.xml (24.4 KB)

1 Like

@chuckster this is my solution.

nice, an interesting one). Since I planned to experiment with the layout anyway, I think I’ll stick stick to my version (will just tweak after you release the updates) as it’s a bit easier to read for me and I also don’t need the build info (it’s truncated anyway). You can just take a look at the hotfix for the subs language value label. Thx again for the efforts!

Arctic Zephyr - Reloaded updated to 5.1

Link

5 Likes

Nice work!

You should hide the number of channels when Dolby Atmos and DTS:X is active because they work differently from older methods; it’s an adaptive system.

I changed the name of DD+ on my skin (without publishing it :sweat_smile:).

Dolby Digital+ → Dolby Digital Plus

That’s its real name.