Skip to content

Surf v0.15.2

Choose a tag to compare

@github-actions github-actions released this 31 Aug 11:54
· 4 commits to main since this release
v0.15.2
3990dce

0.15.2 - 2026-08-31

A new low-overhead video renderer for iOS 8 and later.

  • Removed the expensive per-frame drawing pipeline. On iOS 8+, Surf now gives
    compressed H.264 frames directly to the system display queue. The app no longer
    waits for a decode callback, moves each decoded surface through UIKit, and draws
    it with OpenGL. This isolates playback from interface animations and cuts the
    renderer's own work to roughly a millisecond on supported devices.
  • Stopped keyboard changes from restarting video. The remote browser keeps one
    stable, even-sized surface while the keyboard or bottom browser controls move.
    iOS simply covers or repositions part of that surface locally.
  • Made overload recovery safe. Surf uses a single checked H.264 sample builder,
    discards only frames that cannot be decoded independently when the system queue
    is full, and replaces a failed display layer cleanly. iOS 6 and 7 retain the
    compatible VideoToolbox/OpenGL renderer in this release.
  • Made performance readings match the active renderer. Newer systems report
    accepted compressed frames, display-queue pressure, recoveries, and failures;
    older systems continue to report decode and OpenGL timing.
  • Kept the default stream sharp at 60 FPS. The primary stream uses the native
    display size and a detail-focused 16 Mbit/s variable bitrate. Unnecessary key
    frames and competition between ordinary controls and incoming media were
    removed.
  • Compatibility: protocol 20260831-1; update the client and server together.

Native iOS and unified Linux, Windows, and macOS packages are attached. Launch surf for the desktop app or run surf serve under a service manager for a headless backend.