# 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.
