CE-NG Dolby Vision (+FEL) for DV-licensed SOCs (s905x2, s922x/z, s905x4)

Out of curiosity, I’ve downloaded some movies I already own to make a direct comparison and also to see if AV1+DV works, the famous profile dav1.10.08.

  1. It works for the most part. Out of the 5 movies I picked up, 1 does not trigger DV on my TV even though mediainfo confirms it should. The 4 remaining ones trigger DV and everything seems to work properly

  2. On the quality side, nothing to do with the AV1 format by itself, all movies have a really low bitrate and filesize. 4~7 GB for ~2 hours 4K movies is way not enough. On a high end OLED TV, there’s quite some clearly visible banding and posterization, especially on dark scenes with low light. The worst of the worst was the movie 300, natively using a lot of grain for artistic intent, which is properly awful to watch! This is visually horrendous!

One of the movies got a near acceptable visual result on the various scenes I tested, provided you’re not too picky on details.

I downloaded both samples to test and… no joy :frowning: Launching them, I only get Kodi’s spinner and nothing happens, no video trigger, no picture, nothing. I can only “stop” to get the Kodi interface back and that’s all.

I’m using CE-NG 20241129

Encountering similar issue to Hokey1 and somewhat similar to boxr4k.

DolbyVision Display capability is not recognized when connecting the playback device through AVR due to EDID parsing error.

Configuration:
Ugoos AM6b+ (Amlogic S922x RevB) → Pioneer VSX-LX305 → Hisense U7N
CoreELEC-Amlogic-ng.arm-21.1.1-Omega_nightly_20250106-Generic
/storage/dovi.ko 1292544
Cabling HDMI 2.1 certified
VSX-LX305 HDMI Input set to 4K Enhanced (issue persists on ports set to 8K Standard and 8K Enhanced).
VSX-LX305 HDMI Out - Main - DolbyVision Enabled.

EDID parsing appears broken when connecting AM6B+ through AVR.
EDID parsing works correctly when connecting AM6B+ directly through TV.

dispinfo:
dispinfo AM6B+ → LX305 → U7N

Relevant sections:

++++++++++++++++++++++++++++++++++++++++++++++++
+ /sys/devices/virtual/amhdmitx/amhdmitx0/edid +
++++++++++++++++++++++++++++++++++++++++++++++++
....
LTE_340M_Scramble: 0
  DolbyVision2  HDR/13  DeepColor

Should have DolbyVision capability, however

++++++++++++++++++++++++++++++++++++++++++++++++++
+ /sys/devices/virtual/amhdmitx/amhdmitx0/dv_cap +
++++++++++++++++++++++++++++++++++++++++++++++++++
The Rx don't support DolbyVision

Raw EDID

00ffffffffffff00412f671400000000001f010380a65d780a0f91ae5243b0260f505421080081c0814081800101010101010101010108e80030f2705a80b0588a0094245300001e000000fc0041562052656365697665720a20000000fd0018780fff3c000a202020202020000000000000000000000000000000000000018602037a704e61606665101f5d5f2062643f405e3b097f070f7f071507503f06c04d02005706035f7e035f7e01677e0383cf01006e030c004400f83c2c0080010203046ad85dc40178800b020000e305ff01e200fbe20f0fe3060d01eb0146d000491a7292565f9de61146d0007000e5018b84906de5016241da010000000000b3

EDID Decode:

  Vendor-Specific Video Data Block (Dolby), OUI 00-D0-46:
    Version: 2 (12 bytes)
    Supports YUV422 12 bit
    DM Version: 4.x
    Backlt Min Luma: 75 cd/m^2
    Interface: Standard + Low-Latency
    Supports 10b 12b 444: Not supported
    Target Min PQ v2: 60 (0.00478965 cd/m^2)
    Target Max PQ v2: 2965 (807 cd/m^2)
    Unique Rx, Ry: 0.66796875, 0.32421875
    Unique Gx, Gy: 0.28515625, 0.66796875
    Unique Bx, By: 0.15234375, 0.05078125
  Vendor-Specific Audio Data Block (Dolby), OUI 00-D0-46:
    Version: 1 (7 bytes)
    Height speaker zone present
    Surround speaker zone present
    Center speaker zone present
  Vendor-Specific Video Data Block (HDR10+), OUI 90-84-8B:
    Application Version: 109

Setting fw_setenv hdr_priority 0 as suggested in previous posts starts the display in HDR10 mode as expected, but has no effect on correct EDID parsing and DolbyVision availability in CoreELEC

Any suggestions appreciated. Happy to provide any additional details as needed.

EDID is correctly parsed by CE-NO:

N2:/sys/class/amhdmitx/amhdmitx0 # cat dv_cap
DolbyVision RX support list:
VSVDB Version: V2
2160p60hz: 1
Parity: 0
Support mode:
  DV_RGB_444_8BIT
  DV_YCbCr_422_12BIT
  LL_YCbCr_422_12BIT
