Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
dvb: split DVB-S muxes with different modulation and FEC
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.
  • Loading branch information
perexg committed May 27, 2016
1 parent 321fcc1 commit 7c71d41
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/input/mpegts/dvb.h
Expand Up @@ -647,6 +647,13 @@ const char *dvb_sat_position_to_str( int position, char *buf, size_t buflen );

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 );
Expand Down
8 changes: 8 additions & 0 deletions src/input/mpegts/mpegts_network_dvb.c
Expand Up @@ -533,6 +533,14 @@ dvb_network_find_mux
/* 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;

Expand Down

0 comments on commit 7c71d41

Please sign in to comment.