Skip to content

[EXPERIMENTAL] CoreELEC 22 · samurihl DV build (20260720175631)

Pre-release
Pre-release

Choose a tag to compare

@SamuriHL SamuriHL released this 20 Jul 22:04
· 497 commits to samurihl-ce22 since this 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.gz to an SD card or USB with
    balenaEtcher (or the Amlogic USB Burning Tool for eMMC), then boot from it.
  • In-place update: copy the *.tar to the /storage/.update folder 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 *.tar in /storage/.update and reboot.
  • Verify your download against the SHA256 sums below before flashing.
  • On other Amlogic-no boards (Odroid / Khadas / Radxa): use the *.tar update, or
    your board's own image.

Source

  • CoreELEC (distro): SamuriHL/CoreELEC tag v22.0-samurihl-20260720175631
  • Kodi: SamuriHL/coreelec-xbmc tag v22.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