Upcoming Changes

Posted by LibreELEC on February 14, 2021 · 8 mins read

Kodi 19 (Matrix) will release soon with big changes that affect the majority of LibreELEC users. One of the most visible changes is the switch to Python3 (code used by Kodi add-ons). To be compatible with Kodi Matrix add-ons that previously used Python2 must be reworked by their creators or maintainers to use Python3. Sometimes this is a simple change, in other cases it needs a complete rewrite of the add-on. Many official Kodi add-ons are now updated and waiting in the Kodi Matrix repo (or third party repos) but Kodi has a huge add-on ecosystem, and many add-ons are still being worked on.

The second big change concerns hardware video-decoding methods. LibreELEC is helping Team Kodi push forwards towards their goal of eliminating proprietary decoding methods. In the past Kodi supported (or was hacked to support) different methods for Amlogic, Allwinner, AMD, Intel, nVidia, NXP, Qualcomm, Raspberry Pi, Rockship and Samsung SOCs/GPUs running on a wide array of vendor kernels (needed to support vendor-proprietary drivers) and several different rendering/windowing systems. In Kodi 19 many (most) of those proprietary methods have been removed to push development forwards. LibreELEC staff are working with Team Kodi to move all supported platforms onto modern (aka mainline) Linux kernels and a common display/decoding method, GBM/V4L2.

This is a huge effort and timing of the Kodi 19 release is not ideal for LibreELEC. Each platform we support is in a different stage of progress so our plans for LibreELEC 10.0 will be different to past releases. Combined with the disruptive Python3 add-on change, many users will not want to rush into upgrading. Many users will continue using LibreELEC 9.2 (Kodi Leia) for a while, and we will continue to support the LE 9.2 release with add-on updates.

PLATFORM STATUS/PLANS

Generic (x86_64). LE 10.0 has low-impact changes. We are using a newer Linux kernel (5.10) and drivers that bring support for newer generations of hardware using Intel, AMD, and nVidia GPUs but we are still using X11 (and nVidia vendor drivers). Although we are running kernels and drivers that now support HDR (on limited Intel/AMD hardware) this also requires GBM/V4L2 in Kodi and we feel further work and testing is needed before we can make the switch. The move from X11 (and demise of nVidia support) is still going to happen, but not in the LE 10.0 release. Community created images with initial HDR support are being released via the forums.

Allwinner / Rockchip. These SoCs have medium impact changes. Both move to a “Stable Rolling Beta” state using modern Linux kernels (5.10) which bring incremental improvements to hardware support. Hardware video decoding now benefits from the V4L2 “stateless” kernel APIs maturing (with our help) and reaching their initial stable release. Allwinner has also evolved lots of low-level capabilities for power management - hidden but important things for stability.

Raspberry Pi 4. The Raspberry Pi codebase has moved from Linux 4.19 to Linux 5.10+ with a huge amount of new driver code (almost a ground-up rewrite) and massive effort from the Pi Foundation. LE 10.0 is now comparable to LE 9.2 for video-decoding and improves on the previous release with initial support for HBR audio and (drum roll) there are pending changes to add initial support for HDR video, which is mind-bendingly complicated and won’t be fully implemented until Kodi v20. There are still many rough edges to smooth so we regard current images as stable, but “somewhere between Alpha and Beta” quality and we would like to encourage wider testing.

Raspberry Pi 2/3. Recent development has focussed on RPi4 hardware simply because the newer hardware required more new code and lessons to be learned. The attention of developers is now shifting to older Pi devices and optimisation, which is important for LibreELEC because 60% of our active userbase still runs on RPi2/3 hardware. Such a high percentage requires us to be cautious with our plans. LE 10.0 does run on RPi2/3 boards and nightly testing images are available, but there are still several issues to resolve before we release images (we are targetting a later 10.0.x or 10.2 release). One notable challenge we face is HEVC support. Our 9.2 codebase uses heavily modified vendor drivers and FFmpeg to achieve reasonable software-decoded performance and this will be very difficult to replicate under GBM/V4L2 where the goal is to upstream the code instead of locally hoarding 50,000 LoC patches. 3D support also depends on capabilities in the vendor drivers, but is more likely to be reimplementable under V4L2. Work on both is still at a very early stage, so users who need HEVC or 3D support should continue using LE 9.2. Those who only need HEVC can also consider an upgrade to RPi4 which supports HEVC decoding in hardware.

Raspberry Pi 0/1 devices. These devices have 512MB RAM and the GBM/V4L2 video pipeline requires 1GB to deliver a good 1080p Kodi experience so we have discontinued support. Further optimisations to drivers may evolve the situation over time, but active install numbers for Pi 0/1 hardware are small and we do not currently anticipate official releases resuming in the future. Users should continue using LE 9.2.6 with the legacy OMX decoder (even the newer MMAL decoder runs sub-optimally on these devices).

Amlogic. Overall platform support is solid running on Linux 5.11 and switching to open-source Lima and Panfrost GPU drivers allows us to support the full range of Amlogic S905, S905X/D/W, S805X, S912, S905X2/D2, S905X3/D3 and S922X/A311D chips in a single “AMLGX” image. Development “nightly” images restarted recently but media capabilities (audio and hardware decoding) are not where we need them to be for formal releases to resume. Work on S805, S802 and S812 support also continues with early audio support being added, but there is still a long way to go before we think about an “AMLMX” image.

NXP (iMX6 .. and iMX8!). Our iMX6 codebase is still missing an active maintainer but recent changes have consolidated and halved the number of images: there is now one each for Cubox, Udoo and Wandboard devices, and several issues with Kodi and newer Linux 5.10 and 5.11 kernels have been resolved. We would like to encourage more users to test and report issues in current nightly images so we can increase confidence and make a formal LE 10.0 release. In the last week we have also merged initial support for iMX8 hardware.

SUMMARY

LE 10.0 will be stable release for Generic (x86_64 PCs). Stable-Beta for Allwinner and Rockchip. Stable “Alpha” for Raspberry Pi 4 as the code is still very new and less tested. RPi 2/3 are in development targetting LE10.2. RPi 0/1 are discontinued. All others platforms are still in a development state and not in a state for formal releases.

Enjoy :)