diff --git a/src/librtlsdr.c b/src/librtlsdr.c index a0bcace..8d82586 100644 --- a/src/librtlsdr.c +++ b/src/librtlsdr.c @@ -667,10 +667,10 @@ int rtlsdr_set_freq_correction(rtlsdr_dev_t *dev, int ppm) /* read corrected clock value into e4k structure */ if (rtlsdr_get_xtal_freq(dev, NULL, &dev->e4k_s.vco.fosc)) return -3; - +#if 0 if (dev->rate) /* reset sample rate to apply new correction value */ r |= rtlsdr_set_sample_rate(dev, dev->rate); - +#endif if (dev->freq) /* retune to apply new correction value */ r |= rtlsdr_set_center_freq(dev, dev->freq); @@ -804,7 +804,7 @@ int rtlsdr_set_sample_rate(rtlsdr_dev_t *dev, uint32_t samp_rate) uint16_t tmp; uint32_t rsamp_ratio; double real_rate; - uint32_t rtl_freq; + uint32_t rtl_freq = dev->rtl_xtal; if (!dev) return -1; @@ -812,11 +812,14 @@ int rtlsdr_set_sample_rate(rtlsdr_dev_t *dev, uint32_t samp_rate) /* check for the maximum rate the resampler supports */ if (samp_rate > MAX_SAMP_RATE) samp_rate = MAX_SAMP_RATE; - +#if 0 /* read corrected clock value */ if (rtlsdr_get_xtal_freq(dev, &rtl_freq, NULL)) return -2; + if (samp_rate == MAX_SAMP_RATE && rtl_freq != DEF_RTL_XTAL_FREQ) + rtl_freq = DEF_RTL_XTAL_FREQ; +#endif rsamp_ratio = (rtl_freq * TWO_POW(22)) / samp_rate; rsamp_ratio &= ~3;