[EXPERIMENTAL] CoreELEC 22 · samurihl DV build (20260720175631)
Pre-release⚠️ EXPERIMENTAL · UNSUPPORTED · USE AT YOUR OWN RISK
This is an unofficial, experimental CoreELEC 22 build. It is NOT an official
CoreELEC release and it is NOT a supported CE22 port. I am not a CoreELEC 22
port maintainer, and I will not be providing support, bug fixes, updates, or
ongoing maintenance for this build.
The only purpose of this build is to give Amlogic AM9 Pro-class users a more
complete Dolby Vision experience than stock CoreELEC 22, by carrying a set of
custom Kodi features I built for my own device. That is the entire scope.
READ THIS BEFORE YOU FLASH ANYTHING
- USE ENTIRELY AT YOUR OWN RISK. There is no warranty of any kind, express
or implied. It may fail to boot, misbehave, break Dolby Vision, or do nothing
useful on your hardware. - BACK UP YOUR CURRENT INSTALLATION FIRST. Take a full CoreELEC backup
(Settings → CoreELEC → Backup) and/or image your existing boot media before
you install anything from here. Assume you may have to restore it. - Prefer a SEPARATE SD card or USB stick you can boot from, instead of
overwriting a working internal (eMMC) install. - Do NOT report problems with this build to the CoreELEC team or forums.
This is not their build; it is not their responsibility. Do not ask them to
support it. - I am also not offering support. If it breaks, you keep both pieces.
By downloading or using any file in this release you accept all of the above.
Install
- Clean install (recommended): flash the
*.img.gzto an SD card or USB with
balenaEtcher (or the Amlogic USB Burning Tool for eMMC), then boot from it. - In-place update: copy the
*.tarto the/storage/.updatefolder on an
existing CoreELEC install and reboot. (Back up first — see above.) - Verify your download against the SHA256 sums below before flashing.
What's changed in this update
This is an incremental update to
v22.0-samurihl-20260719091832
(see that release and its predecessors for the standing feature set: VS10 on
non-DV displays, VSVDB override, tone-mapping target controls, disc menu
playback, reference-player capability registers). The headline this time:
the disc-menu stack grew up — a weekend of structural fixes, every one
validated against a Panasonic UB820 as the reference — and titles no longer
lose their opening seconds to an HDMI Dolby Vision re-lock.
⚠️ Still experimental and completely unsupported — see the disclaimer above.
Back up your current install before flashing.Dolby Vision still requires
dovi.ko(the CE22 5.15 build) installed on your
device — it is not bundled; install it yourself as on stock CoreELEC 22.
🎬 Titles start at their first frame now (DV discs)
On Dolby Vision discs, jumping from a menu to a title (or between segments)
used to drop the HDMI signal to SDR for an instant and then re-engage DV —
your display would spend seconds re-locking while the title played behind a
blank screen, swallowing the opening (Superman: the entire first fanfare
shot). Some displays also flashed a briefly desaturated frame at the switch.
Root cause was in the kernel's Dolby Vision driver: a decoder swap starves it
of frames for a moment and it tore the DV signalling down for a transition
that wasn't real. A new kernel patch holds the DV signal steady across those
gaps for the whole disc session (menus and titles are all DV output on these
discs anyway), so the display never sees a transition at all: no blank, no
flash, no re-lock — the title is on screen from its first frame. The
signal still returns to normal when you stop the disc.
🧭 Menu stack: structural fixes, not band-aids
- Still-frame menu pages render. Test-pattern and settings pages that are
a single held frame (Spears & Munsil SDR/AUDIO discs' Video Settings
patterns) used to show a black screen under the menu graphics; the decoder
now delivers held frames reliably. (Thanks to the user report that pinned
this down.) - Disc-dictated audio can no longer be lost. The disc VM's audio-stream
selection is now resolved live against the currently playing segment on
every packet — the entire class of "menu music or title audio silently
missing after a jump" bugs (stale stream events across segment changes) is
structurally gone. - Corrupt-packet cleanup at glued segment seams. Discs authored as
non-seamless playitem chains (TNG's episode stubs and many menu loops)
produced decoder-reference errors at every boundary from truncated packet
tails; the seams are now cleaned and a backstop drops anything that slips
through. Zero corrupt packets reach the decoders on our test discs (was ~10
per session). - The on-screen state follows what you SEE, not what the demuxer is doing.
Menu state, and the OSD's chapter list / total time, used to flip seconds
early (the player reads ahead of what's on screen). They're now applied on
the render clock, when the viewer actually reaches the boundary — input
routing, seek availability, and the info display all agree with the picture. - One transition engine. The four separately-grown code paths that handled
segment changes (seamless continue / menu→title jump / drain-out) are now a
single classified transition with an explicit survival contract for the
demuxer, decoders, and queues — the place where most menu bugs were born is
now one auditable routine. - libbluray 1.5.0 (from 1.4.0), with disc-authoritative DV/HDR10+ stream
hints from the playlist tables, relaxed user-operation masks matching
reference players, and chapter names from disc metadata where discs
carry them.
🕰️ Clock fix: the ~2-minute-mark A/V drift
A boot-time clock condition could make video sync run away a couple of
minutes after power-on (audio drifting a second or more behind, then
snapping). Root cause was the system clock being slewed by NTP right after
boot while the vsync clock held a stale offset; the offset now follows
continuously. Fixed and validated through the exact trigger window.
🧹 Under the hood
- Full production review pass over the new work: probe/debug hooks removed,
diagnostic logging gated behind debug loglevel, no leftover instrumentation. - Rebased onto current upstream CoreELEC 22 (all upstream fixes included; our
changes verified byte-identical across the rebase).
Known rough edges (yes, we know)
- A ~1/3-second stream-start trim remains at title start (matches stock
player behavior; on the list, not a regression). - VC-1 discs still don't play (endless busy spinner) — known, open.
- 3D Blu-rays (MVC) don't decode — known, open.
- Discs beyond our test set are genuinely untested. Menus are the most
disc-author-creative corner of the Blu-ray spec; something out there will
break this.
How to help
Throw your disc library at it: HDMV and BD-J menus, menu navigation,
menu→title jumps, title starts (watch the very first seconds on DV discs!),
chapter skips, long titles played to the end. When something misbehaves, grab
a debug log of the failure (settings → logging, or
kodi-send --action=ToggleDebug), note the disc title/edition, and report it.
"Menu X worked perfectly" reports are almost as valuable as bug reports.
🔬 Reminder: display testing still wanted
The experimental target-luminance controls from earlier releases still need
eyes on real panels: sweep "VS10 target minimum luminance (reference black)"
on a 4000/10000-nit black-clip pattern via VS10 HDR10 output, compare a
profile 7 FEL title against a DV display, and watch TrueHD/Atmos A/V sync
across a full movie. Please keep the reports coming.
Install
- Clean install: flash the Generic
*.img.gz(SD/USB via balenaEtcher, or the
Amlogic USB Burning Tool for eMMC). - Update in place: drop the
*.tarin/storage/.updateand reboot. - Verify your download against the SHA256 sums below before flashing.
- On other Amlogic-no boards (Odroid / Khadas / Radxa): use the
*.tarupdate, or
your board's own image.
Source
- CoreELEC (distro):
SamuriHL/CoreELECtagv22.0-samurihl-20260720175631 - Kodi:
SamuriHL/coreelec-xbmctagv22.0-samurihl-20260720175631
Checksums (SHA256)
5f33fc64e0ef69d42b2ff2d2db834d56f7ea56096bb3f26554fbab1f09a9f075 CoreELEC-Amlogic-no.aarch64-22.0-Piers-samurihl-EXPERIMENTAL_20260720175631.tar
9074b8b7225f0676345f67dfc3c88da7527fa90eba72339778d9ea02df3dbb66 CoreELEC-Amlogic-no.aarch64-22.0-Piers-samurihl-EXPERIMENTAL_20260720175631-Generic.img.gz