Skip to content

Commit

Permalink
Merge branch 'RustAudio:master' into test-fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
PetrGlad authored Nov 22, 2024
2 parents bf60185 + ff45ff8 commit 565b026
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,10 @@ harness = false
name = "conversions"
harness = false

[[bench]]
name = "resampler"
harness = false

[[example]]
name = "music_m4a"
required-features = ["symphonia-isomp4", "symphonia-aac"]
Expand Down
42 changes: 42 additions & 0 deletions benches/resampler.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
use divan::Bencher;
use rodio::source::UniformSourceIterator;

mod shared;
use rodio::Source;
use shared::TestSource;

fn main() {
divan::main();
}

#[divan::bench]
fn no_resampling(bencher: Bencher) {
bencher
.with_inputs(|| {
let source = TestSource::<i16>::music_wav();
(source.channels(), source.sample_rate(), source)
})
.bench_values(|(channels, sample_rate, source)| {
UniformSourceIterator::<_, i16>::new(source, channels, sample_rate)
.for_each(divan::black_box_drop)
})
}

// taken from: https://github.com/audiojs/sample-rate/readme.md commit: be31b67
const COMMON_SAMPLE_RATES: [u32; 12] = [
8_000, 11_025, 16_000, 22_050, 44_100, 48_000, 88_200, 96_000, 176_400, 192_000, 352_800,
384_000,
];

#[divan::bench(args = COMMON_SAMPLE_RATES)]
fn resample_to(bencher: Bencher, target_sample_rate: u32) {
bencher
.with_inputs(|| {
let source = TestSource::<i16>::music_wav();
(source.channels(), source)
})
.bench_values(|(channels, source)| {
UniformSourceIterator::<_, i16>::new(source, channels, target_sample_rate)
.for_each(divan::black_box_drop)
})
}

0 comments on commit 565b026

Please sign in to comment.