]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
service check: text cleanups, add help text, re-enable service when they're broadcast...
authorJaroslav Kysela <perex@perex.cz>
Tue, 6 Jan 2015 09:33:19 +0000 (10:33 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 6 Jan 2015 09:33:19 +0000 (10:33 +0100)
docs/html/config_services.html
src/input/mpegts/dvb_psi.c
src/service.c

index d48355cc44997cbc59d9c9a1fd9b93235d7093cb..6814f75772e6a4cedf0a8f1cffe87b35abf83c5a 100644 (file)
                <dt>Enabled
                <dd>Whether or not this service is available for use
 
+               <dt>Automatic Checking
+               <dd>Check for the service presence. If service is no longer broadcasted,
+                    this field will become as "Missing In PAT/SDT". The
+                    check can be also disabled for given service using this
+                    column.
+
                <dt>Channel
                <dd>The channel to which the service is mapped
 
index b3b8d48a7ffae4207197d6fec69b9bc2baaa91d2..f3a936ea1ae1890de1691c93ad9c125f9649a2b8 100644 (file)
@@ -1052,6 +1052,10 @@ dvb_pat_callback
       tvhdebug("pat", "  sid %04X (%d) on pid %04X (%d)", sid, sid, pid, pid);
       int save = 0;
       if ((s = mpegts_service_find(mm, sid, pid, 1, &save))) {
+        if (!s->s_enabled && s->s_auto == SERVICE_AUTO_PAT_MISSING) {
+          tvhinfo("mpegts", "enabling service %s (found in PAT)", s->s_nicename);
+          s->s_enabled = 1;
+        }
         s->s_dvb_check_seen = dispatch_clock;
         mpegts_table_add(mm, DVB_PMT_BASE, DVB_PMT_MASK, dvb_pmt_callback,
                          NULL, "pmt", MT_CRC | MT_QUICKREQ | MT_SCANSUBS,
@@ -1588,8 +1592,13 @@ dvb_sdt_callback
     s       = mpegts_service_find(mm, service_id, 0, 1, &save);
     charset = dvb_charset_find(mn, mm, s);
 
-    if (s)
+    if (s) {
+      if (!s->s_enabled && s->s_auto == SERVICE_AUTO_PAT_MISSING) {
+        tvhinfo("mpegts", "enabling service %s (found in SDT)", s->s_nicename);
+        s->s_enabled = 1;
+      }
       s->s_dvb_check_seen = dispatch_clock;
+    }
 
     /* Descriptor loop */
     DVB_DESC_EACH(lptr, llen, dtag, dlen, dptr) {
index 5972d9832d80f5b9210a5be23dc82bc10562cc6f..06107772ee0ccd1ebee394d87269cd3bdf6c7a8d 100644 (file)
@@ -181,9 +181,9 @@ static htsmsg_t *
 service_class_auto_list ( void *o )
 {
   static const struct strtab tab[] = {
-    { "",                   0 },
-    { "No Auto (Disabled)", 1 },
-    { "Missing In PAT/SDT", 2 }
+    { "Auto Check Enabled",  0 },
+    { "Auto Check Disabled", 1 },
+    { "Missing In PAT/SDT",  2 }
   };
   return strtab2htsmsg(tab);
 }