Skip to content

v0.5.47

Choose a tag to compare

@github-actions github-actions released this 26 May 07:07
· 614 commits to main since this release

Highlights

Fix minimize→refocus desktop lockout on mstsc with H.264. Long-minimizing the mstsc window with video flowing (e.g., YouTube playing on the Mac while you work in other Windows apps) used to leave the desktop frozen and unresponsive for several seconds on refocus while mstsc chewed through an accumulated EGFX frame backlog. Root cause: the vendor server was warn-and-dropping the client's SuppressOutput PDU instead of honoring it, so we kept streaming 60 fps into a minimized client.

Now SuppressOutput / RefreshRectangle are pattern-matched and toggle a shared flag the H.264 capture loop checks before pulling SCK / encoding / shipping. On the true→false edge an IDR keyframe is forced so mstsc resumes from a clean reference frame.

Two arming gates protect the connect path, since mstsc issues a SuppressOutput { None } during its normal connect handshake (before its display surface is ready) — honoring that blindly would freeze the desktop on first connect:

  • The suppress gate only fires after the first EGFX-accepted frame ships.
  • The shared flag is reset on every new connection to clean up stale state from prior disconnect/reconnect cycles.

FreeRDP was never affected (it doesn't issue suppress during connect). Verified on mstsc end-to-end: first connect, disconnect+reconnect, and the headline long-minimize+refocus scenario.

Full Changelog: v0.5.46...v0.5.47