Ticket #2006: 2006-dbg-v2.patch

File 2006-dbg-v2.patch, 3.0 KB (added by danielk, 18 years ago)

updated version of patch

  • libs/libmythtv/dvbrecorder.cpp

     
    427427    QMutexLocker change_lock(&_pid_lock);
    428428
    429429    if (!_input_pat || !_input_pmt)
     430    {
     431        VERBOSE(VB_RECORD, LOC + "AdjustFilters() " +
     432                QString("pat(%1) pmt(%2)")
     433                .arg((bool)_input_pat).arg((bool)_input_pmt));
     434
    430435        return false;
     436    }
    431437
     438    VERBOSE(VB_RECORD, LOC + "AdjustFilters() 1");
     439
    432440    uint_vec_t add_pid, add_stream_type;
    433441
    434442    add_pid.push_back(MPEG_PAT_PID);
    435443    add_stream_type.push_back(StreamID::PrivSec);
    436444    _stream_data->AddListeningPID(MPEG_PAT_PID);
    437445
     446    VERBOSE(VB_RECORD, LOC + "AdjustFilters() 2");
     447
    438448    for (uint i = 0; i < _input_pat->ProgramCount(); i++)
    439449    {
    440450        add_pid.push_back(_input_pat->ProgramPID(i));
     
    442452        _stream_data->AddListeningPID(_input_pat->ProgramPID(i));
    443453    }
    444454
     455    VERBOSE(VB_RECORD, LOC + "AdjustFilters() 3");
     456
    445457    // Record the streams in the PMT...
    446458    bool need_pcr_pid = true;
    447459    for (uint i = 0; i < _input_pmt->StreamCount(); i++)
     
    452464        _stream_data->AddWritingPID(_input_pmt->StreamPID(i));
    453465    }
    454466
     467    VERBOSE(VB_RECORD, LOC + "AdjustFilters() 4");
     468
    455469    if (need_pcr_pid && (_input_pmt->PCRPID()))
    456470    {
    457471        add_pid.push_back(_input_pmt->PCRPID());
     
    459473        _stream_data->AddWritingPID(_input_pmt->PCRPID());
    460474    }
    461475
     476    VERBOSE(VB_RECORD, LOC + "AdjustFilters() 5");
     477
    462478    // Adjust for EIT
    463479    AdjustEITPIDs();
    464480    for (uint i = 0; i < _eit_pids.size(); i++)
     
    468484        _stream_data->AddListeningPID(_eit_pids[i]);
    469485    }
    470486
     487    VERBOSE(VB_RECORD, LOC + "AdjustFilters() 6");
     488
    471489    // Delete filters for pids we no longer wish to monitor
    472490    PIDInfoMap::iterator it   = _pid_infos.begin();
    473491    PIDInfoMap::iterator next = it;
     
    477495
    478496        if (find(add_pid.begin(), add_pid.end(), it.key()) == add_pid.end())
    479497        {
     498            VERBOSE(VB_RECORD, LOC + "Removing pid " +
     499                    QString("0x%1").arg(it.key(),0,16));
     500
    480501            _stream_data->RemoveListeningPID(it.key());
    481502            _stream_data->RemoveWritingPID(it.key());
    482503            (*it)->Close();
     
    485506        }
    486507    }
    487508
     509    VERBOSE(VB_RECORD, LOC + "AdjustFilters() 7");
     510
    488511    // Add or adjust filters for pids we wish to monitor
    489512    for (uint i = 0; i < add_pid.size(); i++)
    490513        OpenFilter(add_pid[i], DMX_PES_OTHER, add_stream_type[i]);
    491514
    492515
     516    VERBOSE(VB_RECORD, LOC + "AdjustFilters() 8");
     517
    493518    // [Re]start dummy video
    494519    StopDummyVideo();
     520
     521    VERBOSE(VB_RECORD, LOC + "AdjustFilters() 9");
     522
    495523    StartDummyVideo();
    496524
     525    VERBOSE(VB_RECORD, LOC + "AdjustFilters() A");
     526
    497527    // Report if there are no PIDs..
    498528    if (_pid_infos.empty())
    499529    {       
     
    502532        return false;
    503533    }
    504534
     535    VERBOSE(VB_RECORD, LOC + "AdjustFilters() B");
     536
    505537    return true;
    506538}
    507539