1080P playback on Odroid C2

  • I have what is ultimately a playback issue on an Odroid C2 that I hope the community might be able to help me with. A little background:

    I have a file server that lives in a dungeon downstairs - it is big and loud and noisy but does the job well. That file server serves 3 x HTPCs:

    1. The living room HTPC which is an x86_64 10 year old PC with dedicated graphics card. I have installed Linux Mint on this and have set it up so that Kodi launches on session startup. This will play anything I throw at it including 4K.

    2. The kids room HTPC which is an Odroid C2 running Libreelec.

    3. The bedroom HTPC which is an Odroid C4 running Corelec.

    My video library lives on the file server and I wanted to be able sync across all devices so that I can watch episdoes from different devices and and resume playback from different rooms. So in order to do that, I needed to setup MySql on the file server and ensure that each of my devices use the same version of Kodi. So I upgraded my C2 and C4 devices to Libreelec 11 (and Coreelec for the C4) in line with Nexus that was installed on the living room HTPC.


    The problem:

    My son decided to watch a show I had ripped from BluRay to the file server in the kids room. He told me it looked ‘glitchy’ and sure enough when I went in and examined, it was unwatchable. I hit ‘o’ to examine the stream details on Kodi and it indicated ‘ff-vc1-drm-prime (SW)’ which to me says that it is being software decoded (Pic 1). I tried several other shows where hardware decoding is working and the movie plays fine - Pic 2 is an example ‘ff-h264_v412m2m-drm_prime (HW)’.

    From this I inferred that VC1 encoded files would fallback to software decoding and not work whereas H264 encoded files would be hardware decoded and play fine. Testing confirmed that this is accurate.

    The thing is that BOTH codecs used to play with hardware decoding just fine on the C2 before I upgraded. To confirm this, I flashed an old version of Librelec Leia onto the C2 and tried playback of a VC1 encoded file again. Pic 3 shows that with this older version of Libreelec, hardware decoding is enabled and plays fine ‘am-vc1 (HW)’.


    The conundrum:

    All of this I can put up with. I can simply use Leia on my living room PC and though I won’t get all the updated features from the more modern Libreelec releases, I am really only watching 1080P movies and don’t need anything more than a basic setup.

    I cannot however get Leia installed on my living room HTPC on a modern distro. The earliest I can get is Matrix. The problem with Libreelec playback on my C2 begins with version 10 (Matrix) which I assume is when the team amalgamated several devices into the AMLGX image. I am unable to build Leia from source as the dependencies are so old that they can’t be migrated to a newer system and if I try to install the resulting .deb, I get a dependency conflict and no dice on launch. Flatpaks would be the ideal solution but the older versions don’t go back as far as Leia.

    What I have done is gone back to Linux Mint 20 (based on Focal) and installed Leia from the repos. This setup is working just the way I want it for now. In April 2025 however, Focal will no longer receive security updates leaving my HTPC at risk. I suppose you could say that my C2 and C4 are already at risk for the same reason but they are hosted by a stripped back OS and are only switched on when watching a movie. There is also a guy who posts patched kernels for these older releases and I could also go down that path if needed.


    The question:

    Is there any way I can add a kernel module or something similar to a newer version of Libreelec that will help me get back VC1 decoding? If not is there anything else I can do beyond re-encoding my VC1 titles or buying a newer device? Neither of these options are too appealing to me?

  • Is there any way I can add a kernel module or something similar to a newer version of Libreelec that will help me get back VC1 decoding? If not is there anything else I can do beyond re-encoding my VC1 titles or buying a newer device? Neither of these options are too appealing to me?

    The upstream Linux kernel used in LE10+ images does not support VC1, the driver has simply never been written. It does exist in the older vendor kernel used in LE 9.2 and older images, but as you found, these days these have issues with TLS certificates (can be solved with a custom image) and general add-on compatibility. There's about 0.01% code in-common between the upstream and vendor kernels and Kodi removed support for amcodec (and all the other proprietary codec methods) a long time ago now so the options are rather limited. AMLGX is self-admittedly a bit of a compromise and not as feature complete as older images. There has not been much development on the codecs for a few years and they are what they are. I would recommend re-encoding to H264 as the decoder for this is in quite good shape and more family-friendly. You can also re-encode to HEVC, but this driver was never fully completed and it has glitches, e.g. seeking is not brilliant. Anything more needs new hardware.

  • these days these have issues with TLS certificates (can be solved with a custom image) and general add-on compatibility

    I am happy to compile a newer image myself. I can follow the general building instructions without too much of an issue and expected if this were to work, I'd be inserting a binary blob somewhere in the build. Are there instructions on where to do that? The wiki doesn't really delve into these types of scenarios.


    I read a similar issue with RPi where there was a requirement to buy a license for a codec and register this on the device but registration of TLS certificates sounds different again.

  • The TLS cert issue in older images is simply that the embedded ca chain is now outdated and thus websites and services don't work as certs are seen to be invalid. Current images support /storage/.config/cacert.pem as a boot time override, but I forget when that was added or whether LE 9.0/9.2 works with it. You can also try the image that dtech is still shipping for some boards (not sure if he has something for C2 or not). Crib https://github.com/LibreELEC/LibreELEC.tv/pull/9533 for the most recent cacert.pem update we merged if you're looking to build something in yourself - there are general self-build instructions in the wiki.

    The original RPi boards needed hardware decoding to handle media and codecs could be licensed to keep costs down. It's never been an option on any other vendors board and these days modern RPi boards abandonded licensing as the boards have enough CPU performance to decode older codecs with ease (RPi5 even does this for H264).