FFmpeg (LGPL) xcframeworks with the eac3 encoder enabled, used by
Aether's PrismCore
playback engine.
PrismCore's AudioBridge (roadmap phase 3) re-encodes audio that HLS-fMP4
cannot stream-copy — TrueHD, DTS, DTS-HD MA, MP3, MP2, Opus, Vorbis, PCM — to
EAC3, so those sources keep surround sound on the native AVPlayer path
instead of falling back to software playback. That needs FFmpeg's eac3
encoder, and stock MPVKit compiles only
the ac3/eac3 decoders. These builds close that gap.
The bridge detects the encoder at runtime (AudioBridge.isEncoderAvailable),
so swapping these frameworks in is the entire integration: no code changes in
PrismCore or the host.
Built from mpvkit/MPVKit @ 0.41.0 (LGPL variant, FFmpeg n8.0.1), with one functional change to the FFmpeg configure whitelist:
--enable-encoder=eac3
The eac3 encoder is native FFmpeg code (LGPL) — no new external library is
linked. The full build-script diff is attached to each release
(0001-enable-eac3-encoder.patch); it also carries a build-environment fix
(propagating DEVELOPER_DIR to subprocesses) that does not affect the
artifacts.
Everything else — versions, dependencies (openssl, libass, libplacebo, dav1d,
libdovi, …), deployment targets, platform slices — is stock MPVKit 0.41.0, so
these zips are a drop-in replacement for the seven FFmpeg binary targets
of an MPVKit 0.41.0 pin: Libavcodec, Libavdevice, Libavfilter,
Libavformat, Libavutil, Libswresample, Libswscale.
FFmpeg is LGPL-2.1-or-later. Corresponding source:
FFmpeg n8.0.1, built via
mpvkit/MPVKit @ 0.41.0 with the attached
patch. Third-party license notices: see MPVKit's THIRD_PARTY_NOTICES.
Each release hosts the seven *.xcframework.zip assets (all Apple-platform
slices) plus *.checksum.txt. Consume via:
.binaryTarget(
name: "Libavcodec",
url: "<release-asset-url>/Libavcodec.xcframework.zip",
checksum: "<sha256>"
)