It seems that broadcasters do not sync the actual parameters across
all transponders (19.2E, 16E etc.). This means that TVH tries to
replace parameters, but it's not possible. So create duplicate
muxes - and allow users to remove them when broadcasters will
behave as they should.
const int dvb_sat_position_from_str( const char *buf );
+static inline int dvb_modulation_is_none_or_auto ( int modulation )
+{
+ return modulation == DVB_MOD_NONE ||
+ modulation == DVB_MOD_AUTO ||
+ modulation == DVB_MOD_QAM_AUTO;
+}
+
#endif /* ENABLE_MPEGTS_DVB */
void dvb_init ( void );
/* DVB-S extra checks */
if (lm->lm_tuning.dmc_fe_type == DVB_TYPE_S) {
+ /* Same modulation */
+ if (!dvb_modulation_is_none_or_auto(lm->lm_tuning.dmc_fe_modulation) &&
+ !dvb_modulation_is_none_or_auto(dmc->dmc_fe_modulation) &&
+ lm->lm_tuning.dmc_fe_modulation != dmc->dmc_fe_modulation) continue;
+
+ /* Same FEC */
+ if (lm->lm_tuning.u.dmc_fe_qpsk.fec_inner != dmc->u.dmc_fe_qpsk.fec_inner) continue;
+
/* Same polarisation */
if (lm->lm_tuning.u.dmc_fe_qpsk.polarisation != dmc->u.dmc_fe_qpsk.polarisation) continue;