.opts = PO_ADVANCED,
.off = offsetof(satip_device_t, sd_pids_deladd),
},
+ {
+ .type = PT_BOOL,
+ .id = "pids0",
+ .name = "PIDs in setup",
+ .opts = PO_ADVANCED,
+ .off = offsetof(satip_device_t, sd_pids0),
+ },
{
.type = PT_STR,
.id = "addr",
sd->sd_pids_deladd = 0;
tvhwarn("satip", "Detected old Inverto firmware V1.13.0.105 and less");
tvhwarn("satip", "Upgrade to V1.16.0.120 - http://http://www.inverto.tv/support/ - IDL400s");
+ } else if (strstr(sd->sd_info.location, ":8888/octonet.xml")) {
+ /* OctopusNet requires pids in the SETUP RTSP command */
+ sd->sd_pids0 = 1;
}
}
* DVB-T:
* ver=1.1;tuner=<feID>,<level>,<lock>,<quality>,<freq>,<bw>,<msys>,<tmode>,\
* <mtype>,<gi>,<fec>,<plp>,<t2id>,<sm>;pids=<pid0>,...,<pidn>
+ *
+ * DVB-C (OctopusNet):
+ * ver=0.9;tuner=<feID>,<0>,<lock>,<0>,<freq>,<bw>,<msys>,<mtype>;pids=<pid0>,...<pidn>
+ * example:
+ * ver=0.9;tuner=1,0,1,0,362.000,6900,dvbc,256qam;pids=0,1,16,17,18
*/
/* level:
s = (char *)rtcp + 16;
tvhtrace("satip", "Status string: '%s'", s);
status = SIGNAL_NONE;
- if (strncmp(s, "ver=1.0;", 8) == 0) {
+ if (strncmp(s, "ver=0.9;tuner=", 14) == 0) {
+ n = http_tokenize(s + 14, argv, 4, ',');
+ if (n < 4)
+ return;
+ if (atoi(argv[0]) != lfe->sf_number)
+ return;
+ mmi->mmi_stats.signal =
+ (atoi(argv[1]) * 100) / lfe->sf_device->sd_sig_scale;
+ if (atoi(argv[2]) > 0)
+ status = SIGNAL_GOOD;
+ mmi->mmi_stats.snr = atoi(argv[3]);
+ if (status == SIGNAL_GOOD &&
+ mmi->mmi_stats.signal == 0 && mmi->mmi_stats.snr == 0) {
+ /* some values that we're tuned */
+ mmi->mmi_stats.signal = 50;
+ mmi->mmi_stats.snr = 12;
+ }
+ goto ok;
+ } else if (strncmp(s, "ver=1.0;", 8) == 0) {
if ((s = strstr(s + 8, ";tuner=")) == NULL)
return;
s += 7;
r = satip_rtsp_setup(rtsp,
lfe->sf_position, lfe->sf_number,
- lfe->sf_rtp_port, &lm->lm_tuning);
+ lfe->sf_rtp_port, &lm->lm_tuning,
+ lfe->sf_device->sd_pids0);
if (r < 0) {
tvherror("satip", "%s - failed to tune", buf);
return NULL;
int
satip_rtsp_setup( http_client_t *hc, int src, int fe,
- int udp_port, const dvb_mux_conf_t *dmc )
+ int udp_port, const dvb_mux_conf_t *dmc, int pids0 )
{
static tvh2satip_t msys[] = {
{ .t = DVB_SYS_DVBT, "dvbt" },
ADD(dmc_fe_delsys, msys, "dvbc");
ADD(dmc_fe_modulation, mtype, "64qam");
/* missing plp */
- ADD(u.dmc_fe_qpsk.fec_inner, fec, "auto");
+ if (dmc->u.dmc_fe_qam.fec_inner != DVB_FEC_NONE &&
+ 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");
} else {
if (dmc->u.dmc_fe_ofdm.bandwidth != DVB_BANDWIDTH_AUTO &&
dmc->u.dmc_fe_ofdm.bandwidth != DVB_BANDWIDTH_NONE)
dmc->u.dmc_fe_ofdm.guard_interval != DVB_GUARD_INTERVAL_NONE)
ADD(u.dmc_fe_ofdm.guard_interval, gi, "18");
}
+ if (pids0)
+ strcat(buf, "&pids=0");
tvhtrace("satip", "setup params - %s", buf);
if (hc->hc_rtsp_stream_id >= 0)
snprintf(stream = _stream, sizeof(_stream), "/stream=%li",