Skip to content

Releases: libmpv-ios/mpv-ios

mpv-ios v0.1.2

Choose a tag to compare

@github-actions github-actions released this 13 Sep 02:29

Prebuilt libmpv XCFramework and MPVKit Swift Package for iOS.

Assets:

  • Libmpv.xcframework.zip — binary framework only
  • MPVKit-v0.1.2.zip — full Swift Package (framework included)
  • checksum.txt — SHA-256 checksum for binaryTarget(url:checksum:) in a remote Package.swift

Fixed

  • buildscripts/scripts/libass.sh: the iOS device (arm64) build
    failed at the final link step with ~24 undefined _ass_*_neon symbols
    from libmpv-combined.a. libass's autotools build (Makefile.am)
    never lists its own libass/aarch64/*.S NEON asm sources — only its
    Meson build does — so the archive shipped a dispatcher that calls NEON
    functions with no object code backing them. Rebuilt libass with Meson
    • Ninja instead, matching every other Meson-based dependency in this
      repo (docs/RESEARCH.md #37).

Dependency versions pinned at this release:

Dependency Version
lua 5.2.4
unibreak 7.0
harfbuzz 14.4.0
fribidi 1.0.16
freetype 2.14.3
mbedtls 3.6.5
libxml2 2.15.4
iOS minimum target 13.0
mpv (git ref) master
ffmpeg (git ref) master
dav1d (git ref) master
libass (git ref) master
libplacebo (git ref) master

See docs/RESEARCH.md for the full build/porting
log, and README.md for integration steps.

mpv-ios v0.1.1

Choose a tag to compare

@github-actions github-actions released this 12 Sep 09:44

Prebuilt libmpv XCFramework and MPVKit Swift Package for iOS.

Assets:

  • Libmpv.xcframework.zip — binary framework only
  • MPVKit-v0.1.1.zip — full Swift Package (framework included)
  • checksum.txt — SHA-256 checksum for binaryTarget(url:checksum:) in a remote Package.swift

Added

  • Touch gesture support in mpv-ios-player, ported from mpv-android's
    TouchGestures.kt: swipe-to-seek, swipe-to-adjust-volume,
    swipe-to-adjust-brightness, and tap gestures (left/right fixed-seek,
    center play/pause), plus the tap-to-toggle-controls fallback for plain
    taps that don't trigger a gesture. New reusable MPVTouchGestures
    headless gesture recognizer in MPVKit (no UIKit/SwiftUI dependency),
    wired into MPVPlayerView/PlayerViewModel (docs/RESEARCH.md #26).
  • Control Center/lock-screen media controls and Picture in Picture support,
    with MediaSessionManager, PictureInPictureRenderer,
    PictureInPictureCoordinator, and the required iOS background/rendering
    integration (docs/RESEARCH.md #27).
  • Playlist management with loading, append, navigation, removal, movement,
    clearing, shuffling, playlist UI, and Control Center next/previous-track
    commands, using per-entry property reads and explicit refresh after
    playlist-move (docs/RESEARCH.md #28).
  • Runtime hardware/software decoder selection with active-decoder
    observation and a decoder picker integrated into the track-selection UI
    (docs/RESEARCH.md #29).
  • Subtitle styling controls for delay, scale, position, text color, and
    background color through a dedicated SubtitleStyleSheet (docs/RESEARCH.md #30).
  • Video scaling and interpolation controls covering spatial/chroma/downscale/
    temporal scaling, interpolation, aspect mode, zoom, rotation, panscan, and
    unscaled-video behavior through a dedicated VideoSettingsSheet
    (docs/RESEARCH.md #31).
  • Persistent playback-position saving and removal using mpv's built-in
    watch-later mechanism, triggered on stop and app backgrounding
    (docs/RESEARCH.md #32).
  • A playback statistics overlay showing codec, resolution, FPS, hardware
    decoder, bitrate, A/V sync, dropped frames, and cache state, with periodic
    updates while visible (docs/RESEARCH.md #33).
  • Orientation controls with auto, landscape, portrait, and unlocked modes,
    including tap-to-toggle and long-press selection backed by a new
    AppDelegate orientation controller (docs/RESEARCH.md #34).

Fixed

  • MPVPlayer.swift: loadFile(_:mode:) was declared twice in the same
    MPVCore extension (an exact duplicate introduced when playlist
    support was added), causing an "invalid redeclaration" compile error.
    Removed the duplicate, kept the more fully-commented version under the
    "Playlist" section (docs/RESEARCH.md #35).
  • MPVPlayerView.swift: the drag-gesture handler called
    touchGestures.touchMoved(at:), but MPVTouchGestures declares it as
    touchMoved(to:), causing an "incorrect argument label" compile error.
    Fixed the call site to use to: (docs/RESEARCH.md #36).

Dependency versions pinned at this release:

Dependency Version
lua 5.2.4
unibreak 7.0
harfbuzz 14.4.0
fribidi 1.0.16
freetype 2.14.3
mbedtls 3.6.5
libxml2 2.15.4
iOS minimum target 13.0
mpv (git ref) master
ffmpeg (git ref) master
dav1d (git ref) master
libass (git ref) master
libplacebo (git ref) master

See docs/RESEARCH.md for the full build/porting
log, and README.md for integration steps.