mirror of https://github.com/lwvmobile/dsd-fme.git
RTL RMS Tests to Reduce CPU Usage;
This commit is contained in:
parent
eb5de342ba
commit
2161c3d762
|
|
@ -1369,12 +1369,12 @@ liveScanner (dsd_opts * opts, dsd_state * state)
|
|||
{
|
||||
open_rtlsdr_stream(opts);
|
||||
opts->rtl_started = 1; //set here so ncurses terminal doesn't attempt to open it again
|
||||
#ifdef __arm__
|
||||
fprintf (stderr, "WARNING: RMS Function is Disabled on ARM Devices (Raspberry Pi) due to High CPU use. \n");
|
||||
fprintf (stderr, "RMS/Squelch Functionality for NXDN, dPMR, EDACS Analog, M17 and Raw Audio Monitor are unavailable and these modes will not function properly. \n");
|
||||
if (opts->monitor_input_audio == 1) opts->monitor_input_audio = 0;
|
||||
opts->rtl_squelch_level = 0;
|
||||
#endif
|
||||
// #ifdef __arm__
|
||||
// fprintf (stderr, "WARNING: RMS Function is Disabled on ARM Devices (Raspberry Pi) due to High CPU use. \n");
|
||||
// fprintf (stderr, "RMS/Squelch Functionality for NXDN, dPMR, EDACS Analog, M17 and Raw Audio Monitor are unavailable and these modes will not function properly. \n");
|
||||
// if (opts->monitor_input_audio == 1) opts->monitor_input_audio = 0;
|
||||
// opts->rtl_squelch_level = 0;
|
||||
// #endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -642,10 +642,10 @@ void edacs(dsd_opts * opts, dsd_state * state)
|
|||
fprintf (stderr, " Digital");
|
||||
|
||||
//skip analog calls on RTL Input on ARM devices due to High CPU usage from RTL RMS function
|
||||
#ifdef __arm__
|
||||
if (command == 0xEE && opts->audio_in_type == 3)
|
||||
goto ENDPV;
|
||||
#endif
|
||||
// #ifdef __arm__
|
||||
// if (command == 0xEE && opts->audio_in_type == 3)
|
||||
// goto ENDPV;
|
||||
// #endif
|
||||
|
||||
//skip analog calls on UDP Audio Output
|
||||
if (command == 0xEE && opts->audio_out_type == 8)
|
||||
|
|
|
|||
|
|
@ -1130,11 +1130,15 @@ void rtl_dev_tune(dsd_opts * opts, long int frequency)
|
|||
long int rtl_return_rms()
|
||||
{
|
||||
long int sr = 0;
|
||||
#ifdef __arm__
|
||||
sr = 100;
|
||||
#else
|
||||
sr = rms(demod.lowpassed, demod.lp_len, 1);
|
||||
#endif
|
||||
// #ifdef __arm__
|
||||
// sr = 100;
|
||||
// #else
|
||||
//debug -- on main machine, lp_len is around 6420, so this probably contributes to very high CPU usage
|
||||
// fprintf (stderr, "LP_LEN: %d \n", demod.lp_len);
|
||||
//I've found that just using a sample size of 160 will give us a good approximation without killing the CPU
|
||||
// sr = rms(demod.lowpassed, demod.lp_len, 1);
|
||||
sr = rms(demod.lowpassed, 160, 1); //I wonder what a reasonable value would be for #2 (input len) there
|
||||
// #endif
|
||||
return (sr);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue