Files
jellytau/THIRD_PARTY_NOTICES.md
T
dtourolle 4daf172834 feat(windows): mpv plays audio on Windows, with libmpv shipped in the installer
libmpv on Windows (DR-237):
- The builder image carries zhongfly's LGPL libmpv-2.dll, pinned by
  asset name and sha256, plus an MSVC mpv.lib generated from the DLL's
  own mpv_* exports (the archive ships only a MinGW .dll.a). LGPL, not
  the GPL builds: no x264/x265, mpv -Dgpl=false; FFmpeg is version3, so
  LGPL-3.0. THIRD_PARTY_NOTICES.md records it.
- build-windows-cross.sh stages both files into src-tauri/windows-libs/;
  build.rs links mpv.lib from there and tauri.windows.conf.json bundles
  the DLL beside jellytau.exe from there, with the licence texts under
  licenses/. One directory, so the DLL shipped is the one linked.
- Workflows move to builder image 2026.09.1.

Windows audio:
- MpvBackend replaces WebviewAudioBackend on Windows (ao=wasapi), so
  volume, EQ, normalization and gapless work there as on Linux. Local
  files are passed to mpv as native paths, not file:// URLs.

Fixes found on the way:
- player_play_item decided "does the backend render video" with
  cfg!(not(linux)), true on Windows, while get_player_status sent
  Windows video to the <video> element. With mpv as the backend that
  would decode every film's soundtrack twice. All three callers now
  ask video_renders_natively() (UT-273).
- confine_queued_path rebuilt paths with PathBuf::push, so on Windows
  a queued `downloads/x` was stored as `downloads\x`, no longer the
  spelling the app built. It now keeps the caller's separator (UT-205,
  which only ever ran on Linux, failed under Windows).

Verified: jellytau.exe imports libmpv-2.dll; the full unit suite
cross-compiled for Windows passes under wine against the shipped DLL
(943/943, including the mpv injection and TLS tests); the NSIS
installer contains the DLL and licence texts. Not yet run on real
Windows hardware.
2026-09-24 22:25:31 -04:00

43 lines
2.0 KiB
Markdown

# Third-party notices
JellyTau's own source code is licensed under the MIT License (see `LICENSE`).
Some builds bundle third-party components under other licences, listed here.
## Android: FFmpeg audio decoder (GPL-3.0)
The Android app bundles **`org.jellyfin.media3:media3-ffmpeg-decoder`**, the
Jellyfin project's build of the media3 FFmpeg extension, which contains FFmpeg.
It lets the player decode AC-3, E-AC-3, DTS and TrueHD audio, which Android does
not ship.
- Licence: **GNU General Public License v3.0**
- Source: <https://github.com/jellyfin/jellyfin-androidx-media> (build of
<https://github.com/androidx/media>), with FFmpeg from <https://ffmpeg.org>
Because this component is GPL-3.0, **the Android APK as distributed is subject
to the terms of the GPL-3.0**. The complete corresponding source for JellyTau is
available in this repository; JellyTau's own code remains available under MIT.
Desktop builds do not include this component.
## Windows: libmpv (LGPL-3.0)
The Windows installer bundles **`libmpv-2.dll`**, the mpv media player library
with FFmpeg compiled in, which plays audio on Windows. It is the LGPL build from
<https://github.com/zhongfly/mpv-winbuild> (mpv built `-Dgpl=false`, FFmpeg
without `--enable-gpl`), pinned by version and checksum in `Dockerfile.builder`.
- Licence: **GNU Lesser General Public License v3.0** (FFmpeg is configured
`--enable-version3`; mpv itself is LGPL-2.1-or-later in this configuration).
The installer carries the texts as `licenses/LGPL-3.0.txt` and
`licenses/GPL-3.0.txt`, which the LGPL-3.0 incorporates.
- Source: mpv <https://github.com/mpv-player/mpv> and FFmpeg
<https://ffmpeg.org>, built by the scripts at
<https://github.com/zhongfly/mpv-winbuild>; the exact mpv commit is in the
asset name in `Dockerfile.builder`.
JellyTau links it dynamically, and the DLL sits beside `jellytau.exe` as a
separate file, so it can be replaced with any compatible libmpv build. JellyTau's
own code remains under MIT. The Linux builds use the system's libmpv and do not
bundle it.