fix(audio,ios): gate output_underrun on !muted in refactored render callback
The PR #27 refactor moved the iOS render callback to a direct-fill path with its own peak_i16 == 0 check, dropping the !muted gate that PR #28 added to the pre-refactor callback. Without this gate, every muted callback fires a false-positive increment_output_underrun() because the downmix helper writes silence (peak_i16 = 0) by design when muted. Re-apply PR #28's gate to the refactored iOS path so this PR does not silently reintroduce the bug PR #28 was opened to fix. Verified: - cargo test -p chanora_audio --lib: 133 passed, 0 failed - cargo build -p chanora_audio --target aarch64-apple-ios: clean
This commit is contained in:
@@ -1060,6 +1060,9 @@ impl IosVoiceUnit {
|
||||
callbacks_with_audio = callbacks_with_audio.wrapping_add(1);
|
||||
} else {
|
||||
callbacks_with_silence = callbacks_with_silence.wrapping_add(1);
|
||||
// Muted output writes intentional silence (peak_i16 == 0 by
|
||||
// design), not a starved render path. Gate on !muted to avoid
|
||||
// counting deliberate silence as an output underrun.
|
||||
if !muted {
|
||||
audio_processing_stats_for_render.increment_output_underrun();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user