From: Jaroslav Kysela Date: Wed, 8 Jun 2016 07:22:00 +0000 (+0200) Subject: dvb: add compensation for maximal frequency delta based on SR X-Git-Tag: v4.2.1~430 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d6bda752cc0ec5e3e3a7a00b082e660c4dccecb1;p=thirdparty%2Ftvheadend.git dvb: add compensation for maximal frequency delta based on SR --- diff --git a/src/input/mpegts/mpegts_network_dvb.c b/src/input/mpegts/mpegts_network_dvb.c index 33d88cc5a..4790da710 100644 --- a/src/input/mpegts/mpegts_network_dvb.c +++ b/src/input/mpegts/mpegts_network_dvb.c @@ -520,11 +520,17 @@ dvb_network_find_mux /* if ONID/TSID are a perfect match (and this is DVB-S, allow greater deltaf) */ if (lm->lm_tuning.dmc_fe_type == DVB_TYPE_S) { deltar = 10000; - if (onid != MPEGTS_ONID_NONE && tsid != MPEGTS_TSID_NONE) + if (onid != MPEGTS_ONID_NONE && tsid != MPEGTS_TSID_NONE) { deltaf = 16000; // This is slightly crazy, but I have seen 10MHz changes in freq // and remember the ONID and TSID must agree - else + } else { + /* the freq. changes for lower symbol rates might be smaller */ + if (dmc->u.dmc_fe_qpsk.symbol_rate < 5000000) + deltaf = 1900; + if (dmc->u.dmc_fe_qpsk.symbol_rate < 10000000) + deltaf = 2900; deltaf = 4000; + } } /* Reject if not same frequency (some tolerance due to changes and diff in NIT) */