Embedded MPV Runtime Artifacts
This directory is the staging location for generated embedded MPV runtime/build artifacts.
Generated architecture folders are expected at:
vendor/embedded-mpv/darwin-arm64/vendor/embedded-mpv/darwin-x64/vendor/embedded-mpv/win32-x64/vendor/embedded-mpv/linux-x64/
Each generated folder must contain include/mpv/client.h and
runtime-manifest.json. Platform runtime/build inputs live under lib/ or
bin/. In particular, linux-x64/lib/ contains the pinned, dynamically linked
LGPL-compatible libmpv closure used to link the out-of-process frame-copy
helper. linux-x64/notices/ contains the generated
embedded-mpv-notices.json, THIRD_PARTY_NOTICES.txt, and exact
licenses/<package>/** tree. The generated runtime directories are ignored by
git; generate, stage, or restore them before building the Electron backend.
Linux package profiles consume that one staged x64 source runtime differently:
- DEB/RPM/Pacman remove the private closure and declare the system libmpv dependency.
- AppImage/Snap/Flatpak retain the manifest-declared closure under
app.asar.unpacked/electron-backend/native/lib/and flatten the validated notice manifest, aggregate notice, andlicenses/**tree beside it. - The strict Snap resolves the helper's remaining graphics interfaces through
the external
mesa-core22content provider at$SNAP/graphics; that shared provider is not staged belowvendor/embedded-mpv/, bundled into IPTVnator, or included in IPTVnator's source/notices archive. - DEB/RPM/Pacman and marker-only packages do not retain bundled-runtime notices or license files.
- Non-x64 Linux packages retain no native artifacts and ship only the unavailable marker.
- Electron Builder excludes the staged native tree from
app.asar; onlyafterPackwrites the profile-specific unpacked payload, and package verification rejects archived native entries.
The DEB dependency is specifically libmpv2 (verified on Ubuntu 24.04+).
Ubuntu 22.04 provides libmpv1; use the x64 AppImage there.
Only iptvnator_mpv_helper may link libmpv. Electron,
embedded_mpv.node, and embedded_mpv_frame_reader.node must remain free of
direct libmpv dependencies. See tools/embedded-mpv/README.md and
docs/architecture/embedded-mpv-native.md.