From: Steinar H. Gunderson Date: Thu, 25 Aug 2016 07:33:57 +0000 (+0200) Subject: Save another ~1% on the audio benchmark, by dealing with the std::deque more efficien... X-Git-Tag: 1.4.0~78 X-Git-Url: https://git.sesse.net/?p=nageru;a=commitdiff_plain;h=7895dde165b0586eea324b4c9e07f8f0a2b7e1ba Save another ~1% on the audio benchmark, by dealing with the std::deque more efficiently. (Still some potential here.) --- diff --git a/resampling_queue.cpp b/resampling_queue.cpp index 88b711e..b7f898d 100644 --- a/resampling_queue.cpp +++ b/resampling_queue.cpp @@ -56,9 +56,7 @@ void ResamplingQueue::add_input_samples(double pts, const float *samples, ssize_ k_a0 = k_a1; k_a1 += num_samples; - for (ssize_t i = 0; i < num_samples * num_channels; ++i) { - buffer.push_back(samples[i]); - } + buffer.insert(buffer.end(), samples, samples + num_samples * num_channels); } bool ResamplingQueue::get_output_samples(double pts, float *samples, ssize_t num_samples, ResamplingQueue::RateAdjustmentPolicy rate_adjustment_policy) @@ -146,9 +144,7 @@ bool ResamplingQueue::get_output_samples(double pts, float *samples, ssize_t num if (num_input_samples * num_channels > buffer.size()) { num_input_samples = buffer.size() / num_channels; } - for (size_t i = 0; i < num_input_samples * num_channels; ++i) { - inbuf[i] = buffer[i]; - } + copy(buffer.begin(), buffer.begin() + num_input_samples * num_channels, inbuf); vresampler.inp_count = num_input_samples; vresampler.inp_data = inbuf;