Ticket #5603: network_default_authority.patch
File network_default_authority.patch, 25.3 KB (added by , 16 years ago) |
---|
-
libs/libmythtv/channelutil.h
67 67 signed char trans_mode, 68 68 QString inner_FEC, QString constellation, 69 69 signed char hierarchy, QString hp_code_rate, 70 QString lp_code_rate, QString guard_interval); 70 QString lp_code_rate, QString guard_interval, 71 QString default_authority ); 71 72 72 73 static uint CreateMultiplex(uint sourceid, const DTVMultiplex&, 73 74 int transport_id, int network_id); 74 75 75 76 static vector<uint> CreateMultiplexes( 76 int sourceid, const NetworkInformationTable *nit); 77 int sourceid, const NetworkInformationTable *nit, 78 const QString& network_default_authority); 77 79 78 80 static uint GetMplexID(uint sourceid, const QString &channum); 79 81 static int GetMplexID(uint sourceid, uint frequency); -
libs/libmythtv/channelutil.cpp
122 122 signed char trans_mode, 123 123 QString inner_FEC, QString constellation, 124 124 signed char hierarchy, QString hp_code_rate, 125 QString lp_code_rate, QString guard_interval) 125 QString lp_code_rate, QString guard_interval, 126 QString default_authority ) 126 127 { 127 128 MSqlQuery query(MSqlQuery::InitCon()); 128 129 … … 166 167 "lp_code_rate = :LP_CODE_RATE, " : ""; 167 168 updateStr += (!guard_interval.isNull()) ? 168 169 "guard_interval = :GUARD_INTERVAL, " : ""; 170 updateStr += (!default_authority.isNull()) ? 171 "default_authority = :DEFAULT_AUTHORITY, " : ""; 169 172 170 173 updateStr = updateStr.left(updateStr.length()-2) + " "; 171 174 … … 181 184 "INSERT INTO dtv_multiplex " 182 185 " (sourceid, sistandard, frequency, "; 183 186 184 insertStr += (!modulation.isNull()) ? "modulation, " : ""; 185 insertStr += (isDVB) ? "transportid, " : ""; 186 insertStr += (isDVB) ? "networkid, " : ""; 187 insertStr += (symbol_rate >= 0) ? "symbolrate, " : ""; 188 insertStr += (bandwidth >= 0) ? "bandwidth, " : ""; 189 insertStr += (polarity >= 0) ? "polarity, " : ""; 190 insertStr += (inversion >= 0) ? "inversion, " : ""; 191 insertStr += (trans_mode >= 0) ? "transmission_mode, " : ""; 192 insertStr += (!inner_FEC.isNull()) ? "fec, " : ""; 193 insertStr += (!constellation.isNull()) ? "constellation, " : ""; 194 insertStr += (hierarchy >= 0) ? "hierarchy, " : ""; 195 insertStr += (!hp_code_rate.isNull()) ? "hp_code_rate, " : ""; 196 insertStr += (!lp_code_rate.isNull()) ? "lp_code_rate, " : ""; 197 insertStr += (!guard_interval.isNull()) ? "guard_interval, " : ""; 187 insertStr += (!modulation.isNull()) ? "modulation, " : ""; 188 insertStr += (isDVB) ? "transportid, " : ""; 189 insertStr += (isDVB) ? "networkid, " : ""; 190 insertStr += (symbol_rate >= 0) ? "symbolrate, " : ""; 191 insertStr += (bandwidth >= 0) ? "bandwidth, " : ""; 192 insertStr += (polarity >= 0) ? "polarity, " : ""; 193 insertStr += (inversion >= 0) ? "inversion, " : ""; 194 insertStr += (trans_mode >= 0) ? "transmission_mode, " : ""; 195 insertStr += (!inner_FEC.isNull()) ? "fec, " : ""; 196 insertStr += (!constellation.isNull()) ? "constellation, " : ""; 197 insertStr += (hierarchy >= 0) ? "hierarchy, " : ""; 198 insertStr += (!hp_code_rate.isNull()) ? "hp_code_rate, " : ""; 199 insertStr += (!lp_code_rate.isNull()) ? "lp_code_rate, " : ""; 200 insertStr += (!guard_interval.isNull()) ? "guard_interval, " : ""; 201 insertStr += (!default_authority.isNull()) ? "default_authority, " : ""; 198 202 insertStr = insertStr.left(insertStr.length()-2) + ") "; 199 203 200 204 insertStr += 201 205 "VALUES " 202 206 " (:SOURCEID, :SISTANDARD, :FREQUENCY, "; 203 insertStr += (!modulation.isNull()) ? ":MODULATION, " : ""; 204 insertStr += (isDVB) ? ":TRANSPORTID, " : ""; 205 insertStr += (isDVB) ? ":NETWORKID, " : ""; 206 insertStr += (symbol_rate >= 0) ? ":SYMBOLRATE, " : ""; 207 insertStr += (bandwidth >= 0) ? ":BANDWIDTH, " : ""; 208 insertStr += (polarity >= 0) ? ":POLARITY, " : ""; 209 insertStr += (inversion >= 0) ? ":INVERSION, " : ""; 210 insertStr += (trans_mode >= 0) ? ":TRANS_MODE, " : ""; 211 insertStr += (!inner_FEC.isNull()) ? ":INNER_FEC, " : ""; 212 insertStr += (!constellation.isNull()) ? ":CONSTELLATION, " : ""; 213 insertStr += (hierarchy >= 0) ? ":HIERARCHY, " : ""; 214 insertStr += (!hp_code_rate.isNull()) ? ":HP_CODE_RATE, " : ""; 215 insertStr += (!lp_code_rate.isNull()) ? ":LP_CODE_RATE, " : ""; 216 insertStr += (!guard_interval.isNull()) ? ":GUARD_INTERVAL, " : ""; 207 insertStr += (!modulation.isNull()) ? ":MODULATION, " : ""; 208 insertStr += (isDVB) ? ":TRANSPORTID, " : ""; 209 insertStr += (isDVB) ? ":NETWORKID, " : ""; 210 insertStr += (symbol_rate >= 0) ? ":SYMBOLRATE, " : ""; 211 insertStr += (bandwidth >= 0) ? ":BANDWIDTH, " : ""; 212 insertStr += (polarity >= 0) ? ":POLARITY, " : ""; 213 insertStr += (inversion >= 0) ? ":INVERSION, " : ""; 214 insertStr += (trans_mode >= 0) ? ":TRANS_MODE, " : ""; 215 insertStr += (!inner_FEC.isNull()) ? ":INNER_FEC, " : ""; 216 insertStr += (!constellation.isNull()) ? ":CONSTELLATION, " : ""; 217 insertStr += (hierarchy >= 0) ? ":HIERARCHY, " : ""; 218 insertStr += (!hp_code_rate.isNull()) ? ":HP_CODE_RATE, " : ""; 219 insertStr += (!lp_code_rate.isNull()) ? ":LP_CODE_RATE, " : ""; 220 insertStr += (!guard_interval.isNull()) ? ":GUARD_INTERVAL, " : ""; 221 insertStr += (!default_authority.isNull()) ? ":DEFAULT_AUTHORITY, " : ""; 217 222 insertStr = insertStr.left(insertStr.length()-2) + ");"; 218 223 219 224 query.prepare((mplex) ? updateStr : insertStr); … … 255 260 query.bindValue(":LP_CODE_RATE", lp_code_rate); 256 261 if (!guard_interval.isNull()) 257 262 query.bindValue(":GUARD_INTERVAL",guard_interval); 263 if (!default_authority.isNull()) 264 query.bindValue(":DEFAULT_AUTHORITY",default_authority); 258 265 259 266 if (!query.exec() || !query.isActive()) 260 267 { … … 277 284 } 278 285 279 286 void handle_transport_desc(vector<uint> &muxes, const MPEGDescriptor &desc, 280 uint sourceid, uint tsid, uint netid) 287 uint sourceid, uint tsid, uint netid, 288 const QString &default_authority) 281 289 { 282 290 uint tag = desc.DescriptorTag(); 283 291 … … 308 316 cd.TransmissionModeString()[0].toAscii(), 309 317 QString(), cd.ConstellationString(), 310 318 cd.HierarchyString()[0].toAscii(), cd.CodeRateHPString(), 311 cd.CodeRateLPString(), cd.GuardIntervalString()); 319 cd.CodeRateLPString(), cd.GuardIntervalString(), 320 default_authority ); 312 321 313 322 if (mux) 314 323 muxes.push_back(mux); … … 335 344 -1, 336 345 cd.FECInnerString(), QString(), 337 346 -1, QString(), 338 QString(), QString()); 347 QString(), QString(), 348 default_authority ); 339 349 340 350 if (mux) 341 351 muxes.push_back(mux); … … 358 368 -1, 359 369 cd.FECInnerString(), QString::null, 360 370 -1, QString::null, 361 QString::null, QString::null); 371 QString::null, QString::null, 372 default_authority ); 362 373 363 374 if (mux) 364 375 muxes.push_back(mux); … … 378 389 -1, 379 390 QString::null, QString::null, 380 391 -1, QString::null, 381 QString::null, QString::null); 392 QString::null, QString::null, 393 QString::null ); 382 394 } 383 395 384 396 uint ChannelUtil::CreateMultiplex( … … 391 403 signed char trans_mode, 392 404 QString inner_FEC, QString constellation, 393 405 signed char hierarchy, QString hp_code_rate, 394 QString lp_code_rate, QString guard_interval) 406 QString lp_code_rate, QString guard_interval, 407 QString default_authority ) 395 408 { 396 409 return insert_dtv_multiplex( 397 410 sourceid, sistandard, … … 403 416 trans_mode, 404 417 inner_FEC, constellation, 405 418 hierarchy, hp_code_rate, 406 lp_code_rate, guard_interval); 419 lp_code_rate, guard_interval, 420 default_authority ); 407 421 } 408 422 409 423 uint ChannelUtil::CreateMultiplex(uint sourceid, const DTVMultiplex &mux, 410 int transport_id, int network_id )424 int transport_id, int network_id ) 411 425 { 412 426 return insert_dtv_multiplex( 413 427 sourceid, mux.sistandard, … … 419 433 mux.trans_mode.toChar().toAscii(), 420 434 mux.fec.toString(), mux.modulation.toString(), 421 435 mux.hierarchy.toChar().toAscii(), mux.hp_code_rate.toString(), 422 mux.lp_code_rate.toString(), mux.guard_interval.toString()); 436 mux.lp_code_rate.toString(), mux.guard_interval.toString(), 437 mux.default_authority ); 423 438 } 424 439 425 440 … … 427 442 * 428 443 */ 429 444 vector<uint> ChannelUtil::CreateMultiplexes( 430 int sourceid, const NetworkInformationTable *nit) 445 int sourceid, const NetworkInformationTable *nit, 446 const QString& net_default_auth) 431 447 { 432 448 vector<uint> muxes; 433 449 434 450 if (sourceid <= 0) 435 451 return muxes; 436 452 453 // if there's a network level default authority use it, otherwise use 454 // passed in value. 455 const desc_list_t& list = 456 MPEGDescriptor::Parse(nit->NetworkDescriptors(), 457 nit->NetworkDescriptorsLength()); 458 459 const unsigned char* desc = 460 MPEGDescriptor::Find(list, DescriptorID::default_authority); 461 462 QString network_default_authority(net_default_auth); 463 464 if (desc) 465 { 466 network_default_authority 467 = QString::fromAscii((const char*)desc+2, desc[1]); 468 } 469 437 470 for (uint i = 0; i < nit->TransportStreamCount(); ++i) 438 471 { 439 472 const desc_list_t& list = 440 473 MPEGDescriptor::Parse(nit->TransportDescriptors(i), 441 474 nit->TransportDescriptorsLength(i)); 442 475 476 const unsigned char* desc = 477 MPEGDescriptor::Find(list, DescriptorID::default_authority); 478 479 QString default_authority(network_default_authority); 480 481 if (desc) 482 { 483 default_authority 484 = QString::fromAscii((const char*)desc+2, desc[1]); 485 } 486 443 487 uint tsid = nit->TSID(i); 444 488 uint netid = nit->OriginalNetworkID(i); 445 489 for (uint j = 0; j < list.size(); ++j) 446 490 { 447 491 const MPEGDescriptor desc(list[j]); 448 handle_transport_desc(muxes, desc, sourceid, tsid, netid );492 handle_transport_desc(muxes, desc, sourceid, tsid, netid, default_authority); 449 493 } 450 494 } 451 495 return muxes; -
libs/libmythtv/dbcheck.cpp
18 18 #define MINIMUM_DBMS_VERSION 5,0,15 19 19 20 20 /// This is the DB schema version expected by the running MythTV instance. 21 const QString currentDatabaseVersion = "122 2";21 const QString currentDatabaseVersion = "1223"; 22 22 23 23 static bool UpdateDBVersionNumber(const QString &newnumber); 24 24 static bool performActualUpdate( … … 3445 3445 NULL 3446 3446 }; 3447 3447 if (!performActualUpdate(updates, "1209", dbver)) 3448 3448 return false; 3449 3449 } 3450 3450 3451 3451 if (dbver == "1209") … … 3466 3466 NULL 3467 3467 }; 3468 3468 if (!performActualUpdate(updates, "1210", dbver)) 3469 3469 return false; 3470 3470 } 3471 3471 3472 3472 if (dbver == "1210") … … 3488 3488 NULL 3489 3489 }; 3490 3490 if (!performActualUpdate(updates, "1211", dbver)) 3491 3491 return false; 3492 3492 } 3493 3493 3494 3494 if (dbver == "1211") … … 4287 4287 return false; 4288 4288 } 4289 4289 4290 if (dbver == "1222") 4291 { 4292 const char *updates[] = { 4293 // Content identfiers are authority (32) + data (29) + instance (3) = 64 4294 "ALTER TABLE program" 4295 " MODIFY programid varchar(64) CHARACTER SET utf8 NOT NULL default ''," 4296 " MODIFY seriesid varchar(64) CHARACTER SET utf8 NOT NULL default '';", 4297 // tidy up content identifiers without authorities 4298 "UPDATE program SET programid = '' WHERE programid like '/%';", 4299 "UPDATE program SET seriesid = '' WHERE seriesid like '/%';", 4300 // Add network level default authorities to the multiplex tables 4301 "ALTER TABLE dtv_multiplex ADD COLUMN" 4302 " default_authority varchar(32) CHARACTER SET utf8 NOT NULL default '';", 4303 "ALTER TABLE channelscan_dtv_multiplex ADD COLUMN" 4304 " default_authority varchar(32) CHARACTER SET utf8 NOT NULL default '';", 4305 NULL 4306 }; 4307 if (!performActualUpdate(updates, "1223", dbver)) 4308 return false; 4309 } 4290 4310 4291 4311 return true; 4292 4312 } -
libs/libmythtv/dtvmultiplex.h
21 21 { 22 22 public: 23 23 DTVMultiplex() 24 : frequency(0), symbolrate(0), mplex(0), sistandard(QString::null) { } 24 : frequency(0), symbolrate(0), mplex(0), sistandard(QString::null) 25 , default_authority(QString::null) { } 25 26 DTVMultiplex(const DTVMultiplex &other) { (*this) = other; } 26 27 DTVMultiplex &operator=(const DTVMultiplex &other); 27 28 virtual ~DTVMultiplex() { } … … 78 79 // Optional additional info 79 80 uint mplex; 80 81 QString sistandard; 82 QString default_authority; 81 83 }; 82 84 83 85 class ScanDTVTransport : public DTVMultiplex -
libs/libmythtv/dtvmultiplex.cpp
10 10 11 11 DTVMultiplex &DTVMultiplex::operator=(const DTVMultiplex &other) 12 12 { 13 frequency = other.frequency;14 symbolrate = other.symbolrate;15 inversion = other.inversion;16 bandwidth = other.bandwidth;17 hp_code_rate = other.hp_code_rate;18 lp_code_rate = other.lp_code_rate;19 modulation = other.modulation;20 trans_mode = other.trans_mode;21 guard_interval = other.guard_interval;22 hierarchy = other.hierarchy;23 polarity = other.polarity;24 fec = other.fec;25 mplex = other.mplex;26 sistandard = other.sistandard;13 frequency = other.frequency; 14 symbolrate = other.symbolrate; 15 inversion = other.inversion; 16 bandwidth = other.bandwidth; 17 hp_code_rate = other.hp_code_rate; 18 lp_code_rate = other.lp_code_rate; 19 modulation = other.modulation; 20 trans_mode = other.trans_mode; 21 guard_interval = other.guard_interval; 22 hierarchy = other.hierarchy; 23 polarity = other.polarity; 24 fec = other.fec; 25 mplex = other.mplex; 26 sistandard = other.sistandard; 27 27 sistandard.detach(); 28 default_authority = other.default_authority; 29 default_authority.detach(); 28 30 return *this; 29 31 } 30 32 … … 223 225 " fec, polarity, " 224 226 " hp_code_rate, lp_code_rate, constellation, " 225 227 " transmission_mode, guard_interval, hierarchy, " 226 " modulation, bandwidth, sistandard " 228 " modulation, bandwidth, sistandard, " 229 " default_authority " 227 230 "FROM dtv_multiplex " 228 231 "WHERE dtv_multiplex.mplexid = :MPLEXID"); 229 232 query.bindValue(":MPLEXID", mplexid); … … 246 249 mplex = mplexid; 247 250 sistandard = query.value(13).toString(); 248 251 sistandard.detach(); 252 default_authority = query.value(14).toString(); 253 default_authority.detach(); 249 254 250 255 // Parse the query into our DVBTuning class 251 256 return ParseTuningParams( … … 319 324 " symbolrate, fec, polarity, " 320 325 " hp_code_rate, lp_code_rate, modulation, " 321 326 " transmission_mode, guard_interval, hierarchy, " 322 " bandwidth, sistandard, tuner_type " 327 " bandwidth, sistandard, tuner_type, " 328 " default_authority " 323 329 " ) " 324 330 "VALUES " 325 331 " ( :SCANID, " … … 328 334 " :HP_CODE_RATE, :LP_CODE_RATE, :MODULATION, " 329 335 " :TRANSMISSION_MODE, :GUARD_INTERVAL, :HIERARCHY, " 330 336 " :BANDWIDTH, :SISTANDARD, :TUNER_TYPE " 337 " :DEFAULT_AUTHORITY " 331 338 " );"); 332 339 333 340 query.bindValue(":SCANID", scanid); … … 346 353 query.bindValue(":BANDWIDTH", bandwidth.toString()); 347 354 query.bindValue(":SISTANDARD", sistandard); 348 355 query.bindValue(":TUNER_TYPE", (uint)tuner_type); 356 query.bindValue(":DEFAULT_AUTHORITY", default_authority); 349 357 350 358 if (!query.exec()) 351 359 { -
libs/libmythtv/eit.cpp
569 569 return 1; 570 570 } 571 571 572 // If a series id or program id does not have an authority add the default. 572 /** \fn DBEvent::AddAuthority(const QString&, MSqlQuery &) 573 * 574 * If a series id or program id is a CRID URI, just keep important info 575 * ID's are case insensitive, so lower case the whole id. 576 * If there is no authority on the ID, add the default one. 577 * If there is no default, return an empty id. 578 * 579 * \param id The ID string to add the authority to. 580 * \param query Object to use for SQL queries. 581 * 582 * \return ID with the authority added or empty string if not a valid CRID. 583 */ 573 584 QString DBEvent::AddAuthority(const QString& id, MSqlQuery &query) const 574 585 { 575 if (id.length() == 0 || id[0] != '/') 586 // if id is empty, return it. 587 if (id.length() == 0) 576 588 return id; 577 589 590 // CRIDs are not case sensitive, so change all to lower case 591 QString crid = id.toLower(); 592 593 // remove "crid://" 594 if (crid.startsWith("crid://")) 595 crid.remove(0,7); 596 597 // if id is a CRID with authority, return it 598 if (crid[0] != '/') 599 return crid; 600 601 // CRID without authority, so try to add the default channel authority 578 602 query.prepare("SELECT default_authority " 579 603 "FROM channel " 580 604 "WHERE chanid = :CHANID"); … … 584 608 if (!query.exec()) 585 609 { 586 610 MythDB::DBError("AddAuthority", query); 587 return id;611 return ""; 588 612 } 589 613 590 614 if (query.next()) 591 return query.value(0).toString() + id; 592 else 593 return id; 615 { 616 const QString &authority = query.value(0).toString(); 617 if (authority.length()>0) 618 return authority + crid; 619 } 620 621 // No channel specific default authority, try a multiplex specific one 622 query.prepare("SELECT m.default_authority " 623 "FROM channel c LEFT JOIN dtv_multiplex m " 624 "on (c.mplexid = m.mplexid) " 625 "WHERE c.chanid = :CHANID"); 626 627 query.bindValue(":CHANID", chanid); 628 629 if (!query.exec()) 630 { 631 MythDB::DBError("AddAuthority", query); 632 return ""; 633 } 634 635 if (query.next()) 636 { 637 const QString &authority = query.value(0).toString(); 638 if (authority.length()>0) 639 return authority + crid; 640 } 641 642 return ""; // no authority, not a valid CRID, return empty 594 643 } -
libs/libmythtv/siscan.h
208 208 QTime timer; 209 209 210 210 // Transports List 211 uint lastNITVersion; 212 QString networkDefaultAuthority; 211 213 int transportsScanned; 212 214 transport_scan_items_t scanTransports; 213 215 transport_scan_items_it_t current; 214 216 transport_scan_items_it_t nextIt; 215 217 QMap<uint, uint> dvbChanNums; 218 QMap<uint, QString> defaultAuthorities; 216 219 217 220 /// Scanner thread, runs SIScan::StartScanner() 218 221 pthread_t scanner_thread; -
libs/libmythtv/siscan.cpp
105 105 threadExit(false), 106 106 waitingForTables(false), 107 107 // Transports List 108 lastNITVersion(65535), 109 networkDefaultAuthority(), 108 110 transportsScanned(0), 109 111 // Misc 110 112 scanner_thread_running(false) … … 322 324 .arg((*current).FriendlyName)); 323 325 VERBOSE(VB_SIPARSER, LOC + nit->toString()); 324 326 325 dvbChanNums.clear(); 327 // Clear channel numbers and default authorities if new NIT 328 if (nit->Version() != lastNITVersion) 329 { 330 defaultAuthorities.clear(); 331 dvbChanNums.clear(); 332 networkDefaultAuthority.clear(); 333 lastNITVersion = nit->Version(); 334 } 326 335 327 336 if (nit->TransportStreamCount()) 328 337 { 329 338 emit TransportScanUpdateText( 330 339 tr("Network %1 Processing").arg(nit->NetworkName())); 331 340 341 const desc_list_t& list = 342 MPEGDescriptor::Parse(nit->NetworkDescriptors(), 343 nit->NetworkDescriptorsLength()); 344 345 const unsigned char* desc = 346 MPEGDescriptor::Find(list, DescriptorID::default_authority); 347 348 if (desc) 349 { 350 networkDefaultAuthority 351 = QString::fromAscii((const char*)desc+2, desc[1]); 352 } 353 332 354 vector<uint> mp; 333 mp = ChannelUtil::CreateMultiplexes(sourceID, nit); 355 mp = ChannelUtil::CreateMultiplexes(sourceID, nit, 356 networkDefaultAuthority); 334 357 VERBOSE(VB_SIPARSER, QString("Created %1 multiplexes from NIT") 335 358 .arg(mp.size())); 336 359 337 360 // Get channel numbers from UK Frequency List Descriptors 361 // Get mux specific default authorities 338 362 for (uint i = 0; i < nit->TransportStreamCount(); i++) 339 363 { 340 364 const desc_list_t& list = 341 365 MPEGDescriptor::Parse(nit->TransportDescriptors(i), 342 366 nit->TransportDescriptorsLength(i)); 343 367 344 const unsigned char*desc =368 desc = 345 369 MPEGDescriptor::Find(list, DescriptorID::dvb_uk_channel_list); 346 370 347 371 if (desc) … … 350 374 for (uint j = 0; j < uklist.ChannelCount(); j++) 351 375 dvbChanNums[uklist.ServiceID(j)] = uklist.ChannelNumber(j); 352 376 } 377 378 desc = 379 MPEGDescriptor::Find(list, DescriptorID::default_authority); 380 381 defaultAuthorities[nit->TSID(i)] = (desc)? 382 QString::fromAscii((const char*)desc+2, desc[1]): 383 networkDefaultAuthority; 353 384 } 354 385 } 355 386 … … 361 392 emit TransportScanComplete(); 362 393 } 363 394 364 HandleDVBDBInsertion( GetDTVSignalMonitor()->GetScanStreamData(), true);395 HandleDVBDBInsertion(sd, true); 365 396 } 366 397 367 398 void SIScan::HandleMPEGDBInsertion(const ScanStreamData *sd, bool) … … 1616 1647 1617 1648 tuning.frequency = FindBestMplexFreq( 1618 1649 tuning.frequency, transport, (*transport).SourceID, tsid, netid); 1650 tuning.default_authority = defaultAuthorities[tsid]; 1619 1651 } 1620 1652 #endif // USING_DVB 1621 1653 -
bindings/perl/MythTV.pm
712 712 dtv_multiplex.polarity AS dtv_polarity, 713 713 dtv_multiplex.serviceversion AS dtv_serviceversion, 714 714 dtv_multiplex.sistandard AS dtv_sistandard, 715 dtv_multiplex.default_authority AS dtv_default_authority, 715 716 dtv_multiplex.sourceid AS dtv_sourceid, 716 717 dtv_multiplex.symbolrate AS dtv_symbolrate, 717 718 dtv_multiplex.transmission_mode AS dtv_transmission_mode,