diff --git a/docs/html/config_tvadapters.html b/docs/html/config_tvadapters.html
index 939a3baa..e5426b19 100644
--- a/docs/html/config_tvadapters.html
+++ b/docs/html/config_tvadapters.html
@@ -57,6 +57,10 @@
PIDs in setup
Enable, if the SAT>IP box requires pids=0 parameter in the SETUP RTSP command.
+ Force pilot for DVB-S2
+ Enable, if the SAT>IP box requiest plts=on parameter in the SETUP RTSP
+ command for DVB-S2 muxes.
+
UDP RTP Port Number (2 ports)
Force the local UDP Port number here. The number should be even (RTP port).
The next odd number (+1) will be used as the RTCP port.
diff --git a/src/input/mpegts/satip/satip.c b/src/input/mpegts/satip/satip.c
index f87dca4c..b3126be4 100644
--- a/src/input/mpegts/satip/satip.c
+++ b/src/input/mpegts/satip/satip.c
@@ -112,6 +112,13 @@ const idclass_t satip_device_class =
.opts = PO_ADVANCED,
.off = offsetof(satip_device_t, sd_pids0),
},
+ {
+ .type = PT_BOOL,
+ .id = "piloton",
+ .name = "Force pilot for DVB-S2",
+ .opts = PO_ADVANCED,
+ .off = offsetof(satip_device_t, sd_pilot_on),
+ },
{
.type = PT_STR,
.id = "bindaddr",
@@ -280,6 +287,9 @@ satip_device_hack( satip_device_t *sd )
} else if (strstr(sd->sd_info.location, ":8888/octonet.xml")) {
/* OctopusNet requires pids in the SETUP RTSP command */
sd->sd_pids0 = 1;
+ } else if (strstr(sd->sd_info.manufacturer, "Triax") &&
+ strstr(sd->sd_info.modelname, "TSS400")) {
+ sd->sd_pilot_on = 1;
}
}
diff --git a/src/input/mpegts/satip/satip_frontend.c b/src/input/mpegts/satip/satip_frontend.c
index d758abab..224b2341 100644
--- a/src/input/mpegts/satip/satip_frontend.c
+++ b/src/input/mpegts/satip/satip_frontend.c
@@ -989,6 +989,8 @@ satip_frontend_input_thread ( void *aux )
position = lfe_master->sf_position;
if (lfe->sf_device->sd_pids0)
rtsp_flags |= SATIP_SETUP_PIDS0;
+ if (lfe->sf_device->sd_pilot_on)
+ rtsp_flags |= SATIP_SETUP_PILOT_ON;
r = satip_rtsp_setup(rtsp,
position, lfe->sf_number,
lfe->sf_rtp_port, &lm->lm_tuning,
diff --git a/src/input/mpegts/satip/satip_private.h b/src/input/mpegts/satip/satip_private.h
index 93782b55..563d0fb4 100644
--- a/src/input/mpegts/satip/satip_private.h
+++ b/src/input/mpegts/satip/satip_private.h
@@ -80,6 +80,7 @@ struct satip_device
int sd_pids_deladd;
int sd_sig_scale;
int sd_pids0;
+ int sd_pilot_on;
pthread_mutex_t sd_tune_mutex;
};
@@ -208,14 +209,15 @@ int satip_satconf_get_position
* RTSP part
*/
-#define SATIP_SETUP_PLAY (1<<0)
-#define SATIP_SETUP_PIDS0 (1<<1)
+#define SATIP_SETUP_PLAY (1<<0)
+#define SATIP_SETUP_PIDS0 (1<<1)
+#define SATIP_SETUP_PILOT_ON (1<<2)
int
satip_rtsp_setup( http_client_t *hc,
int src, int fe, int udp_port,
const dvb_mux_conf_t *dmc,
- int pids0 );
+ int flags );
int
satip_rtsp_play( http_client_t *hc, const char *pids,
diff --git a/src/input/mpegts/satip/satip_rtsp.c b/src/input/mpegts/satip/satip_rtsp.c
index a23fb609..ad3aa1cd 100644
--- a/src/input/mpegts/satip/satip_rtsp.c
+++ b/src/input/mpegts/satip/satip_rtsp.c
@@ -172,8 +172,12 @@ satip_rtsp_setup( http_client_t *hc, int src, int fe,
dmc->dmc_fe_rolloff != DVB_ROLLOFF_AUTO)
ADD(dmc_fe_rolloff, ro, "0.35");
if (dmc->dmc_fe_pilot != DVB_PILOT_NONE &&
- dmc->dmc_fe_pilot != DVB_PILOT_AUTO)
+ dmc->dmc_fe_pilot != DVB_PILOT_AUTO) {
ADD(dmc_fe_pilot, plts, "auto");
+ } else if ((flags & SATIP_SETUP_PILOT_ON) != 0 &&
+ dmc->dmc_fe_delsys == DVB_SYS_DVBS2) {
+ strcat(buf, "&plts=on");
+ }
} else if (dmc->dmc_fe_delsys == DVB_SYS_DVBC_ANNEX_A ||
dmc->dmc_fe_delsys == DVB_SYS_DVBC_ANNEX_B ||
dmc->dmc_fe_delsys == DVB_SYS_DVBC_ANNEX_C) {