EXPERIMENT: Don't wait on hopping mutex to improve tuner granularity.
Opened this issue · 0 comments
wizardishungry commented
Idea for improving the number of tuning operations per second #8
The current implementation of RtlSdr_tune
signals s->hop_m
to let the tuning thread know to tune the SDR. Why not try moving controller_thread_fn
's mutex wait out of the loop body.
safe_cond_wait(&s->hop, &s->hop_m);
- Instrument code to count frequency transitions per second.
- Pop in code that makes
step
call the tuner every time. - Record the performance.
- Remove the mutex (
safe_cond_signal
in RtlSdr_tune &safe_cond_wait
in the loop body) and record again. - Report back here.
In the shipping version of the code, the tuning thread should keep track of what it tuned to and only tune again (ie call optimal_settings
& rtlsdr_set_center_freq
) if the frequency has changed.
If we're thinking of calling optimal_settings
& rtlsdr_set_center_freq
directly inside RtlSdr_tune
, remember that rtlsdr_set_center_freq will hang Rack & glitch the audio if you call it as fast as you can.