diff --git a/src/rtl_sdr_fm.cpp b/src/rtl_sdr_fm.cpp index 2c52443..1906b1e 100644 --- a/src/rtl_sdr_fm.cpp +++ b/src/rtl_sdr_fm.cpp @@ -943,28 +943,27 @@ static inline void audio_lpf_filter(struct demod_state *fm) fm->audio_lpf_state = y; } -long int rms(int16_t *samples, int len, int step) -/* largely lifted from rtl_power */ +long int mean_power(int16_t *samples, int len, int step) +/* DC-corrected mean power (sqrt-free). Returns squared RMS units. */ { int i; - long int rms; - long p, t, s; + int64_t p = 0; + int64_t t = 0; + int64_t s; double dc, err; - p = t = 0L; - for (i=0; i