IEEEOUI: 0x00d046
EMP: 0
VSVDB: eb0146d000491a7292565f9d
1 Like

Interesting…

If you have to use the NG (for FEL, etc), you can try the couple of workarounds for now:

  1. check the updated EDID from AVR in EDID editing tools and see if they can properly parse it. Sadly some tools and HW manufacturers that claim compliance have different interpretations of the standard. So combined with inability to update older hardware with model/manufacturer-specific workarounds, we end in situations like this. Luckily there hw and sw solutions for this.
  2. if AVR EDID has no issues (and it looks like it’s valid), then compare it with the EDID from TV
  3. note the differences and try to adapt the original TV EDID with necessary audio blocks and force-load this modded EDID and see if that works.

I have to use similar approach for my setup, but due to soundbar’s fault. Stupid Samsung just drops a bunch of fully supported display modes from EDID for seamingly no reason (there is still available space in EDID).
So I edited the EDID that I got from the bar, load it via autostart script and all is peachy.

Btw, did you try to check the system logs for any EDID parsing messages (don’t know how verbose that process is though) that might give us a hint what’s not compatible with the current parser?

I checked the EDID using EDID Decode

it parsed, but produced some errors:

Warnings:

Block 1, CTA-861 Extension Block:
  IT Video Formats are overscanned by default, but normally this should be underscanned.
  Video Data Block: For improved preferred timing interoperability, set 'Native detailed modes' to 1.
  Vendor-Specific Video Data Block, OUI DA-41-62: Unknown OUI DA-41-62.

Failures:

Block 0, Base EDID:
  Detailed Timing Descriptor #1: Mismatch of image size 1428x804 mm vs display size 1660x930 mm.
  Empty Descriptor: Use Dummy Descriptor instead of all zeroes.
Block 1, CTA-861 Extension Block:
  Video Capability Data Block: IT video formats are always underscanned, but bit 7 of Byte 3 of the CTA-861 Extension header is set to overscanned.

EDID conformity: FAIL

Don’t know how important they are, but maybe some of these failures are tripping the parser in the 4.9 kernel

1 Like

EDID Conformity warnings occur on the EDID pulled directly from the TV as well so that doesn’t appear to be the distinguishing factor.

For comparison:
AVR (VSX-LX305) supplied EDID

00 ff ff ff ff ff ff 00 41 2f 67 14 00 00 00 00
00 1f 01 03 80 a6 5d 78 0a 0f 91 ae 52 43 b0 26
0f 50 54 21 08 00 81 c0 81 40 81 80 01 01 01 01
01 01 01 01 01 01 08 e8 00 30 f2 70 5a 80 b0 58
8a 00 94 24 53 00 00 1e 00 00 00 fc 00 41 56 20
52 65 63 65 69 76 65 72 0a 20 00 00 00 fd 00 18
78 0f ff 77 00 0a 20 20 20 20 20 20 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 4b

02 03 7e 70 52 61 60 66 65 76 75 db da 10 1f 5d
5f 20 62 64 3f 40 5e 3b 09 7f 07 0f 7f 07 15 07
50 3f 06 c0 4d 02 00 57 06 03 5f 7e 03 5f 7e 01
67 7e 03 83 cf 01 00 6e 03 0c 00 42 00 f8 3c 2c
00 80 01 02 03 04 6a d8 5d c4 01 78 80 5b 02 30
78 e3 05 ff 01 e2 00 fb e2 0f ff e3 06 0d 01 eb
01 46 d0 00 49 1a 76 92 56 5f 9d e6 11 46 d0 00
70 00 e5 01 8b 84 90 6d e5 01 62 41 da 01 00 21

TV (U7N) supplied EDID

00 ff ff ff ff ff ff 00 20 a3 ac 9a 00 00 6d 61
01 22 01 03 80 a6 5d 78 0a 0f 91 ae 52 43 b0 26
0f 50 54 21 08 00 81 c0 81 40 81 80 01 01 01 01
01 01 01 01 01 01 08 e8 00 30 f2 70 5a 80 b0 58
8a 00 94 24 53 00 00 1e 6f c2 00 a0 a0 a0 55 50
30 20 35 00 94 24 53 00 00 1e 00 00 00 fc 00 48
49 53 45 4e 53 45 0a 20 20 20 20 20 00 00 00 fd
00 18 78 0f ff 77 00 0a 20 20 20 20 20 20 01 54

02 03 7d 70 51 61 60 66 65 76 75 db da 10 1f 5d
5f 20 62 64 3f 40 38 0f 7f 07 09 7f 07 3d 07 c0
5f 7e 07 5f 7e 01 15 07 50 57 06 03 67 7e 03 e2
00 fb e3 05 ff 01 6e 03 0c 00 30 00 f8 3c 2c 00
80 01 02 03 04 6a d8 5d c4 01 78 80 6f 02 30 78
e5 01 62 41 da 01 eb 01 46 d0 00 4d 1a 76 92 56
5f 9d e3 06 0d 01 e2 0f ff e5 01 8b 84 90 6d 6d
1a 00 00 00 00 30 78 00 04 84 11 66 18 00 00 54

