Files
LibreMediaConverter/fastlane/metadata/android/en-US/full_description.txt
JMR-devandClaude Opus 5 bb969ece64 Enable R8 and add release, store and F-Droid infrastructure
Turning on R8 immediately surfaced a latent runtime bug: the ffmpeg-kit-next
wrapper references com.arthenica.smartexception.java.Exceptions from
AbstractSession.fail() in eighteen places, but a local .aar carries no
transitive dependencies, so nothing was pulling it in. Debug builds tolerate
this through lazy class loading -- the class is only touched on an error
path -- so it would have shipped as a crash the first time an FFmpeg
conversion failed. Declared explicitly now.

Keep rules cover the JNI boundary. The native library resolves classes and
methods by name, which R8 cannot see, so without them the FFmpeg calls fail
with NoSuchMethodError in release builds only. Workers are kept too, since
WorkManager reconstructs them reflectively from a class name persisted in its
database, and a rename breaks jobs enqueued before the update.

Verified on the produced artifacts rather than assumed: all 22 native
libraries survive minification and every one is still 16 KB aligned inside
the APK. Release is 82 MB against 115 MB for debug; the AAB is 40 MB and Play
splits it per ABI.

The privacy policy lists every permission, including the three WorkManager
adds automatically (WAKE_LOCK, RECEIVE_BOOT_COMPLETED, ACCESS_NETWORK_STATE).
Checking the merged manifest showed those, and a policy that omitted them
would look dishonest to anyone who inspected the app. INTERNET is genuinely
absent, so "files stay on the device" is enforced by the OS rather than a
promise.

CI runs unit tests on every push and builds the FFmpeg AAR only for release
tags, since that is a full cross-compile. Releases attach the FFmpeg
corresponding source next to the APK: GPL-3.0 requires it, and FFmpeg's
instruction to host it "on the same webserver" cannot be satisfied by a Play
listing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 22:45:40 -05:00

19 lines
905 B
Plaintext

A media converter that runs entirely on your device. Nothing is uploaded anywhere.
Convert video between MP4, MKV and WebM. Extract and convert audio to MP3, AAC,
FLAC, Opus or WAV. Export GIFs and PNG frame sequences. Join several clips into one
file.
Two conversion engines work together. Common video jobs run on your device's video
hardware, which is several times faster than software encoding and much easier on the
battery. Everything the hardware cannot do — Matroska, MP3, GIF, frame export, and the
highest quality settings — runs through a bundled FFmpeg build. The app tells you which
one it used and why, and lets you force software encoding if you prefer.
Quality settings:
* Fast — hardware accelerated, ideal for sharing and batches
* Best quality — software encoding with CRF rate control, for archiving
Free and open source. No advertising, no analytics, no network access.