Fix iOS stereo microphone capture
Build and test / test (macos-latest) (push) Canceled after 0s
Build and test / test (ubuntu-24.04) (push) Canceled after 0s
Build and test / test (windows-latest) (push) Canceled after 0s
Build and test / apple-client (push) Canceled after 0s

This commit is contained in:
2026-09-21 18:04:00 +02:00
parent 0372baf589
commit 4aa0aa4fbd
4 changed files with 75 additions and 14 deletions
+7 -6
View File
@@ -19,10 +19,11 @@ The source-of-truth layout is:
- `native/media/` and `native/rnnoise/` — required Opus/RNNoise shim and vendored RNNoise.
- `native/apple/broadcast/` — required ReplayKit upload extension and shared ring producer.
The physical-device iOS voice path now supports ReplayKit fallback and stable Apple VPIO
voice-chat capture using a paced 20 ms handoff. Stereo microphone routing remains an open device
gate: the stereo preset currently receives duplicated mono samples despite selecting the built-in
stereo capsule.
The physical-device iOS voice path now supports ReplayKit fallback, stable Apple VPIO voice-chat
capture using a paced 20 ms handoff, and true built-in stereo microphone capture. Stereo was
verified on an iPhone 16 Pro Max with a two-channel AVAudioEngine input and distinct left/right
samples; the managed Apple binding requires native use of its otherwise-unmapped stereo polar
pattern constant.
## Release gates
@@ -30,8 +31,8 @@ stereo capsule.
20/40/60 ms buffering, duration-aware DRED/FEC, and mismatched input/output endpoints.
- Complete NVDA and VoiceOver navigation/announcement passes.
- Exercise iOS background/lock, interruption, Bluetooth, route-change, ReplayKit, and iOS 27
ScreenCaptureKit paths on devices. Verify distinct left/right capture with the stereo microphone
preset, including changing mono/stereo while joined, and Windows desktop/per-app stereo sharing.
ScreenCaptureKit paths on devices. Complete extended mono/stereo/voice-chat switching while
joined, and verify Windows desktop/per-app stereo sharing.
- Complete Developer ID signing/notarization. The iOS host and ReplayKit extension have been
distribution-signed and packaged locally; upload the IPA for Apple's server-side validation.
- Run the published Linux container and a 30-minute-or-longer server soak.