diff -urNp mythtv/libs/libmythtv/siscan.cpp mythtv-12206-trunk.opacus2/libs/libmythtv/siscan.cpp --- mythtv/libs/libmythtv/siscan.cpp 2006-12-05 19:35:07.000000000 -0800 +++ mythtv-12206-trunk.opacus2/libs/libmythtv/siscan.cpp 2006-12-07 01:14:13.000000000 -0800 @@ -101,6 +101,7 @@ SIScan::SIScan(const QString &_cardtype, forceUpdate(false), renameChannels(false), channelFormat("%1_%2"), + dishNetSDT(true), // State threadExit(false), waitingForTables(false), @@ -122,7 +123,9 @@ SIScan::SIScan(const QString &_cardtype, dtvSigMon->SetStreamData(data); dtvSigMon->AddFlags(kDTVSigMon_WaitForMGT | kDTVSigMon_WaitForVCT | - kDTVSigMon_WaitForNIT | kDTVSigMon_WaitForSDT); + kDTVSigMon_WaitForNIT); + if(!dishNetSDT) + dtvSigMon->AddFlags(kDTVSigMon_WaitForSDT); data->AddMPEGListener(this); data->AddATSCMainListener(this); @@ -285,6 +288,17 @@ void SIScan::HandlePAT(const ProgramAsso if (pat->ProgramPID(i)) // don't add NIT "program", MPEG/ATSC safe. sd->AddListeningPID(pat->ProgramPID(i)); } + + // Force TSID for Dish Network + if(dishNetSDT) + { + DVBStreamData *sd = GetDVBSignalMonitor()->GetDVBStreamData(); + if (sd) + { + sd->SetDishNetTSID(pat->TransportStreamID()); + sd->AddListeningPID(DVB_SDT_PID); + } + } } void SIScan::HandleVCT(uint, const VirtualChannelTable*) diff -urNp mythtv/libs/libmythtv/siscan.h mythtv-12206-trunk.opacus2/libs/libmythtv/siscan.h --- mythtv/libs/libmythtv/siscan.h 2006-12-05 19:35:07.000000000 -0800 +++ mythtv-12206-trunk.opacus2/libs/libmythtv/siscan.h 2006-12-07 01:14:13.000000000 -0800 @@ -190,6 +190,7 @@ class SIScan : public QObject, bool forceUpdate; bool renameChannels; QString channelFormat; + bool dishNetSDT; // State bool threadExit;