CoreELEC and Dolby Vision

CoreELEC and Dolby Vision

Team CoreELEC is proud to announce that the upcoming CoreELEC 21-Omega release will support Dolby Vision.

With the assistance of Homatics the CoreELEC team was able to implement Dolby Vision support in the upcoming CE-21 release. Dolby Vision requires a special license to be included in a device’s SoC. Unfortunately not all Amlogic based devices have this additional license. At the present moment the only supported device for Dolby Vision is the Homatics Box R 4K Plus. This support may expand to more devices as more vendors use a Dolby Vision licensed SoC.

2.5.2023: Supported devices: Dune/Homatics R 4K Plus, RockTek G2, Nokia 8010.

The system is configured to follow the source. This means that Kodi GUI is not displayed in Dolby Vision. When the Dolby Vision chain is fulfilled, media source, device and TV, the display will switch to Dolby Vision. If the display is not Dolby Vision capable the media will be played in HDR or SDR, depending on the display’s capability.

Dolby Vision profile 5 and profile 8 both work. Profile 7 as used on Bluray discs, is currently converted on-the-fly by chosen mode by libdovi due to a bug in the upstream proprietary code.

Profile 5, 1080p
DOVI configuration record: version: 1.0, profile: 5, level: 5, rpu flag: 1, el flag: 0, bl flag: 1, compatibility id: 0

Profile 5, 4k
DOVI configuration record: version: 1.0, profile: 5, level: 7, rpu flag: 1, el flag: 0, bl flag: 1, compatibility id: 0

Profile 8.1, 4k
DOVI configuration record: version: 1.0, profile: 8, level: 9, rpu flag: 1, el flag: 0, bl flag: 1, compatibility id: 1

Profile 7, 4k, MEL
DOVI configuration record: version: 1.0, profile: 7, level: 6, rpu flag: 1, el flag: 1, bl flag: 1, compatibility id: 6

Profile 7, 4k, FEL, converted to minimal EL
DOVI configuration record: version: 1.0, profile: 7, level: 6, rpu flag: 1, el flag: 1, bl flag: 1, compatibility id: 6

What is needed?

  • The device used for implementation by Team CoreELEC was Homatics Box R 4K Plus.
  • Amlogic-ne, CE-21
  • Display with (Low Latency) Dolby Vision capability.

How does it work?

On Amlogic based devices the key to unlocking Dolby Vision support comes in the form of a proprietary driver blob. Because Dolby likes to keep a tight hold on its toys, this is not a file we can just simply ask for, and have any hope of getting a copy appropriate for use in CoreELEC given to us. However not all hope is lost at this point since every device that has a Dolby Vision licensed SoC in it also has a copy of the required proprietary blob included in it’s Android install, so on such devices CoreELEC will borrow the dovi.ko file from the devices existing Android install. This is however not a perfect fit for the existing CoreELEC platform, since the Android on these devices is 64-bit, so we had to make a rather big change to CoreELEC to make it work. Starting with CE-21 Amlogic-ne builds of CoreELEC will use the aarch64 architecture, instead of the current arm architecture.

Can Dolby Vision be disabled?

Yes, by default it’s enabled when supported by the device used. By enable the option Disable Dolby Vision support the feature will not be used. The option will be hidden at all when no Dolby Vision support exist.

What does work?

Dolby Vision profile 5 and 8. For profile 7, used on Bluray discs, it is right now needed to “convert” it on-the-fly to like profile 8.1 or minimal enhancement layer by libdovi. This is caused by a bug in the Amlogic Android Dolby Vision system what might be fixed in future as it was already working in Linux kernel version 4.9.

Can Dolby Vision profile convert be disabled?

Yes, by default profile conversion is set to convert profile 7 to profile 8.1 until the issue with profile 7 support is fixed by Amlogic Android. The option Convert Dolby Vision for compatibility gives the user control of the method used to convert profile 7 content. To disable the convert of profile 7 change the mode to Lossless.

Available modes for convert profile 7 are:

    /// Modes:
    ///     Lossless:       Don't modify the RPU
    ///     Minimal EL:     Converts the RPU to be MEL compatible
    ///     Profile 8.1:    Converts the RPU to be profile 8.1 compatible.
    ///                     Both luma and chroma mapping curves are set to no-op.
    ///                     This mode handles source profiles 5, 7 and 8.
    ///     Profile 8.4:    Converts to static profile 8.4
    ///     Profile 8.1 MP: Converts to profile 8.1 preserving luma and chroma mapping.
    ///                     Old mode 2 behaviour.

Will it work on other devices?

No, the Dolby Vision blob need a licensed SoC (suffix J or K).

Will it become available on Amlogic-ng?

No, there are currently no plans and the available Dolby Vision blob is only compatible with Amlogic SoC SC2, S905X4-J/K.
Update: Tests are started for Minix U22X-J (Max) and Ugoos AM6+
So maybe Dolby Vision become available for Amlogic-ng as well.

Is internal install by the ceemmc tool available?

No, as some items are required to be used from the underlying Android system it is not supported.

Bluray Disc/ISO

Kodi does currently not support playback of dual-layer Dolby Vision content.

TS ( Transport Stream)

This kind of media does not include extradata what does mean it can not be converted to another profile by libdovi.

How do I know if a device has a Dolby Vision license?

Amlogic uses a suffix of J or K in their SoC model names to denote if the SoC is licensed for Dolby Vision. So for example a SoC such as the S905X4-J will support Dolby Vision, whereas a S905X4 will not.

What about Amlogic-ng devices that have a Dolby Vision license?

Currently the Dolby Vision support is based on the Amlogic kernel 5.4, so it can’t be used with devices that are only supported by the older Amlogic kernel 4.9. There are also additional issues involved with supporting devices with the Amlogic kernel 4.9.

What does ARCH aarch64 mean?

aarch64 refers to the 64-bit ARM architecture, while arm refers to the older 32-bit ARM architecture.
Up until now, CoreELEC used a 64-bit kernel with a 32-bit user-space (ie. Kodi and the binary add-ons).
Amlogic-ne CE-21 now uses 64-bit user-space as well. This change was implemented to stay compatible with Amlogic Android TEE tools, which are required for media playback.

Most things will work just like they did before and you get some cool new features, such as Dolby Vision support. There is a notable down side however, which fortunately will only be a one time problem when initially switching to the CE-21 release. Because of some architecture limitations upgrading from previous releases or restoring backups from old releases won’t be possible.

Is it possible to upgrade an existing Amlogic-n*, CE-19/CE-20 to Amlogic-ne, CE-21?

Basically it’s not possible because of some architecture limitations.
The ARCH difference will break every installed binary addon. Like as example any PVR addons installed. This can even lead to a non booting system! So Team CoreELEC does highly recommend to perform a clean, new install of Amlogic-ne, CE-21! For more information about the install please follow the CoreELEC Wiki.

Is it possible to restore a backup from an existing Amlogic-n* installation?

Basically it’s not possible because of some architecture limitations.
The ARCH difference will break every installed binary addon. Like as example any PVR addons installed. This can even lead to a non booting system! So Team CoreELEC does highly recommend to perform a clean, new install of Amlogic-ne, CE-21! For more information about backup please follow the CoreELEC Wiki.

What does the message ‘no “super” partition found’ mean?

Amlogic-ne CE-21 needs Amlogic Android TEE tools from the installed Android system on internal eMMC. Older versions of ceemmc removed such needed partitions. If you encounter this message, a recovery of Android on eMMC is required. If supported by your system a internal install can be performed again.

12 Likes