Moved baseband temporary buffers back into class member variables.

Significant performance hit when declaring on stack. C++ wants to initialize std::array or even raw array with element constructors, was resulting in ~7% CPU utilization, for a buffer that was immediately written over anyway.
This commit is contained in:
Jared Boone 2016-01-03 22:31:44 -08:00
parent 5547782f5a
commit d9017530c6
10 changed files with 42 additions and 45 deletions

View file

@ -28,21 +28,10 @@ void WidebandFMAudio::execute(const buffer_c8_t& buffer) {
return;
}
std::array<complex16_t, 512> dst;
const buffer_c16_t dst_buffer {
dst.data(),
dst.size()
};
const auto decim_0_out = decim_0.execute(buffer, dst_buffer);
const auto decim_1_out = decim_1.execute(decim_0_out, dst_buffer);
const auto decimator_out = decim_1_out;
const buffer_s16_t work_audio_buffer {
(int16_t*)decimator_out.p,
sizeof(*decimator_out.p) * decimator_out.count
};
auto channel = decimator_out;
// TODO: Feed channel_stats post-decimation data?