pat/pmt... but its a real mystery for me why 4 seconds isnt enough...
eDebug("ok ... now we start!!");
if (m_pmt_pid == -1)
- m_PAT.begin(eApp, eDVBPATSpec(m_reference.path.empty() ? false : true), m_demux);
+ m_PAT.begin(eApp, eDVBPATSpec(), m_demux);
else
- m_PMT.begin(eApp, eDVBPMTSpec(m_pmt_pid, m_reference.getServiceID().get(), m_reference.path.empty() ? false : true), m_demux);
+ m_PMT.begin(eApp, eDVBPMTSpec(m_pmt_pid, m_reference.getServiceID().get()), m_demux);
if ( m_service && !m_service->cacheEmpty() )
serviceEvent(eventNewProgramInfo);
if (pmtpid == -1)
serviceEvent(eventNoPATEntry);
else
- m_PMT.begin(eApp, eDVBPMTSpec(pmtpid, m_reference.getServiceID().get(), m_reference.path.empty() ? false : true), m_demux);
+ m_PMT.begin(eApp, eDVBPMTSpec(pmtpid, m_reference.getServiceID().get()), m_demux);
} else
serviceEvent(eventNoPAT);
}
if (m_ready_all & readyPAT)
{
m_PAT = new eTable<ProgramAssociationSection>(m_scan_debug);
- if (m_PAT->start(m_demux, eDVBPATSpec()))
+ if (m_PAT->start(m_demux, eDVBPATSpec(4000)))
return -1;
CONNECT(m_PAT->tableReady, eDVBScan::PATready);
}
}
if (m_pmt_in_progress != m_pmts_to_read.end())
- m_PMT->start(m_demux, eDVBPMTSpec(m_pmt_in_progress->second.pmtPid, m_pmt_in_progress->first));
+ m_PMT->start(m_demux, eDVBPMTSpec(m_pmt_in_progress->second.pmtPid, m_pmt_in_progress->first, 4000));
else
{
m_PMT = 0;
{
eDVBTableSpec m_spec;
public:
- eDVBPMTSpec(int pid, int sid, bool long_timeout = false)
+ eDVBPMTSpec(int pid, int sid, int timeout = 20000)
{
m_spec.pid = pid;
m_spec.tid = ProgramMapSection::TID;
m_spec.tidext = sid;
- m_spec.timeout = long_timeout ? 20000 : 4000; // ProgramMapSection::TIMEOUT;
+ m_spec.timeout = timeout; // ProgramMapSection::TIMEOUT;
m_spec.flags = eDVBTableSpec::tfAnyVersion |
eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfHaveTIDExt |
eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout;
{
eDVBTableSpec m_spec;
public:
- eDVBPATSpec(bool long_timeout=false)
+ eDVBPATSpec(int timeout=20000)
{
m_spec.pid = ProgramAssociationSection::PID;
m_spec.tid = ProgramAssociationSection::TID;
- m_spec.timeout = long_timeout ? 20000 : 4000; // ProgramAssociationSection::TIMEOUT;
+ m_spec.timeout = timeout; // ProgramAssociationSection::TIMEOUT;
m_spec.flags = eDVBTableSpec::tfAnyVersion |
eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfCheckCRC |
eDVBTableSpec::tfHaveTimeout;