Skip to content

build(ios): move MPVKit to 1.1.0-n9.0.2 - #78

Merged
MaxMB15 merged 3 commits into
feature/ios-pocfrom
feature/ios-mpvkit-1.1
Oct 10, 2026
Merged

MaxMB15 merged 3 commits into
feature/ios-pocfrom
feature/ios-mpvkit-1.1

Conversation

@MaxMB15

@MaxMB15 MaxMB15 commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Moves the iOS app from MPVKit 0.41.0 to 1.1.0-n9.0.2.

Why

MPVKit 0.41.0 configured FFmpeg with --enable-nonfree. It didn't enable any nonfree library, but the flag alone makes avcodec_license() and the other license functions report "nonfree and unredistributable". That's the wrong thing to ship in an App Store build that relies on the LGPL. MPVKit 1.0.0 dropped the flag (mpvkit/MPVKit#78). In this build all seven FFmpeg libraries report "LGPL version 3 or later", and the app binary contains --enable-version3 with no --enable-gpl or --enable-nonfree.

Why 1.1.0 and not 1.0.0

1.0.0 ships FFmpeg 8.1.2, and its HTTP client has a bug that stopped the test .ts file from playing. FFmpeg sends Connection: close on every request, but 8.1 added a "soft seek" that sends the next request on the same connection unless the server's reply also said Connection: close. A server that closes the connection without saying so, such as Python's http.server, makes the seek fail with "End of file", and mpv gives up on the file. nginx, Apache, Go and Node echo the header, so most IPTV servers wouldn't hit it, but it's still a regression.

FFmpeg fixed it on master in bd51105 and f87323a. Neither went into 8.1.3, and both are in 9.0.2. MPVKit 1.1.0-n9.0.2 is 1.0.0 with only FFmpeg changed, built with the same options.

1.0.0 also builds every library for iOS 15, so the linker warning about uavs3d needing 17.5 is gone. The app stays at 17.5.

Docs

  • THIRD_PARTY_NOTICES.md names FFmpeg 9.0.2 and MPVKit 1.1.0-n9.0.2. It also corrects an earlier mistake. MPVKit's libraries are static archives linked into the app's executable, not frameworks in the Frameworks folder.
  • docs/ios.md and apps/ios/DESIGN.md name the new version.

Testing

In the iPhone 17 Pro simulator:

  • The live .ts, file .ts, HLS and HEVC .mkv test channels all play.
  • The file .ts plays and seeks from a server that closes connections without saying so. That's the case that failed with 1.0.0.
  • Rotating to both landscape orientations and back resizes the video correctly.

MPVKit 0.41.0 configured FFmpeg with --enable-nonfree. No nonfree library
was enabled, but the flag alone made the FFmpeg libraries report their
license as "nonfree and unredistributable". MPVKit 1.0.0 dropped the flag,
and the libraries in this release report LGPL version 3 or later.

1.1.0-n9.0.2 is 1.0.0 with FFmpeg 9.0.2 in place of 8.1.2. FFmpeg 8.1
reuses an HTTP connection after asking the server to close it. When the
server closes it without saying so in its reply, every seek fails and a
.ts file ends before it starts. FFmpeg 9.0 has the upstream fixes.
MPVKit's libraries are static archives, so the linker puts them in the
app's executable. The notices said each one was a framework in the app's
Frameworks folder.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Three documentation references name nonexistent MPVKit 1.1.0 instead of the exact 1.1.0-n9.0.2 release.

0 open findings

What changed in this PR

Updates the iOS app to MPVKit 1.1.0-n9.0.2, incorporating FFmpeg 9.0.2 and corrected licensing information.

Changes:

  • Updates Swift Package Manager references and lock metadata.
  • Revises third-party licensing details.
  • Updates iOS documentation, though several references omit the release suffix.
File Description
THIRD_PARTY_NOTICES.md Updates FFmpeg, MPVKit, linking, and target details.
docs/​ios.md Updates the documented MPVKit version.
apps/​ios/​DESIGN.md Revises dependency and linking documentation.
apps/​desktop/​src-tauri/​gen/​apple/​project.yml Pins the new MPVKit release.
apps/​desktop/​src-tauri/​gen/​apple/​max-video-player.xcodeproj/​project.xcworkspace/​xcshareddata/​swiftpm/​Package.resolved Records the new tag and matching revision.
apps/​desktop/​src-tauri/​gen/​apple/​max-video-player.xcodeproj/​project.pbxproj Updates the generated Xcode package requirement.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

MPVKit tags its releases as 1.1.0-n9.0.2, and there's no plain 1.1.0
tag, so the short name pointed nowhere.
@MaxMB15
MaxMB15 merged commit ccf648c into feature/ios-poc Oct 10, 2026
1 check passed
@MaxMB15
MaxMB15 deleted the feature/ios-mpvkit-1.1 branch October 11, 2026 23:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants