From 254ab37f4a67ee3c84da0504acb987b5276b9a44 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 21 Oct 2010 18:13:07 +0000 Subject: [PATCH] add to scanSDT scrambled update git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@850 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/1e1f547497813370be50559e2f87a1600a4f351c Author: Jacek Jendrzej Date: 2010-10-21 (Thu, 21 Oct 2010) Origin message was: ------------------ -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 was generated by Migit --- src/zapit/include/zapit/descriptors.h | 2 +- src/zapit/include/zapit/getservices.h | 2 +- src/zapit/src/descriptors.cpp | 32 ++++++++++++++------------- src/zapit/src/sdt.cpp | 2 +- src/zapit/src/zapit.cpp | 10 ++++----- 5 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/zapit/include/zapit/descriptors.h b/src/zapit/include/zapit/descriptors.h index f95a4b960..45e025b19 100644 --- a/src/zapit/include/zapit/descriptors.h +++ b/src/zapit/include/zapit/descriptors.h @@ -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); diff --git a/src/zapit/include/zapit/getservices.h b/src/zapit/include/zapit/getservices.h index 2c3632954..60cd0189d 100644 --- a/src/zapit/include/zapit/getservices.h +++ b/src/zapit/include/zapit/getservices.h @@ -80,7 +80,7 @@ struct transponder updated = 0; } }; -typedef std::map transponder_list_t; +typedef std::map transponder_list_t; typedef std::map ::iterator stiterator; typedef std::map sdt_tp_t; extern transponder_list_t scantransponders; diff --git a/src/zapit/src/descriptors.cpp b/src/zapit/src/descriptors.cpp index 423708915..ed8c5d3d4 100644 --- a/src/zapit/src/descriptors.cpp +++ b/src/zapit/src/descriptors.cpp @@ -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 ( - CREATE_CHANNEL_ID64, - CZapitChannel ( - serviceName, - service_id, - transport_stream_id, - original_network_id, - real_type, - satellitePosition, - freq - ) - ) - ); + pair::iterator,bool> ret; + ret = curchans.insert ( + std::pair ( + 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 */ diff --git a/src/zapit/src/sdt.cpp b/src/zapit/src/sdt.cpp index 350234807..d3f16c3f1 100644 --- a/src/zapit/src/sdt.cpp +++ b/src/zapit/src/sdt.cpp @@ -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; diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index 1ad96f8d6..726ba5699 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -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\n", + fprintf(fd, "\t\t\t\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\n", + fprintf(fd, "\t\t\t\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];