Commit Graph
31 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
webadderall e6e16ee422 chore(windows): remove stale DXGI capture helper 2026-03-26 11:05:38 +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
webadderall 0d9a1d1915 feat: add backend Whisper and native audio support
Add Electron IPC handlers and preload wiring for Whisper caption generation, small-model download management, and safer project media source resolution. Update native macOS capture helpers to mux separate system and microphone audio outputs before finalizing recordings.
2026-03-22 18:34:43 +11:00
webadderall 1a2fc987fb build: add bundled Whisper runtime pipeline
Add the Whisper runtime build script, package integration, runtime manifest, and staged darwin-arm64 Whisper binaries.
2026-03-22 18:30:19 +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 26a8e069e8 fix: restore cursor fallback and mac mic selection 2026-03-18 21:19:00 +11:00
webadderall ab1a163281 fix: re-release v1.1.1 mic capture + hud position 2026-03-18 21:00:39 +11:00
webadderall de1074cdff Pause native screen capture across platforms 2026-03-18 18:36:25 +11:00
KBCats 6e7a034a93 merge main into feat/cursor-sway 2026-03-16 08:57:03 -07:00
aras b3423c39dd fix(macos): add explicit target architecture to Swift helper builds
Added `-target` flag to swiftc compilation to explicitly specify arm64-apple-macos14.0 or x86_64-apple-macos14.0 based on process architecture, ensuring proper binary compilation for darwin-arm64 native helpers.
2026-03-15 18:01:14 +03:00
tokenflow1m afab911732 fix: add missing <cstdio> include and flush stdout explicitly
Address Copilot review: include <cstdio> for std::setvbuf portability,
use std::endl instead of "\n" to guarantee flush on piped stdout.
2026-03-15 18:25:48 +09:00
tokenflow1m 8844111584 feat(windows): add native cursor type detection via cursor-monitor.exe
Build a standalone C++ helper (same pattern as wgc-capture) that polls
GetCursorInfo() every 50ms and emits STATE:<type> to stdout — identical
protocol to the macOS Swift helper. Windows recordings now capture
correct cursor types (text, pointer, resize, etc.) instead of always
falling back to arrow.
2026-03-15 18:12:42 +09: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
webadderall 9435910e99 History reorganized for upstream alignment. 2026-03-13 21:36:30 +11:00
webadderall d4d4ff474f Make ScreenCaptureKit microphone APIs runtime-compatible across SDKs 2026-03-13 21:14:05 +11:00
webadderall 676204dc88 Prebundle mac native helpers and avoid runtime Swift compile in packaged app 2026-03-13 21:14:05 +11:00
webadderall c3c5d1ed63 Initial release of Recordly 2026-03-13 21:14:05 +11:00