Skip to content

Normalize audio frame rate in AudioMixer output #4231

Normalize audio frame rate in AudioMixer output

Normalize audio frame rate in AudioMixer output #4231

Triggered via pull request October 22, 2025 16:23
Status Success
Total duration 10m 10s
Artifacts

ci.yml

on: pull_request
Detect Changes
6s
Detect Changes
Typecheck
1m 19s
Typecheck
Format (Biome)
9s
Format (Biome)
Format (Cargo)
11s
Format (Cargo)
Lint (Biome)
11s
Lint (Biome)
Matrix: Build Desktop
Clippy
1m 2s
Clippy
Verify Tauri plugin versions
Verify Tauri plugin versions
Fit to window
Zoom out
Zoom in

Annotations

10 warnings
this `map_or` can be simplified: crates/enc-ffmpeg/src/video/h264.rs#L98
warning: this `map_or` can be simplified --> crates/enc-ffmpeg/src/video/h264.rs:98:45 | 98 | let encoder_supports_input_format = codec | _____________________________________________^ 99 | | .video() 100 | | .ok() 101 | | .and_then(|codec_video| codec_video.formats()) 102 | | .map_or(false, |mut formats| { 103 | | formats.any(|f| f == input_config.pixel_format) 104 | | }); | |______________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or = note: `#[warn(clippy::unnecessary_map_or)]` on by default help: use is_some_and instead | 102 - .map_or(false, |mut formats| { 102 + .is_some_and(|mut formats| { |
manual implementation of an assign operation: crates/enc-ffmpeg/src/audio/buffered_resampler.rs#L92
warning: manual implementation of an assign operation --> crates/enc-ffmpeg/src/audio/buffered_resampler.rs:92:13 | 92 | next_pts = next_pts + samples as i64; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `next_pts += samples as i64` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern = note: `#[warn(clippy::assign_op_pattern)]` on by default
redundant pattern matching, consider using `is_some()`: crates/enc-ffmpeg/src/audio/buffered_resampler.rs#L78
warning: redundant pattern matching, consider using `is_some()` --> crates/enc-ffmpeg/src/audio/buffered_resampler.rs:78:19 | 78 | while let Some(_) = self.resampler.delay() { | ----------^^^^^^^------------------------- help: try: `while self.resampler.delay().is_some()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching = note: `#[warn(clippy::redundant_pattern_matching)]` on by default
this `if` statement can be collapsed: crates/enc-ffmpeg/src/audio/buffered_resampler.rs#L59
warning: this `if` statement can be collapsed --> crates/enc-ffmpeg/src/audio/buffered_resampler.rs:59:9 | 59 | / if let Some(min_next_pts) = self.min_next_pts { 60 | | if let Some(pts) = frame.pts() { 61 | | frame.set_pts(Some(pts.max(min_next_pts))); 62 | | } 63 | | } | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if = note: `#[warn(clippy::collapsible_if)]` on by default help: collapse nested if block | 59 ~ if let Some(min_next_pts) = self.min_next_pts 60 ~ && let Some(pts) = frame.pts() { 61 | frame.set_pts(Some(pts.max(min_next_pts))); 62 ~ } |
unneeded `return` statement: crates/enc-ffmpeg/src/audio/buffered_resampler.rs#L51
warning: unneeded `return` statement --> crates/enc-ffmpeg/src/audio/buffered_resampler.rs:51:9 | 51 | return remaining_samples; | ^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return = note: `#[warn(clippy::needless_return)]` on by default help: remove `return` | 51 - return remaining_samples; 51 + remaining_samples |
this `if` statement can be collapsed: crates/audio/src/latency.rs#L589
warning: this `if` statement can be collapsed --> crates/audio/src/latency.rs:589:13 | 589 | / if is_output_stream(&stream)? { 590 | | if let Ok(latency) = stream.latency() { 591 | | max_latency = max_latency.max(latency); 592 | | } 593 | | } | |_____________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if help: collapse nested if block | 589 ~ if is_output_stream(&stream)? 590 ~ && let Ok(latency) = stream.latency() { 591 | max_latency = max_latency.max(latency); 592 ~ } |
this `if` statement can be collapsed: crates/audio/src/latency.rs#L370
warning: this `if` statement can be collapsed --> crates/audio/src/latency.rs:370:9 | 370 | / if let Some(prev_raw) = self.last_raw_latency_secs { 371 | | if self.update_count < WARMUP_GUARD_SAMPLES as u64 372 | | && clamped > prev_raw * WARMUP_SPIKE_RATIO ... | 378 | | } | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if = note: `#[warn(clippy::collapsible_if)]` on by default help: collapse nested if block | 370 ~ if let Some(prev_raw) = self.last_raw_latency_secs 371 ~ && self.update_count < WARMUP_GUARD_SAMPLES as u64 372 | && clamped > prev_raw * WARMUP_SPIKE_RATIO ... 376 | return; 377 ~ } |
clamp-like pattern without using clamp function: crates/audio/src/latency.rs#L295
warning: clamp-like pattern without using clamp function --> crates/audio/src/latency.rs:295:26 | 295 | self.bias_secs = bias_secs.max(0.0).min(MAX_LATENCY_SECS); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `bias_secs.clamp(0.0, MAX_LATENCY_SECS)` | = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() = note: clamp returns NaN if the input is NaN = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp
clamp-like pattern without using clamp function: crates/audio/src/latency.rs#L261
warning: clamp-like pattern without using clamp function --> crates/audio/src/latency.rs:261:25 | 261 | let bias_secs = bias_secs.max(0.0).min(MAX_LATENCY_SECS); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `bias_secs.clamp(0.0, MAX_LATENCY_SECS)` | = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() = note: clamp returns NaN if the input is NaN = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp = note: `#[warn(clippy::manual_clamp)]` on by default
clamp-like pattern without using clamp function: crates/media-info/src/lib.rs#L76
warning: clamp-like pattern without using clamp function --> crates/media-info/src/lib.rs:76:13 | 76 | raw_channels.min(Self::MAX_AUDIO_CHANNELS).max(1) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `raw_channels.clamp(1, Self::MAX_AUDIO_CHANNELS)` | = note: clamp will panic if max < min = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp = note: `#[warn(clippy::manual_clamp)]` on by default