Ticket #1485: dvb_scanning_fixes.diff
File dvb_scanning_fixes.diff, 1.9 KB (added by , 18 years ago) |
---|
-
libs/libmythtv/siscan.cpp
old new 223 223 // Add pmts to list, so we can do MPEG scan properly. 224 224 ScanStreamData *sd = GetDTVSignalMonitor()->GetScanStreamData(); 225 225 for (uint i = 0; i < pat->ProgramCount(); i++) 226 sd->AddListeningPID(pat->ProgramPID(i)); 226 { 227 if(pat->ProgramPID(i) != 0) 228 sd->AddListeningPID(pat->ProgramPID(i)); 229 } 230 waitingForTables = true; 227 231 } 228 232 229 233 void SIScan::HandleVCT(uint, const VirtualChannelTable*) … … 249 253 .arg((*current).FriendlyName)); 250 254 VERBOSE(VB_SIPARSER, LOC + sdt->toString()); 251 255 252 HandleDVBDBInsertion(GetDTVSignalMonitor()->GetScanStreamData(), true); 256 if (GetDTVSignalMonitor()->GetScanStreamData()->HasCachedAllNIT()) 257 { 258 HandleDVBDBInsertion(GetDTVSignalMonitor()->GetScanStreamData(), true); 259 waitingForTables = false; 260 } 253 261 } 254 262 255 263 void SIScan::HandleNIT(const NetworkInformationTable *nit) … … 301 309 emit TransportScanComplete(); 302 310 } 303 311 304 HandleDVBDBInsertion(GetDTVSignalMonitor()->GetScanStreamData(), true); 312 if (GetDTVSignalMonitor()->GetScanStreamData()->HasCachedSDT()) 313 { 314 HandleDVBDBInsertion(GetDTVSignalMonitor()->GetScanStreamData(), true); 315 waitingForTables = false; 316 } 305 317 } 306 318 307 319 void SIScan::HandleMPEGDBInsertion(const ScanStreamData *sd, bool) … … 322 334 if (scanMode == TRANSPORT_LIST) 323 335 { 324 336 UpdateScanPercentCompleted(); 325 waitingForTables = false;326 337 nextIt = current.nextTransport(); 327 338 } 328 339 } … … 379 390 if (scanMode == TRANSPORT_LIST) 380 391 { 381 392 UpdateScanPercentCompleted(); 382 waitingForTables = false;383 393 nextIt = current.nextTransport(); 384 394 } 385 395 else