]> git.sesse.net Git - nageru/commitdiff
Save another ~1% on the audio benchmark, by dealing with the std::deque more efficien...
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 25 Aug 2016 07:33:57 +0000 (09:33 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Wed, 19 Oct 2016 22:55:44 +0000 (00:55 +0200)
resampling_queue.cpp

index 88b711e990a5b8d3c4ca66d850d0e1598ba357d2..b7f898d83ac428af95034a3a59b29388bddf87be 100644 (file)
@@ -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;