mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 07:23:09 +02:00
scansdt: more checks if the same TP
This commit is contained in:
@@ -103,7 +103,7 @@ bool CSdt::PMTPing(unsigned short pid, unsigned short sid)
|
|||||||
}
|
}
|
||||||
#ifdef DEBUG_SDT
|
#ifdef DEBUG_SDT
|
||||||
if(!ret)
|
if(!ret)
|
||||||
printf("Ping: PMT-pid 0%x %s\n", pid,badservice ? "not supportet stream type":"failed");
|
printf("Ping: PMT-pid 0%x %s\n", pid,badservice ? "not supported stream type":"failed");
|
||||||
#endif
|
#endif
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -232,6 +232,11 @@ bool CSdt::Parse(t_transport_stream_id &tsid, t_original_network_id &onid)
|
|||||||
ParseServiceDescriptor(NULL, NULL, patit->first);
|
ParseServiceDescriptor(NULL, NULL, patit->first);
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
|
if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid()){
|
||||||
|
ret = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@@ -240,6 +245,7 @@ bool CSdt::Parse(t_transport_stream_id &tsid, t_original_network_id &onid)
|
|||||||
if(!sdt_read)
|
if(!sdt_read)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
bool feiled = false;
|
||||||
bool updated = false;
|
bool updated = false;
|
||||||
for (it = sections.begin(); it != sections.end(); ++it) {
|
for (it = sections.begin(); it != sections.end(); ++it) {
|
||||||
ServiceDescriptionSection * sdt = *it;
|
ServiceDescriptionSection * sdt = *it;
|
||||||
@@ -309,14 +315,18 @@ bool CSdt::Parse(t_transport_stream_id &tsid, t_original_network_id &onid)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid())
|
if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid()){
|
||||||
|
feiled = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if(pat_tsid == transport_stream_id){
|
if(pat_tsid == transport_stream_id){
|
||||||
for (std::map<int,int>::iterator patit=sidpmt.begin(); patit!=sidpmt.end(); ++patit){
|
for (std::map<int,int>::iterator patit=sidpmt.begin(); patit!=sidpmt.end(); ++patit){
|
||||||
if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid())
|
if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid()){
|
||||||
|
feiled = true;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
if(patit->first != 0 && patit->second != 0){
|
if(patit->first != 0 && patit->second != 0){
|
||||||
if(PMTPing(patit->second,patit->first)){
|
if(PMTPing(patit->second,patit->first)){
|
||||||
ParseServiceDescriptor(NULL, NULL, patit->first);
|
ParseServiceDescriptor(NULL, NULL, patit->first);
|
||||||
@@ -328,6 +338,9 @@ bool CSdt::Parse(t_transport_stream_id &tsid, t_original_network_id &onid)
|
|||||||
|
|
||||||
tsid = transport_stream_id;
|
tsid = transport_stream_id;
|
||||||
onid = original_network_id;
|
onid = original_network_id;
|
||||||
|
if(feiled)
|
||||||
|
return false;
|
||||||
|
|
||||||
if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid())
|
if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user