Ticket #1485: dvb_scanning_fixes.diff

File dvb_scanning_fixes.diff, 1.9 KB (added by Stuart Auchterlonie, 15 years ago)

scanning fixes, utilizing all the other fixes

  • libs/libmythtv/siscan.cpp

    old new  
    223223    // Add pmts to list, so we can do MPEG scan properly.
    224224    ScanStreamData *sd = GetDTVSignalMonitor()->GetScanStreamData();
    225225    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;
    227231}
    228232
    229233void SIScan::HandleVCT(uint, const VirtualChannelTable*)
     
    249253            .arg((*current).FriendlyName));
    250254    VERBOSE(VB_SIPARSER, LOC + sdt->toString());
    251255
    252     HandleDVBDBInsertion(GetDTVSignalMonitor()->GetScanStreamData(), true);
     256    if (GetDTVSignalMonitor()->GetScanStreamData()->HasCachedAllNIT())
     257    {
     258        HandleDVBDBInsertion(GetDTVSignalMonitor()->GetScanStreamData(), true);
     259        waitingForTables = false;
     260    }
    253261}
    254262
    255263void SIScan::HandleNIT(const NetworkInformationTable *nit)
     
    301309        emit TransportScanComplete();
    302310    }
    303311
    304     HandleDVBDBInsertion(GetDTVSignalMonitor()->GetScanStreamData(), true);
     312    if (GetDTVSignalMonitor()->GetScanStreamData()->HasCachedSDT())
     313    {
     314        HandleDVBDBInsertion(GetDTVSignalMonitor()->GetScanStreamData(), true);
     315        waitingForTables = false;
     316    }
    305317}
    306318
    307319void SIScan::HandleMPEGDBInsertion(const ScanStreamData *sd, bool)
     
    322334    if (scanMode == TRANSPORT_LIST)
    323335    {
    324336        UpdateScanPercentCompleted();
    325         waitingForTables = false;
    326337        nextIt = current.nextTransport();
    327338    }
    328339}
     
    379390    if (scanMode == TRANSPORT_LIST)
    380391    {
    381392        UpdateScanPercentCompleted();
    382         waitingForTables = false;
    383393        nextIt = current.nextTransport();
    384394    }
    385395    else