Retire legacy sources and verify managed iOS deployment
This commit is contained in:
+4
-4
@@ -324,7 +324,7 @@ independent.
|
||||
chose not to denoise his mic, Sam can locally suppress Alex's background noise without
|
||||
affecting how anyone else hears Alex.
|
||||
|
||||
**Backend: RNNoise** (vendored in [`third_party/rnnoise/`](../third_party/rnnoise), BSD-3 + CC0).
|
||||
**Backend: RNNoise** (vendored in [`native/rnnoise/`](../native/rnnoise), BSD-3 + CC0).
|
||||
The original plan was WebRTC's APM, but `webrtc-audio-processing` has no working Windows/MSVC
|
||||
build (see §8). RNNoise is a small, dependency-free C library — a hybrid DSP/RNN speech denoiser
|
||||
that runs ~60× faster than real time. Both NR paths share one `ApmProcessor` implementation
|
||||
@@ -437,14 +437,14 @@ user (exactly like macOS/Windows), and no credentials are ever persisted to disk
|
||||
|
||||
- The user starts a broadcast from Control Center's screen-record button; we surface it via
|
||||
`RPSystemBroadcastPickerView` from inside the app (`VoiceControlsView`) for one-tap start.
|
||||
- The **Broadcast Upload Extension** (`clients/apple/iOS/VoiceCatBroadcast/SampleHandler.swift`)
|
||||
- The **Broadcast Upload Extension** (`native/apple/broadcast/SampleHandler.swift`)
|
||||
receives `RPSampleBufferType.audioApp` (system/app audio), `.audioMic`, and `.video`. We
|
||||
consume **`.audioApp`** only and drop video + mic — video is what blows the **~50 MB**
|
||||
extension memory budget, so an audio-only consumer stays comfortably inside it. The extension
|
||||
does **not** link `libvoicecat`.
|
||||
does **not** link the managed host or native media shim.
|
||||
- The extension converts each chunk to the core's canonical format (48 kHz int16 stereo, via
|
||||
`AVAudioConverter`) and writes it into a lock-free single-producer/single-consumer ring in a
|
||||
shared **App Group** mmap'd file (`clients/apple/iOS/Shared/BroadcastAudioRing.swift`). It
|
||||
shared **App Group** mmap'd file (`native/apple/broadcast/BroadcastAudioRing.swift`). It
|
||||
posts Darwin notifications on start/stop so the host reacts promptly.
|
||||
- The **host app** owns the stream: its `BroadcastAudioPump` announces the `SCREEN_AUDIO`
|
||||
stream over the control channel (`StreamAnnounce`), drains the ring, and calls
|
||||
|
||||
Reference in New Issue
Block a user