Open-source source code

Pagiro for Android plays slide-show sounds and videos in older formats (WMV, WMA, ASF, AVI, MPEG) with an open-source media library, libmpv.so. Parts of it are licensed under the GNU Lesser General Public License (LGPL). Here is its complete source code, and how to rebuild it and put your own build into the app.

Download

For Pagiro 1.0.0 for Android:

  • pagiro-media-source-1.0.0.tar.xz (20 MB, SHA-256 b272dbb5a29a6476039d73f0871bc3b3db7755253dc866cb3edda10fae6d506b): the LGPL source. It holds the exact upstream source archives of mpv, FFmpeg and FriBidi at the versions used, with SHA-256 checksums of every component; our only change to them (a small patch to mpv that hands Android’s Java VM to FFmpeg); the build script with all its configure options; a README on how to rebuild libmpv.so and replace it in the app; and the license texts.

The library also links in libass, FreeType and HarfBuzz, which are under permissive licenses. Their exact sources are the projects’ own release archives:

  • libass 0.17.1 (SHA-256 5ba42655d7e8c5e87bba3ffc8a2b1bc19c29904240126bb0d4b924f39429219f)
  • FreeType 2.13.2 (SHA-256 427201f5d5151670d05c1f5b45bef5dda1f2e7dd971ef54f0feaaa7ffd2ab90c)
  • HarfBuzz 8.3.0 (SHA-256 6a093165442348d99f3307480ea87ed83bdabaf642cdd9548cff6b329e93bfac)

Each app version that ships a different build of the library gets its own archive here, and every archive stays available for at least three years.

Components

ComponentVersionLicense
mpv (libmpv), built without GPL parts0.36.0LGPL 2.1 or later
FFmpeg (only decoders of older formats; no GPL or non-free parts)6.1.2LGPL 3 or later
FriBidi1.0.13LGPL 2.1 or later
libass0.17.1ISC
FreeType2.13.2FreeType License
HarfBuzz8.3.0MIT (“Old MIT”)

Upstream projects: mpv, FFmpeg, FriBidi, libass, FreeType, HarfBuzz. The full license texts are also in the app: About, Open-source licenses.

Replacing the library

The app loads libmpv.so as a separate shared library (in lib/arm64-v8a/ of the app package) through mpv’s client API, so a modified build with the same interface can take its place:

  1. Rebuild libmpv.so from the archive (its README has the steps; the script runs on Ubuntu 22.04).
  2. Copy the app’s APK files from your device, replace lib/arm64-v8a/libmpv.so, align the APK (zipalign -P 16 -f 4) and sign the set with your own key (apksigner).
  3. Install the set on your device (adb install-multiple).

A copy signed with your key cannot receive updates or purchases from Google Play; everything else keeps working. Our terms allow you to modify these libraries and to reverse engineer the app to debug such changes.

Written offer

If you cannot download the archive, write to contact@tdhsoft.com. For at least three years after we last distribute a version of Pagiro for Android, we will send anyone who has that version the complete corresponding source code of these libraries, for no more than our cost of providing it.