Skip to content

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

Pre-release
Pre-release

Choose a tag to compare

@SamuriHL SamuriHL released this 03 Aug 16:13
· 409 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 a small incremental update to
v22.0-samurihl-20260728200740
(see that release and its predecessors for the standing feature set: Blu‑ray disc
menus, PQ‑correct menu and subtitle graphics, HDR10+ → Dolby Vision conversion,
DV → HDR10 that stays in HDR10, FEL profile‑7 reconstruction on non‑DV displays,
VS10 output on non‑DV displays, VSVDB override, tone‑mapping target controls).

One user-facing fix this cycle: DTS soundtracks no longer drift out of sync.
Everything else is an upstream package refresh.

⚠️ 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.


🔊 DTS audio no longer drifts out of sync

The symptom. On DTS and DTS‑HD soundtracks, audio and video gradually slid
apart. Every few minutes the player would notice and yank the picture a whole
frame to compensate — visible as a small hitch — then drift again, and the next
correction would go the other way. Seeking backwards made it look fixed for a
while because it reset the drift. It never actually settled.

Titles with Dolby audio (AC3, E‑AC3, TrueHD/Atmos) were unaffected, which is the
clue that led to the cause.

What was wrong. Two parts of this build's audio timing disagreed about how
tight is tight enough. The passthrough layer that re-times audio was allowing DTS
to wander up to 100 ms before doing anything about it, while the player above
it reacts to any A/V error beyond about 20–27 ms. A tolerance wider than the
gate it sits inside cannot ever settle: the audio clock roams inside its own slack,
trips the player's alarm, and the only correction the player has is to move the
picture by a whole video frame — about 42 ms — which overshoots to the opposite
edge. Then it happens again in reverse, forever.

The measurement that confirmed it: a 4‑hour DTS‑HD MA title logged 44 of these
whole-frame corrections, all exactly ±41708 µs, and the audio-vs-clock offset
wandered between −218 ms and −380 ms across the film. The E‑AC3 title played
immediately afterwards on the same box logged zero corrections and held its
offset flat at −135 ms ±1 ms.

The fix. DTS now uses the same 10 ms tolerance as AC3 and E‑AC3, which sits
comfortably inside the player's gate, so corrections stop being triggered at all.

  • Applies to DTS, DTS‑HD MA, DTS‑HD and DTS core passthrough.
  • TrueHD/Atmos deliberately keeps the wider tolerance. It shares the same
    code path but never had the symptom, because its MAT packing supplies
    sub‑frame timing information that DTS has no equivalent of. Its behaviour is
    byte‑for‑byte unchanged.
  • AC3 and E‑AC3 were already at the tighter value and are unchanged.

This corrects the timing at its source rather than by loosening the player's sync
gate, which would have undone an earlier fix for slow passthrough drift.

⚠️ This is exactly what needs testing. The fix is reasoned from logs and has
not yet been confirmed on a long DTS title in the field — that is the main
reason this build exists. If you have a DTS or DTS‑HD title that used to drift,
please try it. With debug logging enabled you can check it directly: search the
log for CDVDClock::ErrorAdjust. Dozens of those lines over a film means the
problem is still present; near zero means the fix is working.

📦 Upstream refresh

Rebased onto current upstream CoreELEC. The Kodi side has no Amlogic-relevant
changes since the last release, but the distro side picks up a substantial batch
of package updates:

  • libCEC 8.1.1, including an upstream fix for setups with multiple CEC
    adapters
  • glibc 2.44, binutils 2.47, libtool 2.6.2, systemd 261.2
  • mbedTLS 3.6.7, SQLite 3.53.4, libmicrohttpd 1.0.7, libdisplay-info 0.4.0
  • refreshed bundled addons (system-tools, filebrowser, proftpd, oscam, ttyd,
    squeezelite, fluidsynth and others)
  • removal of the unused p8‑platform / kodi‑platform packages

🧹 Under the hood

  • The passthrough audio debug line now always reports which timing tolerance a
    stream opened with (pt-dtshd: jitter threshold 10ms). It was previously
    suppressed by a leftover condition from when this retiming was an optional
    feature — it has been unconditional in this fork for a long time, and the
    logging now says so.

🚧 Withdrawn before release

Two other changes were built this cycle and then removed again before this
release: a fix for dropped fractional refresh-rate switches, and a Dolby Vision
EDID override to allow 4K60 output on displays that under-report support. Both
were withdrawn after review found defects in them — including one that could have
hung the box, and one that could have left a display with no picture and no way
to reach the menu to undo it. Neither is in this build, in any form.

The underlying problems are real and are now much better understood; they are
listed under known limitations below and will be revisited properly.


Known limitations

Being explicit about what is not fixed:

  • The DTS fix is not yet field-validated. See above — that's what this build
    is for.
  • Fractional refresh-rate changes can still be dropped. When only the
    fractional flag changes and the resolution stays the same, the switch may not
    reach the display, so a 23.976 title can end up running on a 24.000 output (or
    the reverse). The symptom is a repeated small stutter every ~40 seconds. The
    cause is now understood; the attempted fix was withdrawn (above).
  • Re-plugging HDMI mid-playback drops the display to its preferred mode, and
    nothing puts it back. Power-cycling an AVR during a 24p film can leave you at
    2160p60 until you restart playback.
  • Occasional reboots during Dolby Vision playback are traced to the dovi.ko
    blob's own stack-protector reading a kernel structure offset that moved between
    kernel versions, producing a bogus "stack corrupted" abort. It is a fault in the
    closed-source module, not in this build, and there is no shipped fix here — a
    candidate workaround is under test locally.
  • Graphics authored brighter than the GUI peak still clip. Raising
    Settings → System → Display → GUI peak luminance raises the ceiling.
  • HDMV menu correction is validated on exactly one disc — the only one on hand
    with HDMV menus on an HDR playlist. The SDR path is provably unchanged.
  • Player-led Dolby Vision cannot both lift shadows and keep letterbox bars
    black
    — a hardware limitation confirmed on both G12B and S6. Display-led
    (TV-led) output is unaffected. Set Level 5 (active area) mode to Source
    for black bars, Zero for the shadow lift.
  • The CMv4.0 shadow improvement is display-led-first, for the same reason.
  • Dolby Vision → HDR10 conversion can look over-bright if your display or EDID
    advertises a peak at or above ~3000 nits. A cap is identified but not implemented.
  • A CoreELEC logo frame can still flash when a disc opens.
  • 3D (MVC) and VC‑1 Blu-rays still don't decode. Both are upstream
    Amlogic/CoreELEC limitations rather than anything this fork introduced.

Source

  • CoreELEC (distro): SamuriHL/CoreELEC tag v22.0-samurihl-20260803114520
  • Kodi: SamuriHL/coreelec-xbmc tag v22.0-samurihl-20260803114520

Checksums (SHA256)

b7f5e55a55939558886697ced8e98aa00014e50c1d0c9907c3266f20c5cd2c7c  CoreELEC-Amlogic-no.aarch64-22.0-Piers-samurihl-EXPERIMENTAL_20260803114520.tar
dcf76cf4be6e0feca177d5699740ceeed731bf4f5332f8d52c04a2d4fe386b47  CoreELEC-Amlogic-no.aarch64-22.0-Piers-samurihl-EXPERIMENTAL_20260803114520-Generic.img.gz