]> git.sesse.net Git - nageru/blobdiff - resampling_queue.cpp
Write 1.4.0 changelog.
[nageru] / resampling_queue.cpp
index 88b711e990a5b8d3c4ca66d850d0e1598ba357d2..46fa91070e8d3e56354877ebf1786082f0c49ccd 100644 (file)
 #include "resampling_queue.h"
 
 #include <assert.h>
-#include <math.h>
-#include <stddef.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <zita-resampler/vresampler.h>
+#include <algorithm>
+#include <cmath>
+
+using namespace std;
 
 ResamplingQueue::ResamplingQueue(unsigned card_num, unsigned freq_in, unsigned freq_out, unsigned num_channels)
        : card_num(card_num), freq_in(freq_in), freq_out(freq_out), num_channels(num_channels),
@@ -56,9 +59,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 +147,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;