Repository navigation
fix(windows): preserve Unicode capture helper arguments - #1153
xiangchiqingyu wants to merge 1917 commits into
Conversation
…ws-recording-reliability Fix Windows recording lifecycle, webcam sync, and captions
…ture-protection Keep the HUD out of recordings across capture backends
…-platform-update-toast-visibility Fix invisible update notifications on Windows and Linux
…indow-recording-crop Record selected windows by cropping full-screen captures
…e-console-eio Prevent closed console streams from crashing Recordly
This reverts commit 158b141.
…rdly-user-system-and-capture-picker Add source selection and authenticated account and permission settings
The renderer passes the microphone's enumerateDevices() label to the
ScreenCaptureKit helper, which resolves it by exact comparison with
AVCaptureDevice.localizedName. Chromium decorates that label with a
transport suffix ("Shure MV7 (14ed:1012)", "MacBook Pro Microphone
(Built-in)", "BlackHole 16ch (Virtual)"), so the comparison failed for
almost every device and the helper silently recorded the system default
input instead. With the lid closed that default is the built-in mic,
which delivers digital silence, so recordings came out without a voice.
Try the raw label first, then the label without its trailing
parenthetical.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolve the microphone by exact label, then by a device ID that names a real capture device, and only then by the label without Chromium's transport suffix, so the name heuristic cannot override a precise identifier. Move the matching into a pure function and replace the source-text assertions with a test that compiles it with swiftc and checks the results against a fixed device list, following the lifecycle test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # src/lib/exporter/modernFrameRenderer.ts
# Conflicts: # src/components/video-editor/videoPlayback/clipPlayback.ts
…rt-audio-merge-validation Fix Lightning export fallback, companion audio routing, and seek playback
…label-match fix(macos): match the selected microphone when Chromium adds a label suffix
…rackle-windows fix: disable mic AGC by default to stop Windows audio crackle
…audio-gap-timing Preserve macOS audio timing through encoder stalls
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
Description
Fix Unicode command-line argument handling in the Windows WGC native capture helper.
Motivation
Native Windows capture can fall back to browser capture when the temporary path contains non-ASCII characters, such as a Windows username written in Chinese.
The helper previously used
main(char* argv[]), so the JSON configuration argument could be decoded through the system ANSI code page and corrupt Unicode file paths before Media Foundation created the output file.Type of Change
Related Issue(s)
Follow-up to #517.
Screenshots / Video
Not applicable. This change only affects native Windows command-line/path handling.
Testing Guide
%TEMP%path contains non-ASCII characters.I reproduced the original fallback on Windows 10. Using an ASCII-only temporary directory allowed native capture to work, which isolated the problem to Unicode command-line/path handling.
Checklist
Summary by CodeRabbit