X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=benchmark_audio_mixer.cpp;h=b47c3405eb7002fe0ec5001d93a60059eedcf42e;hb=6ffaabac0a523617b686f40c154a25cb548cc561;hp=4b8f84a93ef0458dffa25d8806a54564afa2400e;hpb=cf7b9ee186d4ef8e5da0531b75854c97b821be44;p=nageru diff --git a/benchmark_audio_mixer.cpp b/benchmark_audio_mixer.cpp index 4b8f84a..b47c340 100644 --- a/benchmark_audio_mixer.cpp +++ b/benchmark_audio_mixer.cpp @@ -61,6 +61,9 @@ void callback(float level_lufs, float peak_db, vector process_frame(unsigned frame_num, AudioMixer *mixer) { + duration> frame_duration(frame_num); + steady_clock::time_point ts = steady_clock::time_point(duration_cast(frame_duration)); + // Feed the inputs. for (unsigned card_index = 0; card_index < NUM_BENCHMARK_CARDS; ++card_index) { bmusb::AudioFormat audio_format; @@ -70,12 +73,11 @@ vector process_frame(unsigned frame_num, AudioMixer *mixer) unsigned num_samples = NUM_SAMPLES + (lcgrand() % 9) - 5; bool ok = mixer->add_audio(DeviceSpec{InputSourceType::CAPTURE_CARD, card_index}, card_index == 3 ? samples24 : samples16, num_samples, audio_format, - NUM_SAMPLES * TIMEBASE / OUTPUT_FREQUENCY); + NUM_SAMPLES * TIMEBASE / OUTPUT_FREQUENCY, ts); assert(ok); } - double pts = double(frame_num) * NUM_SAMPLES / OUTPUT_FREQUENCY; - return mixer->get_output(pts, NUM_SAMPLES, ResamplingQueue::ADJUST_RATE); + return mixer->get_output(ts, NUM_SAMPLES, ResamplingQueue::ADJUST_RATE); } void init_mapping(AudioMixer *mixer) @@ -99,7 +101,7 @@ void init_mapping(AudioMixer *mixer) void do_test(const char *filename) { - AudioMixer mixer(NUM_BENCHMARK_CARDS); + AudioMixer mixer(NUM_BENCHMARK_CARDS, 0); mixer.set_audio_level_callback(callback); init_mapping(&mixer); @@ -138,7 +140,7 @@ void do_test(const char *filename) void do_benchmark() { - AudioMixer mixer(NUM_BENCHMARK_CARDS); + AudioMixer mixer(NUM_BENCHMARK_CARDS, 0); mixer.set_audio_level_callback(callback); init_mapping(&mixer);