Releases: pannal/CoreELEC
Release T3b
p3i T3b
Maintenance bugfix release for the issues T3a introduced or didn't fix. T4 is in development.
This release fixes:
- specific issues with certain skins that were introduced with T3a (missing OSD, missing elements)
- very rare SDR content with BT2020 (skips VS10 SDR conversion for those) being misrepresented as BT.709
- TrueHD dropout issues introduced with T3a; rare
Changelog
xbmc/Kodi:
- OSD: fix conditional includes broken by texture caching
- DV: bypass VS10 for SDR BT.2020 content to preserve gamut
- Settings: Fix description for Reduce color banding (VS10) not representing the default
- Revert MAT packer Reset on seek for standard passthrough path
- Settings: Default refresh rate change delay to 2.5s
Note
If you're not initial flashing, you might want to set the Delay after refresh rate change to at least 2.5s if you're using PM4k.
CoreELEC Settings Addon:
- Fix 30s reboot delay from D-Bus agent unregister
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.
Reset Settings/System/CoreELEC, reboot.
Caution
Resetting Settings/System/CoreELEC to defaults after doing this is necessary. Not the CoreELEC Settings Addon!
Resetting Settings/System/Audio might be necessary for you to see the new settings (dialnorm)
2. Dirty (safe)
Drop the update tar into your CoreELEC update folder, shut down the device, pull the power plug for 30 seconds, replug.
Reset Settings/System/CoreELEC, reboot.
Caution
Resetting Settings/System/CoreELEC to defaults after doing this is necessary. Not the CoreELEC Settings Addon!
Resetting Settings/System/Audio might be necessary for you to see the new settings (dialnorm)
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/aml-4.9-21.3_dev_T3b/
Full Changelog (CoreELEC-Settings): https://github.com/pannal/service.coreelec.settings/commits/T3b
Full Changelog (Kernel): https://github.com/pannal/linux-amlogic/commits/T3b
Release T3a
p3i T3a
While this release was meant as an intermediate "bugfix" release, it added and improved a couple of features as well.
Most notably:
Dialnorm EAC3 JOC exclusion
You can now select whether you want dialnorm to apply to EAC3 with JOC (Atmos) or not. This should be disabled for people who want the Atmos metadata and enabled for people without Atmos capabilities, as it will properly normalize dialogs here, as well (throwing away the Atmos caps)
Image based subtitle love
We now have the option to more correctly follow PGS subtitle's color representation. If you like the old way better, you can disable this feature in Settings/Subtitles. For color space/gamut conversion we've added multiple blending modes that you can select from, just choose what suits your needs (defaults are always sane).
Apart from that we've added smart image based subtitle scaling - you can now resize them to your liking and they'll be scaled and positioned correctly.
Changelog
xbmc/Kodi:
- Fix TrueHD audio dropouts after chapter skip
- Skip E-AC-3 dialnorm defeat for DD+ Atmos (JOC) streams (optional)
- Add setting to optionally include DD+ Atmos in dialnorm defeat
- VideoPlayer: rate-limit UpdatePlayerInfo to 10Hz (via @cpm-code)
- Fix m2ts DV FEL black screen caused by premature EL starvation flushing
- DV: add setting to skip DV activation for windowed playback
This helps with skins using embedded trailers, as we now skip HDMI renegotiation in this case. Disable this if you have a background image screensaver that uses DV - PGS/DV: add PQ→SDR shader for HDR PGS subtitles in DV/HDR10 modes
- PGS: match Core2 g_2_l curve and fix full-range output for DV mode
- PGS: add tonemap mode setting (Classic/Linear/Luma)
- OSD: prevent texture reloading to avoid frame drops on open
- DV: add setting to reduce color banding in VS10 (VPP 12-bit dither) (default on)
- PGS: add brightness percentage
- DV: re-couple OSD base brightness slider to VS10 modes
The previously decoupled brightness slider under Settings/Display is now re-coupled to VS10. It sets the base brightness of the OSD/Subtitles. The VS10 peak brightness settings are "on top"
Kernel:
- amdolby_vision: enable RGB->YUV post matrix for VS10 SDR output
- amdolby_vision: fix false DV detection for SDR content with T35 SEI
- amdolby_vision: add xbmc_dv_dither param to reduce VS10 color banding
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.
Reset Settings/System/CoreELEC, reboot.
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.
Reset Settings/System/CoreELEC, reboot.
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/T3a
Full Changelog (CoreELEC-Settings): https://github.com/pannal/service.coreelec.settings/commits/T3a
Full Changelog (Kernel): https://github.com/pannal/linux-amlogic/commits/T3a
Release T3
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 CoreEL...
Release T2a
p3i T2a
While we merged the functionality of the avdvplus R6 settings and kernel, strings and certain automatic relationships were not updated. This is a bugfix release over T2.
Changelog
- Rename LAV Filters mode to Audio Fixes mode and re-introduce Debug and Seek/Sync modes
- Align VS10 fillers with avdvplus R6
- Align strings and settings with avdvplus R6
- Set Audio Fixes to Off by default
Our Audio Fixes setting isn't directly coupled to the video settings compared to avdvplus as they're mostly unnecessary and should be usable without using any specific video modes. - Add German settings translations
General info on this release
If you're coming from avdvplus R6, you should feel right at home now. If you're a user of T1/T2, the newly aligned Settings/System/CoreELEC Video/DV settings might be confusing at first, as their default, to keep in line with R6, are Player-Led. If you have a DV capable display, you might want to set this to Display-Led.
Sorry for the confusion in T2!
Tip
If you're coming from a build that's not T2, and you're using audio offsets, double check them as you might not need them anymore.
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/T2a
Full Changelog (CoreELEC-Settings): https://github.com/pannal/service.coreelec.settings/commits/T2
Full Changelog (Kernel): https://github.com/pannal/linux-amlogic/commits/T2
Release T2
p3i T2
This is the continuation of the initial T1 release with a lot of changes. In terms of GUI improvements it's not as game-changing as T1 was, but still has a lot of benefits, this time less around idle CPU usage, more around live GUI performance during usage.
UI rendering improvements
T1 was heavily focused on idle CPU reduction, T2 focuses on GUI transitions and large list performance. Here's a short summary of what's changed:
More detailed rundown
┌─────┬──────────────────────────────────┬───────────────┬──────────────┬───────────────┬────────────────────────────┐
│ # │ Optimization │ Frequency │ Complexity │ Frame Time │ Notes │
├─────┼──────────────────────────────────┼───────────────┼──────────────┼───────────────┼────────────────────────────┤
│ 1 │ Cache render items vector │ Every frame, │ Heap alloc → │ ~2-5% │ Biggest win; 10-50 item │
│ │ │ list views │ reuse │ │ vectors per frame on ARM │
├─────┼──────────────────────────────────┼───────────────┼──────────────┼───────────────┼────────────────────────────┤
│ │ std::optional caches (scroll │ │ Skip │ │ Most impactful in │
│ 2 │ bar, panel, button alpha, │ Every frame │ redundant │ ~1-3% │ GUIControlGroupList (page │
│ │ control group list) │ │ setters │ │ control skip) │
├─────┼──────────────────────────────────┼───────────────┼──────────────┼───────────────┼────────────────────────────┤
│ 3 │ CGUIImage batch dirty marking │ Every frame │ 6+ calls → 1 │ ~1-2% │ Only during active │
│ │ │ during fades │ │ │ cross-fade transitions │
├─────┼──────────────────────────────────┼───────────────┼──────────────┼───────────────┼────────────────────────────┤
│ │ CGUIImage skip redundant diffuse │ Every frame, │ Compare │ │ Saves per-image work when │
│ 4 │ color │ per image │ before │ ~0.5-1% │ color unchanged │
│ │ │ │ update │ │ │
├─────┼──────────────────────────────────┼───────────────┼──────────────┼───────────────┼────────────────────────────┤
│ │ GUIFadeLabelControl dirty │ Every frame, │ │ │ Fewer fade labels than │
│ 5 │ consolidation │ scrolling │ 2 calls → 1 │ ~0.5-1% │ images typically │
│ │ │ labels │ │ │ │
├─────┼──────────────────────────────────┼───────────────┼──────────────┼───────────────┼────────────────────────────┤
│ │ Message deduplication │ Per GUI │ Prevent │ │ Reduces message processing │
│ 6 │ (std::any_of) │ message │ duplicate │ ~0.5% │ overhead │
│ │ │ │ queue │ │ │
├─────┼──────────────────────────────────┼───────────────┼──────────────┼───────────────┼────────────────────────────┤
│ │ │ Every frame, │ Skip │ │ │
│ 7 │ CGUITexture ready state cache │ per texture │ redundant │ ~0.5% │ Minor per-texture saving │
│ │ │ │ eval │ │ │
├─────┼──────────────────────────────────┼───────────────┼──────────────┼───────────────┼────────────────────────────┤
│ │ GUILargeTextureManager O(1) │ Per frame, │ │ │ │
│ 8 │ lookups │ thumbnail │ O(n) → O(1) │ ~1-5ms/frame │ 100+ loaded thumbnails │
│ │ │ views │ │ │ │
├─────┼──────────────────────────────────┼───────────────┼──────────────┼───────────────┼────────────────────────────┤
│ 9 │ Binary search letter navigation │ On user input │ O(n) → O(log │ imperceptible │ Correctness optimization │
│ │ │ only │ n) │ │ │
└─────┴──────────────────────────────────┴───────────────┴──────────────┴───────────────┴────────────────────────────┘
Summary by scenario:
┌───────────────────────────────────────────────┬───────────────────────────────┐
│ Scenario │ Estimated Improvement │
├───────────────────────────────────────────────┼───────────────────────────────┤
│ Typical list/panel views │ ~3-8% │
├───────────────────────────────────────────────┼───────────────────────────────┤
│ During cross-fade transitions │ ~5-10% │
├───────────────────────────────────────────────┼───────────────────────────────┤
│ Large library (1000+ items) scrolling/refresh │ ~10-20% │
├───────────────────────────────────────────────┼───────────────────────────────┤
│ Letter navigation in large lists │ instant vs. potentially laggy │
└───────────────────────────────────────────────┴───────────────────────────────┘
By now a big chunk of my GUI improvements have made it into Kodi itself and thus will be available to any Kodi user in the future.
Other notable changes
- Add a very subtle boot animation to show we haven't crashed (the ring around the power button pulses)
- Add DV Video Processor support and align with avdvplus
I've carefully rebased our settings and video path on avdvplus R6's state, adopting the video processing logic and all the other features (and caveats of this in R6). Our DV and video paths are now not based on CPM anymore, but were carefully tested including full compatibility with PM4K and LAV filters without issues.
Dissected from avdvplus in xbmc and kernel - AMLCodec: Improve VC-1 hardware decoding (not a definitive fix)
Based on fixes from CoreELEC and avdvplus R5. - LAV/PackerMAT: Preserve numberOfSamplesOffset across seamless branch points
This results in better A/V sync at seamless branching branch points
Based on SamuriHL aa0b362 and avdvplus R6. - Add avdvplus R6 HDR10+/DV improvements
- [ActiveAE] Allow configure "Low latency mode" during playback
Via thexai, Kodi 22 - VideoPlayer: Reset PTS offset on flush
Guarantees continuous perfect subtitle sync after multiple seek attempts. Slightly changes seeking (with certain, especially PCM audio codecs, this leads to a small blip after seeking which resolves itself after a second); optional setting, on by default
Via neo1973, Kodi 22 - AEStreamInfo: fix AC3 duration when sample rate is different from 48 KHz
Via thexai, Kodi 22 - VideoPlayer: increase correction threshold to 1000ms (for DTS "classic" only)
This fixes issue #26647 increasing the threshold for timestamp sync correction from 500ms to 1000ms avoiding correction issues for videos having the first keyframe between 500ms and 1000ms.
Partially via seppiola, Kodi 22 - Addition of Player.GetChapters in JSON RPC
Via albaintor, Kodi 22 - JSON RPC: added notifications (Player.OnPropertyChanged)
Via albaintor, Kodi 22 - [GUI] GUIWindowManager: Use shared_ptr for window ownership
Fixes a crash during ReloadSkin (update) when a modal dialog was active
Via enen92, Kodi 22, 1, 2, 3 - Fix playback of tcp streams
Via enen92, Kodi 22 - VideoPlayer: Seek demuxer on embedded subtitle stream change
Fixes a long standing Kodi issue where embedded subtitles could take up to 20-30 seconds to show up. This adds a very short seek-back hitch when changing (to) embedded subtitles, but shows them instantly.
Via myself - Settings/System/CoreELEC: LAV: Adjust setting label and values
- Settings/System/CoreELEC: Move LAV into separate group
CoreELEC Settings Addon
- MainWindow: Scroll address label to accomodate larger fonts
IP addresses could've been hidden when non-default fonts were selected - Fix slow shutdown by making LOOP_THREAD a daemon thread
- Fix Bluetooth device not being trusted after pairing (long standing issue)
- Backport LibreELEC-Settings' journald log persistence (logs can now be persisted during reboots to make identifying core issues easier)
- Improve bluetooth discovery and pairing
- Clean up device on pairing failure
General info on this release
All in all T2 should improve over T1 in general, adding the nice new features from R6, a lot of A/V sync improvements (LAV totally unnecessary right now, un...
Release T1
p3i T1
This is the initial release of p3i, directly based off of U3k B11, with a lot of improvements, most notably:
UI rendering improvements
I was able to discover a whole bunch of performance issues within the guilib code of Kodi, many of them existed for years, or even decades. Changes have been made to specific compositing, message queueing, as well as efficiency across a wide range of GUI controls.
All in all, the guilib changes result in:
- faster UI rendering (especially complex UIs, such as PM4K and skins)
- more efficient invalidation of controls across the board
- less CPU usage during transitions and texture loading
- significantly less CPU usage when idle while showing certain types of UIs
This can be very roughly summarized as (vs. other builds/stock Kodi):
┌─────────────────────────────────────────┬───────────────────────────────────────────────┐
│ Scenario │ Estimated Improvement │
├─────────────────────────────────────────┼───────────────────────────────────────────────┤
│ Idle with scrollbar visible │ 60-80% reduction in GUI CPU usage │
├─────────────────────────────────────────┼───────────────────────────────────────────────┤
│ Idle with images/buttons (no scrollbar) │ 30-50% reduction in GUI CPU usage │
├─────────────────────────────────────────┼───────────────────────────────────────────────┤
│ Active scrolling │ 20-40% reduction in per-frame processing │
├─────────────────────────────────────────┼───────────────────────────────────────────────┤
│ Image cross-fade transitions │ ~80% reduction in dirty region overhead │
├─────────────────────────────────────────┼───────────────────────────────────────────────┤
│ Complex UIs with many controls │ 30-50% reduction due to message deduplication │
└─────────────────────────────────────────┴───────────────────────────────────────────────┘
Those fixes will be pull requested towards Kodi upstream, so everybody can benefit.
There's more to be done here, this "just" fixes the most obvious ones.
Other notable changes
-
"Low latency audio mode" backported from Kodi 22 (via thexai and subsequent commits/PRs)
This adds a new setting under System/Audio called "Low latency mode", enabled by default. It significantly reduces the time audio streams take to "resume" when playback is resumed, vs. the video stream. If you encounter any issues, try disabling this first. -
Fixed BT/Wi-Fi pairing in the "CoreELEC Settings"-Addon
Since U3k B9's Python upgrade, BT and Wi-Fi pairing stopped working. Due to a very old dbus library used by that addon, which isn't supported anymore and doesn't work with Python 3.13, I decided to rewrite a big part of it to utilize the newer dbussy/ravel library. This also reduces the time it takes to actually reboot when hitting the "Reboot" option in the exit menu. -
VideoPlayer: Fix seeking to resume point with LAV filters
This fixes the issue where seeking to a resume point would incorrectly
jump back to position 0 when LAV Full mode is active.Based on commit 7d47c17 from avdvplus/xbmc (cpm-code).
-
VideoPlayer: Sync to later start time to fix AV desync
This prevents AV desync that can occur when video starts later than
audio, particularly noticeable with LAV filter chain.Based on commit 31c65c3 from avdvplus/xbmc (cpm-code).
VC-1 fixes have not been included in this release, as we've found last-minute compatibility issues. Expect them in T2.
LAV Filters & PM4K
As with U3k B11, LAV filters are included as an option for fixing audio issues (under Settings/System/CoreELEC, bottom). By default this is set to Off, as during testing these fixes weren't necessary (anymore). If you tend to watch seamless branching titles, you can set this to "LAV SB". If you're a user of the latest PM4K beta, the addon will take care of automatically enabling LAV SB for affected seamless branching titles, so you can leave this at Off. "LAV Full" isn't necessary or recommended, but can be beneficial in certain scenarios, and should be fully compatible with PM4K's Alternate Seek functionality.
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 builds. Resetting Settings/System/CoreELEC to defaults after doing this is not necessary but recommended.
2. 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:
<gui>
<fronttobackrendering>true</fronttobackrendering>
<geometryclear>false</geometryclear>
</gui>
Thanks
A massive shoutout to everyone involved in this build!
Full Changelog (Kodi core): https://github.com/pannal/xbmc/commits/T1
Full Changelog (CoreELEC-Settings): https://github.com/pannal/service.coreelec.settings/commits/T1