.opts = PO_ADVANCED,
.off = offsetof(satip_device_t, sd_pids_deladd),
},
+ {
+ .type = PT_BOOL,
+ .id = "fe",
+ .name = N_("FE supported"),
+ .desc = N_("Enable if the SAT>IP box supports the frontend "
+ "identifier."),
+ .opts = PO_ADVANCED,
+ .off = offsetof(satip_device_t, sd_fe),
+ },
{
.type = PT_BOOL,
.id = "piloton",
sd->sd_fullmux_ok = 0;
sd->sd_pids_deladd = 0;
sd->sd_pids21 = 1;
+ } else if (strstr(sd->sd_info.modelname, "EyeTV Netstream 4C")) {
+ sd->sd_fe = 0;
}
}
sd->sd_pids_len = 127;
sd->sd_pids_max = 32;
sd->sd_pids_deladd = 1;
+ sd->sd_fe = 1;
sd->sd_sig_scale = 240;
sd->sd_dbus_allow = 1;
.opts = PO_ADVANCED,
.off = offsetof(satip_frontend_t, sf_pass_weight),
},
+ {
+ .type = PT_BOOL,
+ .id = "specinv",
+ .name = N_("Pass SPECINV"),
+ .desc = N_("Pass Spectrum inversion."),
+ .opts = PO_ADVANCED,
+ .off = offsetof(satip_frontend_t, sf_specinv),
+ },
{
.type = PT_STR,
.id = "tunerbindaddr",
rtsp_flags |= SATIP_SETUP_PILOT_ON;
if (lfe->sf_device->sd_pids21)
rtsp_flags |= SATIP_SETUP_PIDS21;
+ if (lfe->sf_specinv)
+ rtsp_flags |= SATIP_SETUP_SPECINV;
+ if (lfe->sf_device->sd_fe)
+ rtsp_flags |= SATIP_SETUP_FE;
+
r = -12345678;
pthread_mutex_lock(&lfe->sf_dvr_lock);
if (lfe->sf_req == lfe->sf_req_thread) {
} else if (strstr(sd->sd_info.manufacturer, "AVM Berlin") &&
strstr(sd->sd_info.modelname, "FRITZ!")) {
lfe->sf_play2 = 1;
+ } else if (strstr(sd->sd_info.modelname, "EyeTV Netstream 4C")) {
+ lfe->sf_specinv = 1;
}
}
lfe->sf_netlimit = 1;
lfe->sf_netgroup = 0;
+
/* Callbacks */
lfe->mi_get_weight = satip_frontend_get_weight;
lfe->mi_get_priority = satip_frontend_get_priority;
int sd_pids_max;
int sd_pids_len;
int sd_pids_deladd;
+ int sd_fe;
int sd_sig_scale;
char *sd_tunercfg;
int sd_pids21;
int sf_grace_period;
int sf_teardown_delay;
int sf_pass_weight;
+ int sf_specinv;
int sf_delsys;
char *sf_tuner_bindaddr;
#define SATIP_SETUP_PLAY (1<<1)
#define SATIP_SETUP_PILOT_ON (1<<2)
#define SATIP_SETUP_PIDS21 (1<<3)
+#define SATIP_SETUP_FE (1<<4)
+#define SATIP_SETUP_SPECINV (1<<5)
int
satip_rtsp_setup( http_client_t *hc,
sprintf(buf, "src=%i&", src);
else
buf[0] = '\0';
- sprintf(buf + strlen(buf), "fe=%i", fe);
+
+ if (flags & SATIP_SETUP_FE)
+ sprintf(buf + strlen(buf), "fe=%i", fe);
+
if (dmc->dmc_fe_delsys == DVB_SYS_DVBS ||
dmc->dmc_fe_delsys == DVB_SYS_DVBS2) {
satip_rtsp_add_val("freq", buf, dmc->dmc_fe_freq);
dmc->u.dmc_fe_qam.fec_inner != DVB_FEC_AUTO)
/* note: OctopusNet device does not handle 'fec=auto' */
ADD(u.dmc_fe_qam.fec_inner, fec, "auto");
+
+ // for sat>ip compliance
+ if (flags & SATIP_SETUP_SPECINV)
+ strcat(buf, "&specinv=0");
+
} else if (dmc->dmc_fe_delsys == DVB_SYS_DVBT ||
dmc->dmc_fe_delsys == DVB_SYS_DVBT2) {
satip_rtsp_add_val("freq", buf, dmc->dmc_fe_freq / 1000);