Conversation
|
I did one follow-up pass on the ScreenCaptureKit path after testing in macOS VM environments. Two changes seemed worth folding in:
In testing this fixed the delayed-update behavior without measurable CPU impact. The encoder path is already running at the target frame cadence, and the fallback still feeds it a zero-copy sample buffer rather than introducing a software copy path. |
|
|
Would moving to capture kit also fix the bad cursor latency when hosting on MacOS? |
|
Tested this on macOS (Mac mini, single display) streaming to Moonlight on Windows: it fixes #3433 for me. Previously the cursor disappeared from the stream after typing in any app and only came back after a few clicks; with this PR it stays visible. Mouse movement and clicks work normally, and picture sharpness and aspect ratio look correct. FYI, it no longer merges cleanly with master: |
|
I think this should be closed in favor of #5511 Let me know if I'm missing something. |




Description
Move macOS display capture to ScreenCaptureKit when available, with AVFoundation kept as fallback.
This is a backport of macOS capture work from Lumen, which appears to be an abandoned fork of Sunshine. The old AVFoundation capture path is still present and used if ScreenCaptureKit is unavailable or fails to initialize.
The main benefit is more reliable cursor capture. With the current AVFoundation path, some macOS apps can hide the pointer while typing and Sunshine does not see it reappear until the pointer returns to the Dock. This seems to be an Apple bug in AVFoundation, with ScreenCaptureKit being the most efficient fix.
Other benefits include improving handling for virtual or newly-created displays by refreshing ScreenCaptureKit shareable content when the selected display is not immediately available.
Tested manually on macOS with Moonlight/Sunshine streaming. This fixes the cursor-hidden-until-leaving-window behavior I was seeing with apps that hide the pointer during text input, which is pretty much everything from Terminal to XCode.
Issues Fixed or Closed
Resolves #3433.
Type of Change
Checklist
AI Usage