#include "samplerate_meter.h" #include "dsp/block_helpers.h" #include "utils/time.h" #include namespace satdump { namespace ndsp { template SamplerateMeterBlock::SamplerateMeterBlock() : BlockSimple("samplerate_meter_" + getShortTypeName() + getShortTypeName(), {{"in", getTypeSampleType()}}, {{"out", getTypeSampleType()}}) { } template SamplerateMeterBlock::~SamplerateMeterBlock() { } template uint32_t SamplerateMeterBlock::process(T *input, uint32_t nsamples, T *output) { double ctime = getTime(); memcpy(output, input, nsamples * sizeof(T)); samplecount += nsamples; double time_delta = ctime - last_timestamp; if (time_delta > 1.0) { if (last_timestamp != 0) measured_samplerate = samplecount / time_delta; samplecount = 0; last_timestamp = ctime; } return nsamples; } template class SamplerateMeterBlock; template class SamplerateMeterBlock; } // namespace ndsp } // namespace satdump