mpegts network: discovery - always save the orbital position
This commit is contained in:
parent
e5b83a6a7c
commit
99ed831f37
1 changed files with 12 additions and 5 deletions
|
@ -392,7 +392,7 @@ dvb_network_create_mux
|
|||
mm, buf, onid, tsid, mm->mm_network->mn_network_name);
|
||||
#endif
|
||||
}
|
||||
} else if (mm && ln->mn_autodiscovery) {
|
||||
} else if (mm) {
|
||||
dvb_mux_t *lm = (dvb_mux_t*)mm;
|
||||
/* the nit tables may be inconsistent (like rolloff ping-pong) */
|
||||
/* accept information only from one origin mux */
|
||||
|
@ -429,6 +429,16 @@ dvb_network_create_mux
|
|||
char buf[128];
|
||||
tuning_old = lm->lm_tuning;
|
||||
#endif
|
||||
/* Always save the orbital position */
|
||||
if (dmc->dmc_fe_type == DVB_TYPE_S) {
|
||||
if (lm->lm_tuning.u.dmc_fe_qpsk.orbital_dir == 0 ||
|
||||
dvb_network_check_orbital_pos(lm, dmc))
|
||||
save |= COMPARE(u.dmc_fe_qpsk.orbital_pos);
|
||||
save |= COMPARE(u.dmc_fe_qpsk.orbital_dir);
|
||||
}
|
||||
/* Do not change anything else without autodiscovery flag */
|
||||
if (!ln->mn_autodiscovery)
|
||||
goto save;
|
||||
/* Handle big diffs that have been allowed through for DVB-S */
|
||||
if (deltaU32(dmc->dmc_fe_freq, lm->lm_tuning.dmc_fe_freq) > 4000) {
|
||||
lm->lm_tuning.dmc_fe_freq = dmc->dmc_fe_freq;
|
||||
|
@ -450,10 +460,6 @@ dvb_network_create_mux
|
|||
break;
|
||||
case DVB_TYPE_S:
|
||||
save |= COMPARE(u.dmc_fe_qpsk.polarisation);
|
||||
if (lm->lm_tuning.u.dmc_fe_qpsk.orbital_dir == 0 ||
|
||||
dvb_network_check_orbital_pos(lm, dmc))
|
||||
save |= COMPARE(u.dmc_fe_qpsk.orbital_pos);
|
||||
save |= COMPARE(u.dmc_fe_qpsk.orbital_dir);
|
||||
save |= COMPARE(u.dmc_fe_qpsk.symbol_rate);
|
||||
save |= COMPAREN(u.dmc_fe_qpsk.fec_inner);
|
||||
break;
|
||||
|
@ -477,6 +483,7 @@ dvb_network_create_mux
|
|||
}
|
||||
#endif
|
||||
}
|
||||
save:
|
||||
if (mm && save) {
|
||||
mm->mm_dmc_origin = mmo;
|
||||
mm->mm_dmc_origin_expire = dispatch_clock + 3600 * 24; /* one day */
|
||||
|
|
Loading…
Add table
Reference in a new issue