# Android FFmpeg LGPL Source Offer

Last reviewed: 2026-07-24

This checklist keeps the app-side FFmpeg/FFprobe runtime distribution posture
aligned with the app-visible license notice, public open-source notice page,
and release artifacts. It is a release checklist, not legal advice.

## Covered Runtime

- Component: source-built Android FFmpeg/FFprobe app-side media runtime
- Upstream project: https://ffmpeg.org/
- Baseline source archive: https://ffmpeg.org/releases/ffmpeg-8.1.2.tar.xz
- Baseline source SHA-256:
  `464beb5e7bf0c311e68b45ae2f04e9cc2af88851abb4082231742a74d97b524c`
- Local build scripts: `third_party/ffmpeg/android`
- Evidence record:
  `docs/compliance/android-lgpl-ffmpeg-adoption-evidence.md`
- App notice source: `assets/legal/third_party_notices.json`
- Public notice pages:
  `hosting/open-source/index.html` and `hosting/en/open-source/index.html`

## Release Source Materials To Provide

Before publishing an Android build that includes the app-side FFmpeg runtime,
make the following materials available to recipients through the release
package, a public download, or a support-request flow:

- [x] Exact FFmpeg source archive or mirror for the shipped version
- [x] Exact official FFmpeg 8.1.2 and libwebp 1.6.0 source archives and
  recorded checksums
- [x] libwebp `COPYING` and `PATENTS` notices
- [x] `third_party/ffmpeg/android/build-android-lgpl.ps1`
- [x] `third_party/ffmpeg/android/build-libwebp-android.ps1`
- [x] `third_party/ffmpeg/android/ffmpeg-android-lgpl-configure.args`
- [x] `third_party/ffmpeg/android/verify-android-lgpl-config.ps1`
- [x] `third_party/ffmpeg/android/verify-android-lgpl-artifact.ps1`
- [x] `third_party/ffmpeg/8.1.2/SOURCE.md` and
      `third_party/libwebp/1.6.0/SOURCE.md`
- [x] Each shipped ABI's generated `configure-command.txt` and
      `configure-license.txt`
- [x] Any `changes.diff` or a clear statement that no local FFmpeg source patch
      was applied
- [x] APK/AAB artifact scan evidence for shipped ABIs
- [x] App-visible and web-visible notice text matching the shipped runtime

The completed materials are assembled by
`tool/build_android_open_source_bundles.ps1` as:

- `HLPlayer-Android-FFmpeg-8.1.2-libwebp-1.6.0-corresponding-source.zip`
- `HLPlayer-Android-libmpv-v1.1.7-corresponding-source.zip`
- `SHA256SUMS.txt`

## Current Recorded Posture

- [x] Common configure flags include `--disable-gpl`
- [x] Common configure flags include `--disable-nonfree`
- [x] Shared libraries are enabled and static output is disabled
- [x] Reviewed-forbidden external codec libraries are absent:
      `libx264`, `libx265`, `xvidcore`, `libfdk_aac`
- [x] FFmpegKit, mobile-ffmpeg, and Arthenica packages are not used
- [x] Animated WebP uses official libwebp 1.6.0 shared libraries with the
      BSD-3-Clause `COPYING` terms and upstream `PATENTS` grant
- [x] App-side runtime is separated from the media_kit/libmpv playback runtime
      in the notice text
- [x] Privacy/terms text describes the runtime as local media processing, not
      a new developer-server collection path

## Publication Note Template

Use this wording or a materially equivalent version in release materials:

```text
HL Player includes a source-built FFmpeg/FFprobe Android runtime for selected
local subtitle and highlight media-processing fallbacks. The runtime is built
from FFmpeg 8.1.2 with shared libraries, --disable-gpl, and --disable-nonfree.
The source archive, build scripts, configure arguments, ABI configure commands,
and local changes are available at
https://hlplayer.app/open-source/downloads/android/HLPlayer-Android-FFmpeg-8.1.2-libwebp-1.6.0-corresponding-source.zip
or by contacting support@hlplayer.app.
```
