socket_set_dscp(rtp->fd_rtcp, dscp, NULL, 0);
if (perm_lock) {
+ int tmp = ((satip_server_conf.satip_iptv_sig_level * 0xffff) + 0x8000) / 245;
rtp->sig.signal_scale = SIGNAL_STATUS_SCALE_RELATIVE;
- rtp->sig.signal = 0xa000;
+ rtp->sig.signal = MINMAX(tmp, 0, 0xffff);
rtp->sig.snr_scale = SIGNAL_STATUS_SCALE_RELATIVE;
- rtp->sig.snr = 28000;
+ rtp->sig.snr = MAX(0xffff, (rtp->sig.signal * 3) / 2);
}
tvhtrace(LS_SATIPS, "rtp queue %p", rtp);
.idnode.in_class = &satip_server_class,
.satip_descramble = 1,
.satip_weight = 100,
- .satip_allow_remote_weight = 1
+ .satip_allow_remote_weight = 1,
+ .satip_iptv_sig_level = 220,
};
static void satip_server_class_changed(idnode_t *self)
.opts = PO_EXPERT,
.group = 1,
},
+ {
+ .type = PT_U32,
+ .id = "satip_iptv_sig_level",
+ .name = N_("IPTV signal level"),
+ .desc = N_("Signal level for IPTV sources (0-240)."),
+ .off = offsetof(struct satip_server_conf, satip_iptv_sig_level),
+ .opts = PO_EXPERT,
+ .group = 1,
+ .def.i = 220,
+ },
{
.type = PT_INT,
.id = "satip_dvbs",