● libmpv
The decoder: libmpv, our own build
Neverlag decodes with libmpv, the library form of the mpv player. The mpv player itself is not included: no command line, no Lua, no JavaScript, no GPL parts.
The build is our own. mpv 0.41.0 and FFmpeg 8.0.3 come from the unmodified release archives, plus libplacebo 7.360.1, libass 0.17.3, FreeType 2.13.3, FriBidi 1.0.16 and HarfBuzz 10.1.0 – built with Apple’s clang for arm64 (Mac additionally x86_64), linked into one framework per platform and embedded in the app as Libmpv.xcframework.
FFmpeg is built in a strict LGPL configuration – without GPL and without non-free parts. No x264, no x265, no fdk-aac, no OpenSSL – encrypted connections go through Apple’s system. The build aborts if GPL code were to get in.
FFmpeg, libplacebo, libass, FreeType, FriBidi and HarfBuzz are unmodified – no patch, configuration only. The codec set is FFmpeg’s native one, without external codec libraries.
Hardware decoding through VideoToolbox, software decoding as the fallback where Apple’s hardware does not accept a format – interlaced material, for instance. Audio through Apple’s audio stack, subtitles through libass, GPU processing through libplacebo on Mac, iPhone and iPad; on Apple TV, Neverlag puts every frame on the screen itself.
The media framework (Libmpv.framework) sits as a separate, dynamically loaded file in the app bundle. The app uses only the public libmpv interface. You may replace the framework with your own build that keeps the same interface (LGPL 2.1 § 6 b); on the Mac, replace every copy of it in the bundle. On iPhone, iPad and Apple TV, Apple additionally requires the whole app bundle to be re-signed with your own developer certificate – that is a rule of the platform, not of the licence. Sources, patch and build scripts for this are available through the written offer. The stream engine itself is not in the framework but in the app – replacing the framework leaves it untouched.
What we changed in mpv
We did not simply take mpv as it is. For Apple platforms we rebuilt the build system so that libmpv runs on Mac, iPhone, iPad and Apple TV without the desktop dependencies of the mpv player. And we extended the render interface of libmpv with a path that takes decoded frames straight into Neverlag’s own display – with no detour through mpv’s output paths. That is the foundation for Neverlag on Apple TV: there, the app puts every frame on the screen itself. FFmpeg and all other libraries are unmodified. The changes are licensed under the LGPL 2.1 or later; we provide the patch through the written offer on the open-source page.
Open source: components, licences, checksums and source offer