dvb: some minor corrections to nit scanning.
This commit is contained in:
parent
8f49909e9e
commit
920a0a802c
2 changed files with 16 additions and 9 deletions
|
@ -206,7 +206,7 @@ dvb_mux_create(th_dvb_adapter_t *tda, const struct dvb_mux_conf *dmc,
|
|||
tdmi->tdmi_network_id = onid;
|
||||
save = 1;
|
||||
}
|
||||
if(network && strcmp(tdmi->tdmi_network ?: "", network)) {
|
||||
if(network && *network && strcmp(tdmi->tdmi_network ?: "", network)) {
|
||||
free(tdmi->tdmi_network);
|
||||
tdmi->tdmi_network = strdup(network);
|
||||
save = 1;
|
||||
|
@ -848,6 +848,9 @@ dvb_mux_set_networkname(th_dvb_mux_instance_t *tdmi, const char *networkname)
|
|||
{
|
||||
htsmsg_t *m;
|
||||
|
||||
if (!networkname || !*networkname)
|
||||
return;
|
||||
|
||||
free(tdmi->tdmi_network);
|
||||
tdmi->tdmi_network = strdup(networkname);
|
||||
dvb_mux_save(tdmi);
|
||||
|
|
|
@ -878,6 +878,11 @@ dvb_nit_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
|
|||
uint16_t network_id = (ptr[0] << 8) | ptr[1];
|
||||
netname[0] = '\0';
|
||||
|
||||
TRACE("nit", "tableid 0x%02x", tableid);
|
||||
#if TDT_TRACE
|
||||
hexdump("nit", ptr, len);
|
||||
#endif
|
||||
|
||||
/* Check NID */
|
||||
if(tdmi->tdmi_adapter->tda_nitoid &&
|
||||
tdmi->tdmi_adapter->tda_nitoid != network_id)
|
||||
|
@ -898,10 +903,14 @@ dvb_nit_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
|
|||
dtag = ptr[0];
|
||||
dlen = ptr[1];
|
||||
|
||||
TRACE("nit", "dtag %02X dlen %d", dtag, dlen);
|
||||
|
||||
switch(dtag) {
|
||||
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'))
|
||||
dvb_mux_set_networkname(tdmi, netname);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -934,6 +943,8 @@ dvb_nit_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
|
|||
dtag = ptr[0];
|
||||
dlen = ptr[1];
|
||||
|
||||
TRACE("nit", " dtag %02X dlen %d", dtag, dlen);
|
||||
|
||||
switch(dtag) {
|
||||
case DVB_DESC_SAT:
|
||||
if(tdmi->tdmi_adapter->tda_type == FE_QPSK)
|
||||
|
@ -1133,14 +1144,7 @@ dvb_table_add_default_dvb(th_dvb_mux_instance_t *tdmi)
|
|||
{
|
||||
/* Network Information Table */
|
||||
|
||||
int table;
|
||||
|
||||
if(tdmi->tdmi_adapter->tda_nitoid) {
|
||||
table = 0x41;
|
||||
} else {
|
||||
table = 0x40;
|
||||
}
|
||||
tdt_add(tdmi, table, 0xff, dvb_nit_callback, NULL, "nit",
|
||||
tdt_add(tdmi, 0, 0, dvb_nit_callback, NULL, "nit",
|
||||
TDT_QUICKREQ | TDT_CRC, 0x10);
|
||||
|
||||
/* Service Descriptor Table and Bouqeut Allocation Table */
|
||||
|
|
Loading…
Add table
Reference in a new issue