-add to scanSDT scrambled update

git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@850 e54a6e83-5905-42d5-8d5c-058d10e6a962
This commit is contained in:
satbaby
2010-10-21 18:13:07 +00:00
parent 3bf282f8d4
commit 1e1f547497
5 changed files with 25 additions and 23 deletions

View File

@@ -61,7 +61,7 @@ void VBI_data_descriptor(const unsigned char * const buffer);
void VBI_teletext_descriptor(const unsigned char * const buffer);
void bouquet_name_descriptor(const unsigned char * const buffer);
void service_descriptor(const unsigned char * const buffer, const t_service_id service_id, const t_transport_stream_id transport_stream_id, const t_original_network_id original_network_id, t_satellite_position satellitePosition, freq_id_t freq, bool free_ca);
void current_service_descriptor(const unsigned char * const buffer, const t_service_id service_id, const t_transport_stream_id transport_stream_id, const t_original_network_id original_network_id, t_satellite_position satellitePosition, freq_id_t freq);
void current_service_descriptor(const unsigned char * const buffer, const t_service_id service_id, const t_transport_stream_id transport_stream_id, const t_original_network_id original_network_id, t_satellite_position satellitePosition, freq_id_t freq, bool free_ca);
void country_availability_descriptor(const unsigned char * const buffer);
void linkage_descriptor(const unsigned char * const buffer);
int NVOD_reference_descriptor(const unsigned char * const buffer, const unsigned int num, t_transport_stream_id * const, t_original_network_id * const, t_service_id * const);

View File

@@ -80,7 +80,7 @@ struct transponder
updated = 0;
}
};
typedef std::map<transponder_id_t, transponder> transponder_list_t;
typedef std::map <transponder_id_t, transponder> transponder_list_t;
typedef std::map <transponder_id_t, transponder>::iterator stiterator;
typedef std::map<transponder_id_t, bool> sdt_tp_t;
extern transponder_list_t scantransponders;

View File

@@ -705,7 +705,7 @@ void service_descriptor(const unsigned char * const buffer, const t_service_id s
}
}
void current_service_descriptor(const unsigned char * const buffer, const t_service_id service_id, const t_transport_stream_id transport_stream_id, const t_original_network_id original_network_id, t_satellite_position satellitePosition, freq_id_t freq)
void current_service_descriptor(const unsigned char * const buffer, const t_service_id service_id, const t_transport_stream_id transport_stream_id, const t_original_network_id original_network_id, t_satellite_position satellitePosition, freq_id_t freq, bool free_ca)
{
bool service_wr = false;
uint8_t service_type = buffer[2];
@@ -767,20 +767,22 @@ void current_service_descriptor(const unsigned char * const buffer, const t_serv
serviceName = CDVBString((const char*)&(buffer[4 + service_provider_name_length + 1]), (2 + buffer[1]) - (4 + service_provider_name_length + 1)).getContent();
}
curchans.insert (
std::pair <t_channel_id, CZapitChannel> (
CREATE_CHANNEL_ID64,
CZapitChannel (
serviceName,
service_id,
transport_stream_id,
original_network_id,
real_type,
satellitePosition,
freq
)
)
);
pair<map<t_channel_id, CZapitChannel>::iterator,bool> ret;
ret = curchans.insert (
std::pair <t_channel_id, CZapitChannel> (
CREATE_CHANNEL_ID64,
CZapitChannel (
serviceName,
service_id,
transport_stream_id,
original_network_id,
real_type /*service_type*/,
satellitePosition,
freq
)
)
);
ret.first->second.scrambled = free_ca;
}
/* 0x49 */

View File

@@ -440,7 +440,7 @@ int parse_current_sdt( const t_transport_stream_id p_transport_stream_id, const
//printf("[sdt] descriptor %X\n", buffer[pos2]);
switch (buffer[pos2]) {
case 0x48:
current_service_descriptor(buffer + pos2, service_id, transport_stream_id, original_network_id, satellitePosition, freq);
current_service_descriptor(buffer + pos2, service_id, transport_stream_id, original_network_id, satellitePosition, freq, free_CA_mode);
ret = 0;
break;

View File

@@ -2509,11 +2509,11 @@ printf("[sdt monitor] wakeup...\n");
abs(cI->second.getSatellitePosition())/10, cI->second.getSatellitePosition() > 0 ? 'E' : 'W',
cI->second.getServiceType());
#endif
fprintf(fd, "\t\t\t<S action=\"add\" i=\"%04x\" n=\"%s\" t=\"%x\"/>\n",
fprintf(fd, "\t\t\t<S action=\"add\" i=\"%04x\" n=\"%s\" t=\"%x\" s=\"%d\"/>\n",
cI->second.getServiceId(), convert_UTF8_To_UTF8_XML(cI->second.getName().c_str()).c_str(),
cI->second.getServiceType());
cI->second.getServiceType(), cI->second.scrambled);
} else {
if(strcmp(cI->second.getName().c_str(), ccI->second.getName().c_str())) {
if(strcmp(cI->second.getName().c_str(), ccI->second.getName().c_str()) || cI->second.scrambled != ccI->second.scrambled) {
if(!tpdone) {
if(!satfound)
fprintf(fd, "%s", satstr);
@@ -2521,9 +2521,9 @@ printf("[sdt monitor] wakeup...\n");
tpdone = 1;
}
updated = 1;
fprintf(fd, "\t\t\t<S action=\"replace\" i=\"%04x\" n=\"%s\" t=\"%x\"/>\n",
fprintf(fd, "\t\t\t<S action=\"replace\" i=\"%04x\" n=\"%s\" t=\"%x\" s=\"%d\"/>\n",
cI->second.getServiceId(), convert_UTF8_To_UTF8_XML(cI->second.getName().c_str()).c_str(),
cI->second.getServiceType());
cI->second.getServiceType(), cI->second.scrambled);
}
#if 0
char newname[128];