From 5a72e60fa6554f9be0d35a646a728e8e50ff1d7d Mon Sep 17 00:00:00 2001 From: Richie McIlroy <33632126+richiemcilroy@users.noreply.github.com> Date: Tue, 28 Oct 2025 14:51:07 -0700 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20eliminate=20=E2=80=9Chelicopter?= =?UTF-8?q?=E2=80=9D=20mic=20stutter=20by=20aligning=20mixer=20timebase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/recording/src/sources/audio_mixer.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/crates/recording/src/sources/audio_mixer.rs b/crates/recording/src/sources/audio_mixer.rs index b493379c8a..d4abb59f8c 100644 --- a/crates/recording/src/sources/audio_mixer.rs +++ b/crates/recording/src/sources/audio_mixer.rs @@ -193,7 +193,14 @@ impl AudioMixerBuilder { break; } - if let Err(()) = mixer.tick(start, Timestamp::Instant(Instant::now())) { + #[cfg(target_os = "macos")] + let now = Timestamp::MachAbsoluteTime(cap_timestamp::MachAbsoluteTimestamp::now()); + #[cfg(windows)] + let now = Timestamp::PerformanceCounter(cap_timestamp::PerformanceCounterTimestamp::now()); + #[cfg(not(any(target_os = "macos", windows)))] + let now = Timestamp::Instant(Instant::now()); + + if let Err(()) = mixer.tick(start, now) { info!("Mixer tick errored"); break; } From b84b43d59c270a98484da4d2d19422b6732206ba Mon Sep 17 00:00:00 2001 From: Richie McIlroy <33632126+richiemcilroy@users.noreply.github.com> Date: Tue, 28 Oct 2025 14:53:53 -0700 Subject: [PATCH 2/2] fmt --- crates/recording/src/sources/audio_mixer.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/recording/src/sources/audio_mixer.rs b/crates/recording/src/sources/audio_mixer.rs index d4abb59f8c..b3adbf9a2b 100644 --- a/crates/recording/src/sources/audio_mixer.rs +++ b/crates/recording/src/sources/audio_mixer.rs @@ -196,7 +196,8 @@ impl AudioMixerBuilder { #[cfg(target_os = "macos")] let now = Timestamp::MachAbsoluteTime(cap_timestamp::MachAbsoluteTimestamp::now()); #[cfg(windows)] - let now = Timestamp::PerformanceCounter(cap_timestamp::PerformanceCounterTimestamp::now()); + let now = + Timestamp::PerformanceCounter(cap_timestamp::PerformanceCounterTimestamp::now()); #[cfg(not(any(target_os = "macos", windows)))] let now = Timestamp::Instant(Instant::now());