github pannal/CoreELEC T3
Release T3

8 hours ago

p3i T3

This release is much bigger than anticipated. We've had a lot of good contributions from other developers, a slew of exclusive features, and handle a lot more edge case scenarios gracefully now. Here are the major changes:

HDR10/SDR quality

While investigating stuttering issues and PGS subtitle color accuracy, I stumbled upon the frame pacing logic of the VS10 core. We already use the VS10 core for certain format conversions, and it uses a different method for frame pacing, which seemed to work quite well.
An idea was born.

After some finagling the "VS10 HDR10 to HDR10" and "VS10 SDR to SDR" (existed before, but buggy) pipeline was implemented. We now by default use the excellent frame pacer from the VS10 core, which makes an astounding difference in playback quality. Visually this means less stuttering, better panning shots, and even a better perceived picture quality, probably due to more even frame pacing.

This also ensures correct colors in PGS subtitles, as the VS10 core, when properly initialized, uses its own color mapping instead of having to rely on BT2020 shaders.

The source material is left intact in these modes, so consider it a "passthrough" rather than a "conversion".

Doubling down on this approach, the old "HDR PQ Brightness" control has been fully decoupled from VS10 modes and two new settings were added: One peak brightness (Nits) slider for the GUI/OSD/Subtitles of DV content (default: 300 Nits), and one specifically for HDR10 (default: 316 Nits).

Video Processor modes

If you've used the VP modes before, you probably noticed bad colors in the OSD in certain scenarios. This has now also been completely resolved without using BT2020 shaders, through a dynamic sdr_degamma curve which gets used by the VS10 core. The DV peak brightness setting applies to these modes as well; it produces a similar brightness curve by dynamically modifying the sdr_degamma LUT appropriately.

Display capability auto detection

While this is a small feature, it should help with first-time setups. On first boot or when Settings/System/CoreELEC gets reset, we automatically select the correct DV mode for the current display (Display-led for DV-enabled displays and Player-led for everything else).

FEL shortfalls, EOF issues

With certain badly encoded or badly mastered files, the video player could produce stalls when BL or EL packets were corrupted or missing. This has been fixed to a wide extent. We also gracefully handle enhancement layer streams that are shorter than the base layer, now. Additionally, you might have noticed, that with DV content, the last couple of seconds (up to 30) of a video would never get properly played back. This was a low buffer condition that has been fixed as well.

Bluetooth

Pretty massive strides have been made in the Bluetooth area as a whole. Connect/Disconnect-Notifications have been (re-) added, configurable via CoreELEC-Settings. Bluetooth (and remote) connections are much more stable now and stale/bad pairings won't happen anymore.
We now support high quality Bluetooth Audio codecs (LDAC, aptX, AAC). BT Audio reconnection logic has been added, which allows seamless switching between audio devices upon connection events, including setting the correct passthrough flags accordingly.

Many of these improvements are thanks to the efforts of @samtheruby.

Audio

Many long-standing issues with the audio pipelines have been resolved. This includes better error handling for TrueHD streams, passthrough modes, and fixed 44.1khz cutouts by snapping to the 48kHz family automatically.
We also now support the TrueHD Atmos / AC-3 / E-AC-3 dialnorm defeat logic, configurable via settings, which resets the dialog normalization flags in passthrough modes, in affected audio streams, for AVRs that don't properly support these flags. This metadata-driven volume adjustment often results in unwanted volume reduction (up to −31 dB), which degrades the listening experience — especially for users who prefer to manage volume levels themselves or who use external calibration.

This feature was ported from @cpm-code via @jamal2362, thanks!

"Fix audio stall and infinite loop during tempo seek" was backported from Kodi 22 upstream via @linzack, thanks!

The LFE downmix setting is now a fine-grained slider allowing for better control. Also, a new setting was added to change the LFE downmix target to L/R instead of the default "center" channel. This helps with full range L/R speakers that are of higher quality than the center speaker.

Changelog

xbmc/Kodi:

  • Align CD/CS management with avdvplus R6
  • Add Force Display Modes and Override EDID Detection settings
  • Add VP3 (LLDV 422) to CD/CS 422-forcing condition
  • Add AV1 and H264 HDR static metadata support to AMLCodec (via @avdvplus)
  • Change LFE downmix level from 3-option list to percentage slider
  • Add VS10 conversion state tracking and fix DV-LL detection (via @avdvplus)
  • Fix resolution switching during windowed video playback
  • Enable manual VSVDB/EDID override to fake DV support
  • Decouple frame output from minimum buffer gate and improve output cadence
  • Fix FEL: handle EL shortfall, Block Addition EL, and drain-flush orphaned BL
  • Fix FEL stutter near EOF: restore minimum buffer gate, add stream EOF detection and extended drain
  • Add VS10 HDR10 output mode and reset VP state on DV off
  • Add DV OSD peak brightness sliders for playback and HDR10 output
  • Change DV defaults: Display-LED type, HDR10 output for VS10 HDR10
  • Bypass DV Color Volume Management for SDR→SDR output to fix over-sharpening
  • Change VS10 SDR8/SDR10 default output from Bypass to SDR
  • Refine VSVDB sub-value visibility and editability by mode
  • [Addons] Avoid delete since window ownership belongs to CGUIWindowManager (via Kodi upstream)
  • Increase analyzeduration to fix playback of DVB-T2 streams with aac_latm audio streams (via Kodi upstream)
  • [Datacachecore] do reset audio cache only on format change (via Kodi upstream)
  • [ActiveAE] Fix audio stall and infinite loop during tempo seek (via Kodi upstream)
  • Add Bluetooth audio codec selection and A2DP enhancements (via samtheruby)
  • Fix AML surround71 44.1kHz cutouts on G12B/SC2 with mandatory HIGH resample (via @samtheruby)
  • Add LFE downmix target setting to redirect LFE to Front L/R
  • Set default HDR PQ brightness to 100% (was: 40%)
  • Fix embedded subtitle stream change seeking to wrong position after a seek
  • Skip DV compositor activation for windowed video playback
  • Decouple GUI peak luminance from VS10 OSD brightness
  • Respect forced 422 and fix colour params for VS10 non-IPT output
  • Fix audio loss when switching tracks in dual DTS-HD MA files
  • AEStreamInfo: TrueHD Atmos / AC-3 / E-AC-3 dialnorm defeat logic (via @cpm-code and @jamal2362)
  • Update settings labels and descriptions, as well as the German translation

