]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
tdt: ignore other network in NIT this causes havoc with DVB-S networks.
authorAdam Sutton <dev@adamsutton.me.uk>
Tue, 16 Apr 2013 20:11:11 +0000 (21:11 +0100)
committerAdam Sutton <dev@adamsutton.me.uk>
Thu, 18 Apr 2013 10:54:39 +0000 (11:54 +0100)
This is particularly true where the other network is only available
via another orbital position (we could check for this) but it also
causes problems with other transmission types so I think we'll just
ignore for now.

src/dvb/dvb_tables.c

index 11d6ce08c696f6a8145582c2e5c2bb2781ae162e..d13da580aed4cd1298bb425f7b3eb3b1b354e227 100644 (file)
@@ -875,6 +875,9 @@ dvb_nit_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
   tvhtrace("nit", "tableid 0x%02x", tableid);
   tvhlog_hexdump("nit", ptr, len);
 
+  /* Ignore other network */
+  if(tableid != 0x40) return -1;
+
   /* Check NID */
   if(tdmi->tdmi_adapter->tda_nitoid &&
      tdmi->tdmi_adapter->tda_nitoid != network_id)
@@ -901,7 +904,7 @@ dvb_nit_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
       case DVB_DESC_NETWORK_NAME:
         if(dvb_get_string(netname, sizeof(netname), ptr+2, dlen, NULL, NULL))
           return -1;
-        if(tableid == 0x40 && (!tdmi->tdmi_network || *tdmi->tdmi_network == '\0'))
+        if(!tdmi->tdmi_network || *tdmi->tdmi_network == '\0')
           dvb_mux_set_networkname(tdmi, netname);
         break;
     }