SAT>IP: Improve DVB-S2 tuning for Triax TSS400 (plts=on)

This commit is contained in:
Jaroslav Kysela 2014-05-30 13:09:57 +02:00
parent 3f6326fc3f
commit 0ebca1b3db
5 changed files with 26 additions and 4 deletions

View file

@ -57,6 +57,10 @@
<dt>PIDs in setup</dt>
<dd>Enable, if the SAT>IP box requires pids=0 parameter in the SETUP RTSP command.</dd>
<dt>Force pilot for DVB-S2</dt>
<dd>Enable, if the SAT>IP box requiest plts=on parameter in the SETUP RTSP
command for DVB-S2 muxes.</dd>
<dt>UDP RTP Port Number (2 ports)</dt>
<dd>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.</dd>

View file

@ -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;
}
}

View file

@ -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,

View file

@ -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,

View file

@ -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) {