Kernel:

  • amdolby_vision: filter Level 6 DM metadata from source meta copy (via avdvplus)
  • tsl2540: add ambient light sensor support for 2nd gen Cube (via Pro-me3us)
  • hdmitx: add xbmc_aml_linux_force_422 support in set_disp_mode_auto
  • hdmitx: make DV color depth VP-aware in set_disp_mode_auto
  • amdolby_vision: fix FEL EOS freeze by timing out EL stall
  • amdolby_vision: enable POST matrix RGB->YUV for HDR10 output mode
  • amdolby_vision: fix VS10 DV-to-SDR brightness
  • amdolby_vision: fix OSD colors in DV VP output modes
  • docs: add Amlogic DV pipeline register and architecture reference
  • amdolby_vision: keep Core1 CSC active for VP OSD color fix
  • Skip DV EOTF overrides for non-IPT output and respect force_422
  • amdolby_vision: scale VP OSD brightness by graphic_max
  • hdmitx: default colour space to YUV422 instead of YUV444

CoreELEC-Settings Addon:

  • Auto-switch Kodi audio output for Bluetooth audio devices
  • Add missing Bluetooth headphone/headset icons to skin
  • Restore lost Bluetooth features from dbussy port
  • Filter Bluetooth connect/disconnect notifications
  • Add GUI option for Bluetooth connection notifications
  • Add user-configurable Bluetooth audio device restoration with GUI dropdown (via @samtheruby)
  • Fix Bluetooth audio not restoring after first disconnect (via @samtheruby)
  • Fix BT audio restore by caching audio device paths on connect
  • Fix reboot hang (not all cases)
  • Fix reboot hang caused by D-Bus shutdown issues
  • Fix unhandled CancelledError on shutdown with Python 3.9+

CoreELEC:

  • Enable BT A2DP codec support (AAC, LDAC, aptX) via GStreamer in PulseAudio (via @samtheruby)
  • Amlogic-ng: add & enable TSL2540 ambient light sensor as external module (via @Pro-me3us)
  • Add dynamic fetch of Don't Panic repository at build time (added as trusted repository for easier installation of PM4K and addons)
  • Add htop, strings and nm to base image
  • [ffmpeg] Fix TrueHD decoder crash on invalid blocksize (ARM)

Tip

If you have color issues in SDR, set VS10 SDR8 to Off. Likelihood is low that you encounter this.

Installation

1. Dirty

Drop the update tar into your CoreELEC update folder and reboot - this can be used as a dirty upgrade from CPM A14 or any of the U3k and avdvplus builds.

Should hitting reboot result in a black screen (long standing issue with any build), wait 10 seconds to make sure this wasn't just a fluke, then unplug and re-plug the device's power. The upgrade will commence afterwards.

Caution

Resetting Settings/System/CoreELEC to defaults after doing this is necessary. Not the CoreELEC Settings Addon!

2. Dirty (safe)

Drop the update tar into your CoreELEC update folder, shut down the device, pull the power plug for 30 seconds, replug.

Caution

Resetting Settings/System/CoreELEC to defaults after doing this is necessary. Not the CoreELEC Settings Addon!

3. Flash

Use the provided Flash img.gz to prepare your SD card as you would with any other CoreELEC build.

advancedsettings.xml

If you'd like, you can add the following to your advancedsettings.xml, which further improves UI rendering, but is not strictly necessary:

<advancedsettings version="1.0">
  <gui>
      <fronttobackrendering>true</fronttobackrendering>
      <geometryclear>false</geometryclear>
  </gui>
</advancedsettings>

Make sure the XML format is correct, otherwise the file will not be read at all. If you already have such a file, only add the <gui></gui> parts.

Thanks

A massive shoutout to everyone involved in this build!

Full Changelog (Kodi core): https://github.com/pannal/xbmc/commits/T3
Full Changelog (CoreELEC-Settings): https://github.com/pannal/service.coreelec.settings/commits/T3
Full Changelog (Kernel): https://github.com/pannal/linux-amlogic/commits/T3

Don't miss a new CoreELEC release

NewReleases is sending notifications on new releases.