CoreELEC 21.1-Omega Amlogic-ng Discussion

I found this issue of DV after update from ce 21.0 ng to 21.1.1ng on ugoos am6plus (without B). Dolby Vision for Minix U22X-J (Max) and Ugoos AM6+ - #2342 by atirage21

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

You hardware have set hdr_policy=1.
This is done by a wrong Android setting.

Run on CE SSH and check after reboot

fw_setenv hdr_policy 0
sync
reboot

Then check again:

cat /sys/devices/virtual/amhdmitx/amhdmitx0/dv_cap
1 Like

Hi there. I have issue long long time.
Allways if I try update my X96max / S905X3 rev c.

After update to CoreELEC (official): 21.1.1-Omega or any Omega 21 when my box go to the standby and back to online state wired network not working.
After restart CE problem is solved until go to standby again.

When i go back to Nexus 20.5 there is no problem.

I try create some logs but I can upload or ssh connect to the box during this problem is not fixed. After restart all works great but logs are new without problems.

https://paste.coreelec.org/TalentedBeluga

Use shutdown, not suspend.
I have same issue including Kodi freeze after resume.
There is no solution for this as the reason is unknown, maybe kodi, maybe samba, mabye…

1 Like

I had exactly the same issue with Suspend. But so far with 21.1.1 it hasn’t happened once. Of course now that I’ve said that it probably will :slight_smile:

Reason is not received ip after suspend. It lost connection to net after suspend and dont reconnect after wakeup. I dont have freezing on ugoos am6plus. On old CE19 was nice wakeup also on x88king with patch of start 100 mbit for all start and resume after suspend through autostart file with commands as:
ethtool -s eth0 speed 100 duplex full

It not helped. Alwyas i dont see optoons for DV in gui. But only by downgrading to CE21.0ng is setting for DV back. “The Rx don’t support DolbyVision” is maybe not issue in case, that is not connected on TV with DV. But in CE21.0ng i saw this setting for DV also in this case. Here is picture from CE21.1.1ng with dovi.ko in flash. https://paste.coreelec.org/MortgagePorthos. Nothins was changed after run command “fw_setenv hdr_policy 0” and restart. But also is therefore question : why wrong setting of HDR is OK in CE21.0ng for showing DV menu in coreelec?

Here is info from CE21.0ng and taked photo:

With disabled settings in menu
https://paste.coreelec.org/StovePratt

With enabled DV in settings:
https://paste.coreelec.org/FoldingCinch

…and i tried again run you ssh commands in CE21.0ng and output was 0 and also 1 (in android i had usually set to hdr adaptive but after ssh commands “fw_setenv hdr_policy 0” was set to hdr always - it is ok ?): https://paste.coreelec.org/PeggyBecame

And last part of this story: i updated again 21.0 to 21.1.1ng with last setting from 21.0 (and again was lost menu for DV in Kodi) https://paste.coreelec.org/NightieRiviera

Maybe is it feature of firmware from Ugoos, if is not connected to tv with DV.

It’s intended behavior of CE21.1 that menu is only shown when all three conditions are met:

  • SOC has DV-license
  • dovi.ko is right version & found
  • connected to DV-capable TV.

Maybe in 21.0 (quite a while ago) the third condition wasn’t in, and therefore you still see menu.
So please retest on DV-capable TV, and in case it still fails, come back.

2 Likes

You TV does NOT report DV capability!

User your EDID:

00ffffffffffff0034a911c30101010100150103800000780adaffa3584aa22917494b00000001010101010101010101010101010101023a80d072382d40102c4580ba882100001e023a801871382d40582c4500ba882100001e000000fc0050616e61736f6e69632d54560a000000fd00173d0f440f000a202020202020014202032272509f9014052013041203110216071506012309070168030c002000b8260f011d80d0721c1620102c2580ba882100009e011d8018711c1620582c2500ba882100009e011d00bc52d01e20b8285540ba882100001e011d007251d01e206e285500ba882100001e8c0ad090204031200c405500ba8821000018000000fa

And decode it by yourself:
https://people.freedesktop.org/~imirkin/edid-decode/

No DV block…

1 Like

I am using CoreELEC 21.1 on am6b+ and I am was tinkering with AV1.

The original libdav1d.so is 32-bit with no optimizations (see strings below):

libdav1d.so.7.0.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, stripped

The libdav1d.so that is currently present has the following strings:

dav1d_version_api
dav1d_version
Overrun in OBU bit buffer
.gnu.version
.gnu.version_d
.gnu.version_r
.note.gnu.gold-version

I compiled a new libdav1d using aarch64 because the CoreELEC kernel shows as aarch64.
The file is 64 bit now and consumes a few hundred more kb but it has debug features (not stripped):

ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=ba49436ad4fce53353637d05389c52d0585c374b, not stripped

The strings of the file are:

dav1d_version
dav1d_version_api
Overrun in OBU bit buffer
inv_txfm_add_vert_8x16_neon
inv_txfm_add_vert_dct_8x32_neon
inv_txfm_add_vert_dct_8x64_neon
overlap_coeffs_0
overlap_coeffs_1
dav1d_sgr_box5_vert_neon
dav1d_ipred_reverse_16bpc_neon
dav1d_ipred_reverse_8bpc_neon
dav1d_sgr_box3_vert_neon
dav1d_version_api
dav1d_version
.gnu.version
.gnu.version_r

I can see that neon optimization is present in the aarch64 compiled .so file.

My question is how can I use the aarch64 binary with neon optimizations? Do I just paste the file in /usr/lib/xxxx.so?

I feel like a neon optimized binary taking full advantage of armv8 might be able to decode 4k video on S922x making it future proof with software decoder.

1 Like

Please let us know if this works. This could solve the current largest drawback to this device.

I’ll try my best. I think I need someone from CE team to tell me how to redirect the linked binary file to a different location by using advanced xml or some other way.

One of the other ways is to blindly overwrite the file present in the current AM6b+ but it carries the risk of breaking the android 9 AV1.

Basically I am hoping there is a way to inject a new library at boot time like we do with dovi.ko and we can use my 64 bit file. This would be the cleanest and it would be following in the footsteps of established mathods by CE which can help all 64 bit devices in the future.

Copy file somewhere to /storage and use mount bind:

mount -o bind /storage/some_file.so /usr/lib/.../some_file.so
systemctl restart kodi
1 Like

Thank you!! The mount works and I can see the file size of the linked so library change.

systemctl restart kodi

Causes a blank screen and kodi does not restart. Trying to debug that tomorrow now. Restart works fine when I don’t mount the new .so file.

fyi: When I was looking at the pixel buffers previously I found that all software decoded video seemed to use the gui layer, instead of the video layer. Issue with this is that the gui layer has a 8-bit RGB format, so video seems to go from YCbCR → 8-bit RGB → YCbCr.

Wouldn’t the quality loss of this conversion, especially the 8-bit part, make software decoded av1 (assuming 10-bit, so really any SW decoded 10-bit video) have a quality loss that would be considered unacceptable as an actual solution to playing a video?

I wasn’t aware of this. It definitely throws a wrench in my plans

I think that getting AV1 working would still be a major step forwards. Lots of video codecs use software decoding and look fine to me.

Vulkan is alternative way for accelerating of av1 videos. But is needing a cooperation from Mali. Example: Khronos Blog - The Khronos Group Inc

Device: Ugoos AM6B+, CoreELEC 21.1.1
Source: HDR10+ content on a DV & HDR10 only display. Dolby Vision enabled in CoreELEC settings.
File: HDR10+ file
Issue: Wrong colors displayed, rainbow like.