Skip to content

Recover microphone capture after an input disconnect - #1210

Open
silverstein wants to merge 1 commit into
mainfrom
fix/microphone-source-recovery-20261023
Open

silverstein wants to merge 1 commit into
mainfrom
fix/microphone-source-recovery-20261023

Conversation

@silverstein

Copy link
Copy Markdown
Owner

Putting AirPods away during a dual-source recording can stop the microphone while system audio continues, leaving the session apparently healthy and most in-room speech missing. This reconnects an available microphone and saves warnings describing the interruption and missing interval.

  • Track successful microphone writes independently of system audio and speech amplitude.
  • Observe disconnections for default inputs too. Prefer an available configured/default input with a built-in fallback.
  • Reuse segmented capture recovery and its existing Stop, stem-preservation, and elapsed-time contracts. Require actual microphone writes before confirming microphone recovery.
  • Warn about a stalled source without discarding the surviving input. Retain source warnings in the saved meeting.

Live configuration changes finalized SCRecordingOutput in a signed native test, so recovery creates a new segment instead of editing the active recording's configuration.

Validation at baafe90:

  • 482 desktop tests passed; 2,040 core tests passed, one ignored; workspace Clippy with warnings denied and formatting passed.
  • Capture-free Swift checks cover fallback selection, silence, retries, PCM, lifecycle, and gap preservation.
  • Signed installed Minutes Dev: two injected microphone-only stalls recovered in 3.413s and 3.518s, with both stems and consolidated media saved and gap warnings retained.
  • Stop during microphone recovery completed in 1.053s with no surviving capture helper.

The native tests used fault injection on real capture. A physical AirPods removal test is still pending. No production application replacement or release is included.

Fixes #1209.

Detect stalled microphone writes independently, choose an available input, and reuse segmented capture recovery with durable gap warnings. Preserve surviving audio when no input is available and require microphone writes before confirming its recovery. Fixes #1209.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Microphone capture never recovers after AirPods disconnect while system audio continues

1 participant