sdt: changes in debug

Origin commit data
------------------
Commit: 5b184dfcd9
Author: [CST] Focus <focus.cst@gmail.com>
Date: 2012-01-26 (Thu, 26 Jan 2012)
This commit is contained in:
[CST] Focus
2012-01-26 19:18:07 +04:00
parent b0235fde7f
commit 084841c421

View File

@@ -25,7 +25,7 @@
#include <zapit/descriptors.h> #include <zapit/descriptors.h>
#include <zapit/debug.h> #include <zapit/debug.h>
#include <zapit/scansdt.h> #include <zapit/scansdt.h>
#include <zapit/pmt.h> #include <zapit/scanpmt.h>
#include <zapit/pat.h> #include <zapit/pat.h>
#include <zapit/types.h> #include <zapit/types.h>
@@ -42,6 +42,8 @@ extern CZapitClient::scanType scanType; // FIXME
int scan_fta_flag; // FIXME int scan_fta_flag; // FIXME
#define DEBUG_SDT #define DEBUG_SDT
//#define DEBUG_SDT_UNUSED
//#define DEBUG_SDT_SERVICE
CSdt::CSdt(t_satellite_position spos, freq_id_t frq, bool curr, int dnum) CSdt::CSdt(t_satellite_position spos, freq_id_t frq, bool curr, int dnum)
{ {
@@ -102,7 +104,7 @@ bool CSdt::Read()
} }
do { do {
_repeat: _repeat:
if(current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid()) if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid())
break; break;
if (dmx->Read(buffer, SDT_SECTION_SIZE) < 0) { if (dmx->Read(buffer, SDT_SECTION_SIZE) < 0) {
@@ -137,7 +139,7 @@ _repeat:
goto _repeat; goto _repeat;
} }
delete dmx; delete dmx;
if(current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid()) if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid())
return false; return false;
return true; return true;
} }
@@ -181,7 +183,7 @@ bool CSdt::Parse(t_transport_stream_id &tsid, t_original_network_id &onid)
break; break;
case CA_IDENTIFIER_DESCRIPTOR: case CA_IDENTIFIER_DESCRIPTOR:
{ {
#ifdef DEBUG_SDT #if 0 //ifdef DEBUG_SDT
CaIdentifierDescriptor * cad = (CaIdentifierDescriptor *) d; CaIdentifierDescriptor * cad = (CaIdentifierDescriptor *) d;
const CaSystemIdList * calist = cad->getCaSystemIds(); const CaSystemIdList * calist = cad->getCaSystemIds();
printf("CASYS: "); printf("CASYS: ");
@@ -193,7 +195,7 @@ bool CSdt::Parse(t_transport_stream_id &tsid, t_original_network_id &onid)
break; break;
default: default:
{ {
#ifdef DEBUG_SDT #ifdef DEBUG_SDT_UNUSED
printf("SDT: sid %x descriptor %02x: ", service->getServiceId(), d->getTag()); printf("SDT: sid %x descriptor %02x: ", service->getServiceId(), d->getTag());
uint8_t len = 2+d->getLength(); uint8_t len = 2+d->getLength();
uint8_t buf[len]; uint8_t buf[len];
@@ -206,13 +208,13 @@ bool CSdt::Parse(t_transport_stream_id &tsid, t_original_network_id &onid)
break; break;
} }
} }
if(current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid()) if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid())
break; break;
} }
} }
tsid = transport_stream_id; tsid = transport_stream_id;
onid = original_network_id; onid = original_network_id;
if(current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid()) if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid())
return false; return false;
return true; return true;
@@ -242,9 +244,9 @@ bool CSdt::ParseServiceDescriptor(ServiceDescription * service, ServiceDescripto
std::string providerName = stringDVBUTF8(sd->getServiceProviderName(), 0, tsidonid); std::string providerName = stringDVBUTF8(sd->getServiceProviderName(), 0, tsidonid);
std::string serviceName = stringDVBUTF8(sd->getServiceName(), 0, tsidonid); std::string serviceName = stringDVBUTF8(sd->getServiceName(), 0, tsidonid);
#ifdef DEBUG_SDT #ifdef DEBUG_SDT_SERVICE
printf("SDT: sid %04x type %x provider [%s] service [%s]\n", service_id, sd->getServiceType(), printf("SDT: sid %04x type %x provider [%s] service [%s] scrambled %d\n", service_id, sd->getServiceType(),
providerName.c_str(), serviceName.c_str()); providerName.c_str(), serviceName.c_str(), free_ca);
#endif #endif
if (!CheckScanType(service_type)) if (!CheckScanType(service_type))
return false; return false;
@@ -273,7 +275,20 @@ bool CSdt::ParseServiceDescriptor(ServiceDescription * service, ServiceDescripto
CPmt pmt; CPmt pmt;
if(pmt.haveCaSys(channel->getPmtPid(), channel->getServiceId())) if(pmt.haveCaSys(channel->getPmtPid(), channel->getServiceId()))
channel->scrambled = true; channel->scrambled = true;
else
channel->scrambled = false;
#ifdef DEBUG_SDT_SERVICE
if(free_ca != channel->scrambled)
printf("SDT: service update: [%s] free_ca %d scrambled %d\n",
serviceName.c_str(), free_ca, channel->scrambled);
#endif
} }
#if 0 //FIXME updates scrambled flag without reloading, but prevent changes found if only scrambled different
bool scrambled = channel->scrambled;
channel = CServiceManager::getInstance()->FindChannel(channel_id);
if(channel)
channel->scrambled = scrambled;
#endif
return true; return true;
} }
@@ -307,7 +322,12 @@ bool CSdt::ParseServiceDescriptor(ServiceDescription * service, ServiceDescripto
if (CZapit::getInstance()->scanPids()) { if (CZapit::getInstance()->scanPids()) {
if(pat.Parse(channel)) { if(pat.Parse(channel)) {
CPmt pmt; CPmt pmt;
pmt.parse_pmt(channel); pmt.Parse(channel);
#ifdef DEBUG_SDT_SERVICE
if(free_ca != channel->scrambled)
printf("SDT: provider [%s] service [%s] free_ca %d scrambled %d camap.size %d\n", providerName.c_str(),
serviceName.c_str(), free_ca, channel->scrambled, channel->camap.size());
#endif
} }
} }
if(service_type == ST_DIGITAL_TELEVISION_SERVICE && !channel->scrambled) { if(service_type == ST_DIGITAL_TELEVISION_SERVICE && !channel->scrambled) {
@@ -327,7 +347,6 @@ CZapitChannel * CSdt::CheckChannelId(t_service_id service_id)
CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(channel_id); CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(channel_id);
if(channel) if(channel)
return channel; return channel;
freq++;
} }
return NULL; return NULL;
} }