X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=resampling_queue.cpp;h=46fa91070e8d3e56354877ebf1786082f0c49ccd;hb=6874b5cf96126f064656f0bfdecd8d446a9774a8;hp=88b711e990a5b8d3c4ca66d850d0e1598ba357d2;hpb=312ed2563ea113dc56960cbfedffd2ca32011a7d;p=nageru diff --git a/resampling_queue.cpp b/resampling_queue.cpp index 88b711e..46fa910 100644 --- a/resampling_queue.cpp +++ b/resampling_queue.cpp @@ -20,11 +20,14 @@ #include "resampling_queue.h" #include -#include -#include #include +#include #include #include +#include +#include + +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;