mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-09-02 18:31:22 +02:00
zapit/src/scannit.cpp: fix channel id for lcn, add GetNetworkName()
This commit is contained in:
@@ -45,6 +45,7 @@ class CNit : public OpenThreads::Thread
|
|||||||
freq_id_t freq_id;
|
freq_id_t freq_id;
|
||||||
unsigned short nid;
|
unsigned short nid;
|
||||||
channel_number_map_t logical_map;
|
channel_number_map_t logical_map;
|
||||||
|
std::string networkName;
|
||||||
|
|
||||||
NetworkInformationSectionList sections;
|
NetworkInformationSectionList sections;
|
||||||
|
|
||||||
@@ -62,6 +63,7 @@ class CNit : public OpenThreads::Thread
|
|||||||
bool Stop();
|
bool Stop();
|
||||||
bool Parse();
|
bool Parse();
|
||||||
channel_number_map_t & getLogicalMap() { return logical_map; };
|
channel_number_map_t & getLogicalMap() { return logical_map; };
|
||||||
|
std::string GetNetworkName() { return networkName; }
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -179,9 +179,9 @@ bool CNit::Parse()
|
|||||||
switch(d->getTag()) {
|
switch(d->getTag()) {
|
||||||
case NETWORK_NAME_DESCRIPTOR:
|
case NETWORK_NAME_DESCRIPTOR:
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_NIT
|
|
||||||
NetworkNameDescriptor * nd = (NetworkNameDescriptor *) d;
|
NetworkNameDescriptor * nd = (NetworkNameDescriptor *) d;
|
||||||
std::string networkName = stringDVBUTF8(nd->getNetworkName());
|
networkName = stringDVBUTF8(nd->getNetworkName());
|
||||||
|
#ifdef DEBUG_NIT
|
||||||
printf("NIT: network name [%s]\n", networkName.c_str());
|
printf("NIT: network name [%s]\n", networkName.c_str());
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -256,6 +256,7 @@ bool CNit::Parse()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case LOGICAL_CHANNEL_DESCRIPTOR:
|
case LOGICAL_CHANNEL_DESCRIPTOR:
|
||||||
|
if(pdsd == 0x00000028)
|
||||||
ParseLogicalChannels((LogicalChannelDescriptor *) d, tsinfo);
|
ParseLogicalChannels((LogicalChannelDescriptor *) d, tsinfo);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -351,9 +352,8 @@ bool CNit::ParseServiceList(ServiceListDescriptor * sd, TransportStreamInfo * ts
|
|||||||
ServiceListItemConstIterator it;
|
ServiceListItemConstIterator it;
|
||||||
for (it = slist->begin(); it != slist->end(); ++it) {
|
for (it = slist->begin(); it != slist->end(); ++it) {
|
||||||
ServiceListItem * s = *it;
|
ServiceListItem * s = *it;
|
||||||
/* FIXME dont use freq_id / satellitePosition ? */
|
t_channel_id channel_id = CZapitChannel::makeChannelId(0, 0,
|
||||||
t_channel_id channel_id = CZapitChannel::makeChannelId(satellitePosition,
|
tsinfo->getTransportStreamId(), tsinfo->getOriginalNetworkId(), s->getServiceId());
|
||||||
freq_id, tsinfo->getTransportStreamId(), tsinfo->getOriginalNetworkId(), s->getServiceId());
|
|
||||||
CServiceScan::getInstance()->AddServiceType(channel_id, s->getServiceType());
|
CServiceScan::getInstance()->AddServiceType(channel_id, s->getServiceType());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -369,14 +369,14 @@ bool CNit::ParseLogicalChannels(LogicalChannelDescriptor * ld, TransportStreamIn
|
|||||||
for (it = clist.begin(); it != clist.end(); ++it) {
|
for (it = clist.begin(); it != clist.end(); ++it) {
|
||||||
t_service_id service_id = (*it)->getServiceId();
|
t_service_id service_id = (*it)->getServiceId();
|
||||||
int lcn = (*it)->getLogicalChannelNumber();
|
int lcn = (*it)->getLogicalChannelNumber();
|
||||||
/* FIXME dont use freq_id / satellitePosition ? */
|
t_channel_id channel_id = CZapitChannel::makeChannelId(0, 0,
|
||||||
t_channel_id channel_id = CZapitChannel::makeChannelId(satellitePosition,
|
transport_stream_id, original_network_id, service_id);
|
||||||
freq_id, transport_stream_id, original_network_id, service_id);
|
int visible = (*it)->getVisibleServiceFlag();
|
||||||
/* (*it)->getVisibleServiceFlag(); */
|
|
||||||
logical_map[channel_id] = lcn;
|
|
||||||
#ifdef DEBUG_LCN
|
#ifdef DEBUG_LCN
|
||||||
printf("NIT: logical channel tsid %04x onid %04x %llx -> %d\n", transport_stream_id, original_network_id, channel_id, lcn);
|
printf("NIT: logical channel tsid %04x onid %04x %012llx -> %d (%d)\n", transport_stream_id, original_network_id, channel_id, lcn, visible);
|
||||||
#endif
|
#endif
|
||||||
|
if (visible && lcn)
|
||||||
|
logical_map[channel_id] = lcn;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user