feat: scaffold macOS native capture pipeline

This commit is contained in:
EtienneLescot
2026-05-11 10:29:38 +02:00
committed by Etienne Lescot
parent 6018ba0fe1
commit fbdc7d5697
6 changed files with 357 additions and 0 deletions
+27
View File
@@ -1,5 +1,32 @@
# Native capture helpers
## macOS
macOS native recording will use a ScreenCaptureKit helper with the same process boundary as the Windows WGC helper:
1. Electron resolves the selected source, output paths, and user-selected devices.
2. The helper receives one structured JSON request.
3. The helper owns ScreenCaptureKit/AVFoundation capture, timing, encoding, and muxing.
4. Electron persists the resulting media/session manifest and reports helper errors explicitly.
Expected development helper locations:
1. `OPENSCREEN_SCK_CAPTURE_EXE`, for local development and diagnostics.
2. `electron/native/screencapturekit/build/openscreen-screencapturekit-helper`, for locally built Swift output.
3. `electron/native/bin/darwin-arm64/openscreen-screencapturekit-helper` or `electron/native/bin/darwin-x64/openscreen-screencapturekit-helper`, for packaged prebuilt helpers.
The current macOS helper script is a placeholder:
```bash
npm run build:native:mac
```
On non-macOS hosts this command exits successfully and does not affect Windows/Linux development. On macOS it fails until the Swift ScreenCaptureKit helper lands.
See `docs/engineering/macos-native-recorder-roadmap.md` for the contract, rollout phases, and SSOT rules.
## Windows
Windows native recording is resolved from one of these locations:
1. `OPENSCREEN_WGC_CAPTURE_EXE`, for local development and diagnostics.