Initial commit

This commit is contained in:
admin1
2026-07-14 11:11:36 +08:00
commit 656499cf94
604 changed files with 119518 additions and 0 deletions
@@ -0,0 +1,55 @@
# media_kit_libs_windows_video (vendored fork)
Fork of `media_kit_libs_windows_video 1.0.11` from pub.dev. Windows-only, wired
into the main app via `dependency_overrides` in the project `pubspec.yaml`. Not
published to pub.
## Why fork
Upstream 1.0.11 downloads the media-kit organisation's 2023-09-24 `mpv-dev`
archive at build time. Its bundled FFmpeg is compiled with
`--disable-decoders` plus an explicit allow-list that omits two decoders we
need:
- `truehd` — Dolby TrueHD audio (mpv reports
`Failed to initialize a decoder for codec 'truehd'`)
- `hdmv_pgs_subtitle` (`pgssub`) — Blu-ray PGS bitmap subtitles (track can be
selected via `sid`, but nothing renders on screen)
Both symptoms are documented in the upstream tracker
([media-kit/media-kit#1269](https://github.com/media-kit/media-kit/issues/1269),
[#1371](https://github.com/media-kit/media-kit/issues/1371)) and both are fixed
by swapping in a full libmpv build.
## What changed vs. upstream 1.0.11
Only three variables in `windows/CMakeLists.txt` — the archive name, download
URL, and MD5. The download / extract / bundle logic is untouched, and the
archive layout (`libmpv-2.dll` + `include/mpv/*.h`) matches upstream.
| | Upstream 1.0.11 | This fork |
|---|-----------------|-----------|
| Source | `media-kit/libmpv-win32-video-build` | `zhongfly/mpv-winbuild` |
| Tag / date | `2023-09-24` | `2026-07-11-e5486b96d7` |
| Archive | `mpv-dev-x86_64-20230924-git-652a1dd.7z` | `mpv-dev-x86_64-20260711-git-e5486b96d7.7z` |
| Build flavour | Stripped (allow-listed decoders only) | Full (all upstream FFmpeg decoders) |
| CPU baseline | Generic x86_64 | Generic x86_64 (not `-v3`, so no AVX2 requirement) |
The plugin registrar (`MediaKitLibsWindowsVideoPluginCApi`), ANGLE bundle, and
package name / class name / API are identical to upstream so no other change
to `media_kit` / `media_kit_video` is required.
## Follow-ups (not blocking)
- `zhongfly/mpv-winbuild` is a nightly repository. Historical releases can be
pruned. To keep CI reproducible long-term, mirror the pinned archive to a
project-owned GitHub Release (same pattern as `mdk-sdk v0.37.0`) and repoint
`LIBMPV_URL`.
- Android has the same missing decoders in `media_kit_libs_android_video`.
Android currently falls back to media3/fvp so this is not urgent; if we
ever need mpv on Android too, mirror this vendor pattern there.
## License
Original MIT license retained in [`LICENSE`](./LICENSE). Upstream copyright:
Hitesh Kumar Saini and contributors.