Ticket #13014: 20190325-modsys-all-v2.patch
| File 20190325-modsys-all-v2.patch, 11.1 KB (added by , 7 years ago) |
|---|
-
mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp
diff --git a/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp b/mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp index 797efb8944..ce9b628454 100644
a b void ChannelScanSM::LogLines(const QString& string) const 347 347 { 348 348 QStringList lines = string.split('\n'); 349 349 for (int i = 0; i < lines.size(); ++i) 350 LOG(VB_CHANSCAN, LOG_ INFO, lines[i]);350 LOG(VB_CHANSCAN, LOG_DEBUG, lines[i]); 351 351 } 352 352 353 353 void ChannelScanSM::HandlePAT(const ProgramAssociationTable *pat) … … void ChannelScanSM::UpdateScanTransports(const NetworkInformationTable *nit) 695 695 uint64_t frequency = 0; 696 696 const MPEGDescriptor desc(list[j]); 697 697 uint tag = desc.DescriptorTag(); 698 uint length = desc.DescriptorLength(); 699 QString tagString = desc.DescriptorTagString(); 700 698 701 DTVTunerType tt(DTVTunerType::kTunerTypeUnknown); 699 702 703 LOG(VB_CHANSCAN, LOG_DEBUG, LOC + QString("ts-loop j:%1 tag:%2 %3 length:%4") 704 .arg(j).arg(tag).arg(tagString).arg(length)); 705 700 706 switch (tag) 701 707 { 702 708 case DescriptorID::terrestrial_delivery_system: … … bool ChannelScanSM::UpdateChannelInfo(bool wait_until_complete) 920 926 } 921 927 } 922 928 923 // append transports from the NIT to the scan list929 // Append transports from the NIT to the scan list 924 930 if (transport_tune_complete && m_extendScanList && 925 931 !m_currentInfo->m_nits.empty()) 926 932 { 927 // append delivery system descriptos to scan list933 // Update transport with delivery system descriptors from the NIT 928 934 nit_vec_t::const_iterator it = m_currentInfo->m_nits.begin(); 929 935 while (it != m_currentInfo->m_nits.end()) 930 936 { … … bool ChannelScanSM::UpdateChannelInfo(bool wait_until_complete) 953 959 TransportScanItem &item = *m_current; 954 960 item.m_tuning.m_frequency = item.freq_offset(m_current.offset()); 955 961 956 if (m_scanDTVTunerType == DTVTunerType::kTunerTypeDVBT) 957 { 958 item.m_tuning.m_mod_sys = DTVModulationSystem::kModulationSystem_DVBT; 959 } 962 item.m_tuning.m_mod_sys.Parse(m_inputName); 963 LOG(VB_CHANSCAN, LOG_DEBUG, LOC + 964 QString("%1(%2) m_inputName: %3 ").arg(__FUNCTION__).arg(__LINE__).arg(m_inputName) + 965 QString("m_mod_sys:%1 %2").arg(item.m_tuning.m_mod_sys).arg(item.m_tuning.m_mod_sys.toString())); 966 960 967 if (m_scanDTVTunerType == DTVTunerType::kTunerTypeDVBT2) 961 968 { 962 969 if (m_dvbt2Tried) … … bool ChannelScanSM::ScanTransports( 1918 1925 const QString &table_start, 1919 1926 const QString &table_end) 1920 1927 { 1928 LOG(VB_CHANSCAN, LOG_DEBUG, LOC + 1929 QString("%1: ").arg(__FUNCTION__) + 1930 QString("SourceID:%1 ").arg(SourceID) + 1931 QString("std:%1 ").arg(std) + 1932 QString("modulation:%1 ").arg(modulation) + 1933 QString("country:%1 ").arg(country) + 1934 QString("table_start:%1 ").arg(table_start) + 1935 QString("table_end:%1 ").arg(table_end)); 1936 1921 1937 QString name(""); 1922 1938 if (m_scanning) 1923 1939 return false; -
mythtv/libs/libmythtv/dtvmultiplex.cpp
diff --git a/mythtv/libs/libmythtv/dtvmultiplex.cpp b/mythtv/libs/libmythtv/dtvmultiplex.cpp index 5b1e83258f..26f2310000 100644
a b bool DTVMultiplex::ParseDVB_S_and_C( 218 218 return ok; 219 219 } 220 220 221 bool DTVMultiplex::ParseDVB_S( 222 const QString &_frequency, const QString &_inversion, 223 const QString &_symbol_rate, const QString &_fec_inner, 224 const QString &_modulation, const QString &_polarity) 225 { 226 bool ok = ParseDVB_S_and_C(_frequency, _inversion, _symbol_rate, 227 _fec_inner, _modulation, _polarity); 228 return ok; 229 } 230 231 bool DTVMultiplex::ParseDVB_C( 232 const QString &_frequency, const QString &_inversion, 233 const QString &_symbol_rate, const QString &_fec_inner, 234 const QString &_modulation, const QString &_polarity, 235 const QString &_mod_sys) 236 { 237 bool ok = ParseDVB_S_and_C(_frequency, _inversion, _symbol_rate, 238 _fec_inner, _modulation, _polarity); 239 240 m_mod_sys.Parse(_mod_sys); 241 if (DTVModulationSystem::kModulationSystem_UNDEFINED == m_mod_sys) 242 m_mod_sys = DTVModulationSystem::kModulationSystem_DVBC_ANNEX_A; 243 244 LOG(VB_GENERAL, LOG_DEBUG, LOC + 245 QString("%1 ").arg(__FUNCTION__) + 246 QString("_mod_sys:%1 ok:%2 ").arg(_mod_sys).arg(ok) + 247 QString("m_mod_sys:%1 %2 ").arg(m_mod_sys).arg(m_mod_sys.toString())); 248 249 if ((DTVModulationSystem::kModulationSystem_DVBC_ANNEX_A != m_mod_sys) && 250 (DTVModulationSystem::kModulationSystem_DVBC_ANNEX_B != m_mod_sys) && 251 (DTVModulationSystem::kModulationSystem_DVBC_ANNEX_C != m_mod_sys)) 252 { 253 LOG(VB_GENERAL, LOG_ERR, LOC + "Unsupported DVB-C modulation system " + 254 QString("parameter '%1', aborting.").arg(_mod_sys)); 255 return false; 256 } 257 258 return ok; 259 } 260 221 261 bool DTVMultiplex::ParseDVB_S2( 222 262 const QString &_frequency, const QString &_inversion, 223 263 const QString &_symbol_rate, const QString &_fec_inner, … … bool DTVMultiplex::ParseDVB_S2( 229 269 230 270 if (!m_mod_sys.Parse(_mod_sys)) 231 271 { 232 LOG(VB_GENERAL, LOG_ERR, LOC + "Invalid S2 modulation system " +272 LOG(VB_GENERAL, LOG_ERR, LOC + "Invalid DVB-S2 modulation system " + 233 273 QString("parameter '%1', aborting.").arg(_mod_sys)); 234 274 return false; 235 275 } … … bool DTVMultiplex::ParseDVB_S2( 245 285 if ((DTVModulationSystem::kModulationSystem_DVBS != m_mod_sys) && 246 286 (DTVModulationSystem::kModulationSystem_DVBS2 != m_mod_sys)) 247 287 { 248 LOG(VB_GENERAL, LOG_ERR, LOC + "Unsupported S2 modulation system " +288 LOG(VB_GENERAL, LOG_ERR, LOC + "Unsupported DVB-S2 modulation system " + 249 289 QString("parameter '%1', aborting.").arg(_mod_sys)); 250 290 return false; 251 291 } … … bool DTVMultiplex::ParseDVB_T2( 268 308 _trans_mode, _guard_interval, _hierarchy); 269 309 270 310 QString l_mod_sys = _mod_sys; 311 312 // Accept "0" for "DVB-T" and "1" for "DVB-T2" 271 313 if (_mod_sys == "1") 272 314 { 273 315 LOG(VB_GENERAL, LOG_WARNING, LOC + "Invalid DVB-T2 modulation system " + 274 316 QString("parameter '%1', using DVB-T2.").arg(_mod_sys)); 275 l_mod_sys = "DVB-T2"; 317 m_mod_sys = DTVModulationSystem::kModulationSystem_DVBT2; 318 l_mod_sys = m_mod_sys.toString(); 276 319 } 277 320 else if (_mod_sys == "0") 278 321 { 279 322 LOG(VB_GENERAL, LOG_WARNING, LOC + "Invalid DVB-T modulation system " + 280 323 QString("parameter '%1', using DVB-T.").arg(_mod_sys)); 281 l_mod_sys = "DVB-T"; 324 m_mod_sys = DTVModulationSystem::kModulationSystem_DVBT; 325 l_mod_sys = m_mod_sys.toString(); 282 326 } 327 283 328 if (!m_mod_sys.Parse(l_mod_sys)) 284 329 { 285 330 LOG(VB_GENERAL, LOG_WARNING, LOC + "Invalid DVB-T/T2 modulation system " + … … bool DTVMultiplex::ParseTuningParams( 313 358 if (DTVTunerType::kTunerTypeDVBT == type) 314 359 { 315 360 return ParseDVB_T( 316 _frequency, _inversion, _bandwidth, _hp_code_rate,317 _ lp_code_rate, _ofdm_modulation, _trans_mode, _guard_interval,318 _ hierarchy);361 _frequency, _inversion, _bandwidth, 362 _hp_code_rate, _lp_code_rate, _ofdm_modulation, 363 _trans_mode, _guard_interval, _hierarchy); 319 364 } 320 365 321 if ((DTVTunerType::kTunerTypeDVBS1 == type) || 322 (DTVTunerType::kTunerTypeDVBC == type)) 366 if (DTVTunerType::kTunerTypeDVBC == type) 367 { 368 return ParseDVB_C( 369 _frequency, _inversion, _symbolrate, 370 _fec, _modulation, _polarity, 371 _mod_sys); 372 } 373 374 if (DTVTunerType::kTunerTypeDVBS1 == type) 323 375 { 324 return ParseDVB_S _and_C(325 _frequency, _inversion, _symbolrate,326 _fec, _modulation, _polarity);376 return ParseDVB_S( 377 _frequency, _inversion, _symbolrate, 378 _fec, _modulation, _polarity); 327 379 } 328 380 329 381 if (DTVTunerType::kTunerTypeDVBS2 == type) 330 382 { 331 383 return ParseDVB_S2( 332 _frequency, _inversion, _symbolrate,333 _fec, _modulation, _polarity,384 _frequency, _inversion, _symbolrate, 385 _fec, _modulation, _polarity, 334 386 _mod_sys, _rolloff); 335 387 } 336 388 337 389 if (DTVTunerType::kTunerTypeDVBT2 == type) 338 390 { 339 391 return ParseDVB_T2( 340 _frequency, _inversion, _bandwidth, _hp_code_rate, 341 _lp_code_rate, _ofdm_modulation, _trans_mode, _guard_interval, 342 _hierarchy, _mod_sys); 392 _frequency, _inversion, _bandwidth, 393 _hp_code_rate, _lp_code_rate, _ofdm_modulation, 394 _trans_mode, _guard_interval, _hierarchy, 395 _mod_sys); 343 396 } 344 397 345 398 if (DTVTunerType::kTunerTypeATSC == type) -
mythtv/libs/libmythtv/dtvmultiplex.h
diff --git a/mythtv/libs/libmythtv/dtvmultiplex.h b/mythtv/libs/libmythtv/dtvmultiplex.h index 176ad90df3..39ec86ede9 100644
a b class MTV_PUBLIC DTVMultiplex 54 54 const QString &symbol_rate, const QString &fec_inner, 55 55 const QString &modulation, const QString &polarity); 56 56 57 bool ParseDVB_S( 58 const QString &frequency, const QString &inversion, 59 const QString &symbol_rate, const QString &fec_inner, 60 const QString &modulation, const QString &polarity); 61 62 bool ParseDVB_C( 63 const QString &frequency, const QString &inversion, 64 const QString &symbol_rate, const QString &fec_inner, 65 const QString &modulation, const QString &polarity, 66 const QString &mod_sys); 67 57 68 bool ParseDVB_S2( 58 69 const QString &frequency, const QString &inversion, 59 70 const QString &symbol_rate, const QString &fec_inner, … … class MTV_PUBLIC DTVMultiplex 84 95 uint64_t m_symbolrate {0}; 85 96 DTVInversion m_inversion; 86 97 DTVBandwidth m_bandwidth; 87 DTVCodeRate m_hp_code_rate; ///< High Priority FEC rate88 DTVCodeRate m_lp_code_rate; ///< Low Priority FEC rate98 DTVCodeRate m_hp_code_rate; ///< High Priority FEC rate 99 DTVCodeRate m_lp_code_rate; ///< Low Priority FEC rate 89 100 DTVModulation m_modulation; 90 101 DTVTransmitMode m_trans_mode; 91 102 DTVGuardInterval m_guard_interval; 92 103 DTVHierarchy m_hierarchy; 93 104 DTVPolarity m_polarity; 94 DTVCodeRate m_fec; ///< Inner Forward Error Correction rate95 DTVModulationSystem m_mod_sys; ///< modulation system (only DVB-S or DVB-S2 atm)105 DTVCodeRate m_fec; ///< Inner Forward Error Correction rate 106 DTVModulationSystem m_mod_sys; ///< Modulation system 96 107 DTVRollOff m_rolloff; 97 108 98 109 // Optional additional info
