.id = "iptv_satip_dvbt_freq",
.name = N_("SAT>IP DVB-T frequency (Hz)"),
.off = offsetof(iptv_mux_t, mm_iptv_satip_dvbt_freq),
+ .desc = N_("For example: 658000000. This frequency is 658Mhz."),
+ .opts = PO_ADVANCED
+ },
+ {
+ .type = PT_U32,
+ .id = "iptv_satip_dvbc_freq",
+ .name = N_("SAT>IP DVB-C frequency (Hz)"),
+ .off = offsetof(iptv_mux_t, mm_iptv_satip_dvbc_freq),
+ .desc = N_("For example: 312000000. This frequency is 312Mhz."),
+ .opts = PO_ADVANCED
+ },
+ {
+ .type = PT_U32,
+ .id = "iptv_satip_dvbs_freq",
+ .name = N_("SAT>IP DVB-S frequency (kHz)"),
+ .off = offsetof(iptv_mux_t, mm_iptv_satip_dvbs_freq),
+ .desc = N_("For example: 12610500. This frequency is 12610.5Mhz or 12.6105Ghz."),
.opts = PO_ADVANCED
},
{
char *mm_iptv_hdr;
char *mm_iptv_tags;
uint32_t mm_iptv_satip_dvbt_freq;
+ uint32_t mm_iptv_satip_dvbc_freq;
+ uint32_t mm_iptv_satip_dvbs_freq;
uint32_t mm_iptv_rtp_seq;
}
#if ENABLE_IPTV
if (idnode_is_instance(&mn->mn_id, &iptv_network_class)) {
- LIST_FOREACH(mux, &mn->mn_muxes, mm_network_link)
- if (deltaU32(rs->dmc.dmc_fe_freq, ((iptv_mux_t *)mux)->mm_iptv_satip_dvbt_freq) < 2000)
+ LIST_FOREACH(mux, &mn->mn_muxes, mm_network_link) {
+ if (rs->dmc.dmc_fe_type == DVB_TYPE_T &&
+ deltaU32(rs->dmc.dmc_fe_freq, ((iptv_mux_t *)mux)->mm_iptv_satip_dvbt_freq) < 2000)
break;
+ if (rs->dmc.dmc_fe_type == DVB_TYPE_C &&
+ deltaU32(rs->dmc.dmc_fe_freq, ((iptv_mux_t *)mux)->mm_iptv_satip_dvbc_freq) < 2000)
+ break;
+ if (rs->dmc.dmc_fe_type == DVB_TYPE_S &&
+ deltaU32(rs->dmc.dmc_fe_freq, ((iptv_mux_t *)mux)->mm_iptv_satip_dvbs_freq) < 2000)
+ break;
+ }
if (mux) {
dmc = rs->dmc;
rs->perm_lock = 1;
#if ENABLE_IPTV
else if (idnode_is_instance(&mn->mn_id, &iptv_network_class)) {
mpegts_mux_t *mm;
- LIST_FOREACH(mm, &mn->mn_muxes, mm_network_link)
+ LIST_FOREACH(mm, &mn->mn_muxes, mm_network_link) {
if (((iptv_mux_t *)mm)->mm_iptv_satip_dvbt_freq) {
dvbt++;
- break;
}
+ if (((iptv_mux_t *)mm)->mm_iptv_satip_dvbc_freq) {
+ dvbc++;
+ }
+ if (((iptv_mux_t *)mm)->mm_iptv_satip_dvbs_freq) {
+ dvbs++;
+ }
+ }
}
#endif
}
+ // The SAT>IP specification only supports 1-9 tuners (1 digit)!
+ if (dvbt > 9) dvbt = 9;
+ if (dvbc > 9) dvbc = 9;
+ if (dvbs > 9) dvbs = 9;
+ if (atsc > 9) atsc = 9;
for (p = xtab; p->id; p++) {
i = *p->cptr;
if (i > 0) {