eDebug("ok ... now we start!!");
if (m_pmt_pid == -1)
- m_PAT.begin(eApp, eDVBPATSpec(), m_demux);
+ m_PAT.begin(eApp, eDVBPATSpec(m_reference.path.empty() ? false : true), m_demux);
else
- m_PMT.begin(eApp, eDVBPMTSpec(m_pmt_pid, m_reference.getServiceID().get()), m_demux);
+ m_PMT.begin(eApp, eDVBPMTSpec(m_pmt_pid, m_reference.getServiceID().get(), m_reference.path.empty() ? false : true), 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_demux);
+ m_PMT.begin(eApp, eDVBPMTSpec(pmtpid, m_reference.getServiceID().get(), m_reference.path.empty() ? false : true), m_demux);
} else
serviceEvent(eventNoPAT);
}
{
eDVBTableSpec m_spec;
public:
- eDVBPMTSpec(int pid, int sid)
+ eDVBPMTSpec(int pid, int sid, bool long_timeout = false)
{
m_spec.pid = pid;
m_spec.tid = ProgramMapSection::TID;
m_spec.tidext = sid;
- m_spec.timeout = 4000; // ProgramMapSection::TIMEOUT;
+ m_spec.timeout = long_timeout ? 20000 : 4000; // ProgramMapSection::TIMEOUT;
m_spec.flags = eDVBTableSpec::tfAnyVersion |
eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfHaveTIDExt |
eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout;
{
eDVBTableSpec m_spec;
public:
- eDVBPATSpec()
+ eDVBPATSpec(bool long_timeout=false)
{
m_spec.pid = ProgramAssociationSection::PID;
m_spec.tid = ProgramAssociationSection::TID;
- m_spec.timeout = 4000; // ProgramAssociationSection::TIMEOUT;
+ m_spec.timeout = long_timeout ? 20000 : 4000; // ProgramAssociationSection::TIMEOUT;
m_spec.flags = eDVBTableSpec::tfAnyVersion |
eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfCheckCRC |
eDVBTableSpec::tfHaveTimeout;