Compare of Vendor-Specific Video Data Block (Dolby), OUI 00-D0-46: shows one diff only

VSX-LX305

    DM Version: 4.x

U7N

    DM Version: 5.x

The only difference between DM metadata levels according to https://professionalsupport.dolby.com/s/article/Dolby-Vision-Metadata-Levels appears to be the **LEVEL 11** **Automatic Picture Optimization (APO)** parameter which deals with content type and white point settings and seems to be not defined in both EDID instances.

I don’t have a good understanding on how the EDID translates into defining the capabilities stored in /sys/devices/virtual/amhdmitx/amhdmitx0/dv_cap but just blindly guessing, this seems like it would be a good starting point to learn: EDIT: better source

As Portisch mentioned above, ce-no appears to parse this correctly, so this brings hope that it’s not a fundamental issue in my overall AV configuration. Knowing this, EDID tweaking looks like it would be a promising path forward.

Thank you and @Portisch for help on this.

1 Like

A post was merged into an existing topic: Homatics Box R 4K Plus

Looks like I am seeing a similar issue here (thread below). How are you planning to tweak the EDID? Any guidance is appreciated. Thanks

1 Like

The intent was to retrace CPM’s steps in this thread

but this didn’t deliver desired results. Attempting to load a modified EDID (inject TV EDID while going through AVR)

echo load ~/edid.txt > edid

does not appear to make a difference - EDID does not seem to change and as Portisch pointed out a reboot may be required for this to be picked up. I don’t have enough understanding of CoreELEC and 4.9 kernel to follow along what CPM did here…

I have since run into other issues with DV playback on the device (unrelated to this one) and am putting this on hold for now, falling back to HDR10. Good luck and hope you have better success.

1 Like

Per this post, all my issues are resolved with nightly build 20250117 https://relkai.coreelec.org/Amlogic-ng/ce-21/CoreELEC-Amlogic-ng.arm-21.1.1-Omega_nightly_20250117-Generic.img.gz

Thank you @Portisch this is hugely appreciated!

@simonhust666 You mentioned you have a set top box using A311D-K? What’s it called? Where would we find it?

It was a prototype for Magic_Cube_X1,now the project was ended.I got this from 闲鱼 market.The prototype has 3 chips,A311D,A311D-H,A311D-K.Maybe u can get this chip from Alibaba, A311D A311D2 A311D-K 集成电路 IC芯片 库存供应 电子元器件

Hi.
In the “Settings / System / CoreELEC”, the “Disable Dolby Vision support” only appear if the TV supports Dolby Vision?
Is there another way to know if “dovi.ko” was loaded correctly?

You can SSH to the box and use command lsmod | grep dovi

2 Likes

I have the file “dovi.ko” in the root of the “USB Flash Drive” that CoreELEC is installed on. Same location as files “dtb.img” & “kernel.img”.

Can I use this command on Windows?

You dovi.ko placement is fine.

lsmod | grep dovi has to be run from the CE terminal. You need a Windows app like Putty to make an SSH connection to your media box so that you can send terminal commands.

1 Like

CoreELEC:~ # lsmod | grep dovi
dovi 929792 0

The DV module is loaded, you just need a DV capable TV for the DV settings to appear in the menu.

1 Like

I understood. Thanks for the help.

Working Perfectly In LG OLED C4 Flawlessy , Dune Homematics Box is just awesome one can enjoy both android tv and DV P7 FEL, unlike Ugoos(i know ugoos AMB6+ can perform better but it wont support all codecs unlike Dune box ).

Boot Time is like 28 seconds(usb 3.0 (100Mbps RW speed) connected to Dune 2.0 Port , can play pause fast forward seamlessly

tested multiple Dolby Vision Profile 7 FEL MKV files, and they played back flawlessly, confirming FEL support. One key test involved playing:

  • DL P7 CMV4.0 4000 nits
  • DL P7 CMV2.9 4000 nits

These files typically display a blank red screen on non-FEL-capable devices, but on this setup, they played correctly—validating full Dolby Vision FEL playback Test Video

Dolby TrueHD, Atmos, DTS-HD MA passthrough working fine

LG Oled Remote working fine with CoreElaac no need to remote.conf file



1 Like

Can someone clarify why only CoreELEC can do FEL playback, while Android/Android TV cannot?

Is there a missing abstraction layer or something that could be added to Android to enable FEL support on these devices?

I’m asking because Dune devices offer a great library organizer along with excellent Blu-ray menu support.

Will FEL eventually be supported on Android after further development, or is it fundamentally impossible to achieve FEL playback within AndroidOS on compatible devices?