Commit Graph
18 Commits
Author SHA1 Message Date
webadderall 1a9ed65913 fix(wgc): preserve full-width display identifiers 2026-03-27 21:05:33 +11:00
webadderall 70cefabd57 Revert "fix(recording): validate native captures and tighten mic menu spacing"
This reverts commit 1900c0e737.
2026-03-27 11:31:02 +11:00
webadderall 7fb4c5de9e Revert "Fix WGC display selection and webcam sync"
This reverts commit e5becc30a3.
2026-03-27 11:30:11 +11:00
webadderall f1df2911cb Merge fix/wgc-display-webcam-sync into main 2026-03-26 22:09:59 +11:00
webadderall e5becc30a3 Fix WGC display selection and webcam sync 2026-03-26 21:52:35 +11:00
webadderall 6f6ef68cc4 fix(windows): honor selected microphone in native capture 2026-03-26 11:17:39 +11:00
Pierre-Adrien Lair 906c476ebe Fix corrupted MP4 recordings on Windows by serializing encoder writes
The WGC capture session uses Direct3D11CaptureFramePool::CreateFreeThreaded,
which dispatches FrameArrived callbacks on thread pool threads concurrently.
MFEncoder::writeFrame() accesses non-thread-safe resources (ID3D11DeviceContext,
IMFSinkWriter, shared staging texture and NV12 buffer) without synchronization,
causing MP4 container corruption when callbacks overlap at high frame rates.

Add a mutex to serialize writeFrame() and finalize() calls, preventing
concurrent access to the D3D context and Media Foundation sink writer.

Fixes #96
2026-03-24 17:59:27 +01:00
webadderall 1900c0e737 fix(recording): validate native captures and tighten mic menu spacing 2026-03-24 19:04:24 +11:00
webadderall 01fe5921fd fix(windows): preserve full monitor ids for native capture 2026-03-23 18:00:00 +11:00
VoidGravity e6373f70f9 capturing silently, removing usless noisy warning 2026-03-20 22:29:51 +00:00
VoidGravity 39343a3247 Handle unsupported IsBorderRequired on Windows 10 causing Native Windows capture failure 2026-03-20 22:24:48 +00:00
webadderall 9aa638c88b Fix missing WasapiCapture pause and resume methods 2026-03-19 19:53:44 +11:00
webadderall 6c06c96f91 Selective merge of Windows system cursor fix #66 2026-03-19 11:10:44 +11:00
webadderall f5ccd5b7e0 Fix Windows DXGI capture helper flow 2026-03-19 00:05:58 +11:00
webadderall ae521ed9d9 feat(windows): replace WGC with DXGI and fix HUD window bounds 2026-03-18 22:11:10 +11:00
webadderall de1074cdff Pause native screen capture across platforms 2026-03-18 18:36:25 +11:00
tokenflow1m d3d202d33b fix(wgc): address PR review feedback
- Use getRecordingsDir() instead of hardcoded RECORDINGS_DIR
- Fix stop order: video first, then audio save, then mux via new
  mux-wgc-recording IPC
- Explicitly stop MediaStream tracks for audio resource cleanup
- Add native WASAPI audio capture (system loopback + mic) in C++ process
  for sample-accurate sync; browser audio APIs crash with WGC
- Add window capture support (CreateForWindow) with window: source prefix
- Kill WGC capture process on app before-quit
- Add even-dimension guard in MFEncoder
- Fix ffmpeg asar path backslash handling on Windows
- Remove dead browser-side WGC audio code (storeWgcAudio IPC,
  ScriptProcessorNode refs, stopWgcAudioCapture)
2026-03-15 03:37:27 +09:00
tokenflow1m 7b26ec3a9e Add native WGC screen capture for Windows
Uses Windows.Graphics.Capture to record the screen without the OS cursor
or the yellow capture border. Falls back to Electron capture on older Windows
or when the helper exe isn't available.
2026-03-14 23:02:29 +09:00