mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-09-02 10:21:10 +02:00
pmt: use camap to set scrambled flag also at scan time
This commit is contained in:
@@ -366,7 +366,7 @@ bool CPmt::parse_pmt(CZapitChannel * const channel)
|
|||||||
/* length of elementary stream description */
|
/* length of elementary stream description */
|
||||||
unsigned short ES_info_length;
|
unsigned short ES_info_length;
|
||||||
|
|
||||||
printf("[zapit] parsing pmt pid 0x%X\n", channel->getPmtPid());
|
printf("[zapit] parsing pmt pid 0x%X (%s)\n", channel->getPmtPid(), channel->getName().c_str());
|
||||||
|
|
||||||
if (channel->getPmtPid() == 0)
|
if (channel->getPmtPid() == 0)
|
||||||
return false;
|
return false;
|
||||||
@@ -406,18 +406,25 @@ bool CPmt::parse_pmt(CZapitChannel * const channel)
|
|||||||
for (i = 12 + program_info_length; i < section_length - 1; i += ES_info_length + 5)
|
for (i = 12 + program_info_length; i < section_length - 1; i += ES_info_length + 5)
|
||||||
ES_info_length = ParseES(buffer + i, channel, caPmt);
|
ES_info_length = ParseES(buffer + i, channel, caPmt);
|
||||||
|
|
||||||
|
casys_map_t camap;
|
||||||
|
MakeCAMap(camap);
|
||||||
|
channel->scrambled = !camap.empty();
|
||||||
|
|
||||||
if(CServiceScan::getInstance()->Scanning()) {
|
if(CServiceScan::getInstance()->Scanning()) {
|
||||||
channel->setCaPmt(NULL);
|
channel->setCaPmt(NULL);
|
||||||
channel->setRawPmt(NULL);
|
channel->setRawPmt(NULL);
|
||||||
delete caPmt;
|
delete caPmt;
|
||||||
} else {
|
} else {
|
||||||
|
#if 0
|
||||||
MakeCAMap(channel->camap);
|
MakeCAMap(channel->camap);
|
||||||
|
channel->scrambled = !channel->camap.empty();
|
||||||
|
#endif
|
||||||
|
channel->camap = camap;
|
||||||
channel->setCaPmt(caPmt);
|
channel->setCaPmt(caPmt);
|
||||||
int pmtlen= ((buffer[1]&0xf)<<8) + buffer[2] + 3;
|
int pmtlen= ((buffer[1]&0xf)<<8) + buffer[2] + 3;
|
||||||
unsigned char * p = new unsigned char[pmtlen];
|
unsigned char * p = new unsigned char[pmtlen];
|
||||||
memmove(p, buffer, pmtlen);
|
memmove(p, buffer, pmtlen);
|
||||||
channel->setRawPmt(p, pmtlen);
|
channel->setRawPmt(p, pmtlen);
|
||||||
channel->scrambled = !channel->camap.empty();
|
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
//Quick&Dirty Hack to support Premiere's EPG not only on the portal but on the subchannels as well
|
//Quick&Dirty Hack to support Premiere's EPG not only on the portal but on the subchannels as well
|
||||||
@@ -440,6 +447,7 @@ bool CPmt::haveCaSys(int pmtpid, int service_id )
|
|||||||
|
|
||||||
casys_map_t camap;
|
casys_map_t camap;
|
||||||
MakeCAMap(camap);
|
MakeCAMap(camap);
|
||||||
|
printf("CPmt::haveCaSys: sid %04x camap.size %d\n", service_id, camap.size());
|
||||||
return !camap.empty();
|
return !camap.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user