Skip to content

v0.5.32 — H.264/EGFX video pipeline

Choose a tag to compare

@clintcan clintcan released this 20 May 22:55
· 668 commits to main since this release

Highlights

H.264 video over EGFX (--enable-h264) — stream the Mac desktop as hardware-encoded H.264 (AVC420, VideoToolbox) over the MS-RDPEGFX channel instead of legacy bitmaps. Much lower bandwidth, especially for video, scrolling, and photos. Clients that don't decode AVC420 (a decoder-less FreeRDP build, Microsoft Remote Desktop for macOS) fall back to legacy bitmaps automatically.

Responsiveness

Tuned so typing and cursor updates land promptly:

  • VideoToolbox MaxFrameDelayCount=0 — emit each frame immediately instead of buffering for look-ahead (the cause of "one frame behind" lag).
  • Bounded per-frame drain so the just-encoded frame ships the same tick.
  • Rare keyframes — RDP is reliable TLS/TCP, so frequent IDRs aren't needed; removes the periodic stutter.
  • Wider in-flight window so an occasional larger frame doesn't starve the pipeline.

Verified

  • Renders on mstsc and on FreeRDP built with H.264 decode (e.g. the Thincast client).
  • Annex-B framing (what Microsoft's decoder expects).

Known limitation

Reconnecting mstsc to a still-running macrdp can show a black screen (with a live cursor) — an mstsc-specific EGFX surface-handling quirk, not a server bug (FreeRDP reconnects cleanly). Workaround: restart macrdp, or fully close and reopen the mstsc window.

Full Changelog: v0.5.31...v0.5.32