]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
SAT>IP: Improve DVB-S2 tuning for Triax TSS400 (plts=on)
authorJaroslav Kysela <perex@perex.cz>
Fri, 30 May 2014 11:09:57 +0000 (13:09 +0200)
committerJaroslav Kysela <perex@perex.cz>
Fri, 30 May 2014 11:13:55 +0000 (13:13 +0200)
docs/html/config_tvadapters.html
src/input/mpegts/satip/satip.c
src/input/mpegts/satip/satip_frontend.c
src/input/mpegts/satip/satip_private.h
src/input/mpegts/satip/satip_rtsp.c

index 939a3baa523790426f074d083824cb8be522dece..e5426b19436441c75451f94a5dee5dd9f1d5c5b7 100644 (file)
   <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>
index f87dca4cbd9756feda722fe685a0a3e6c0782d9b..b3126be4894ac122bab9926a00195686da2f3520 100644 (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;
   }
 }
 
index d758abab735a9971c56a08d9e3d3f32c7925dacb..224b2341a0b1512bfe79dda6a914bbb7bdd9e1a9 100644 (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,
index 93782b55bbbfb2cf9122c55ed8453ec731a5edd9..563d0fb4b9e092edca873e9156890da7764796ce 100644 (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,
index a23fb60928c66338f869146268e2003493c0e85f..ad3aa1cdad4b18f14693695d5aa25fe53a614a4c 100644 (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) {