From aed917161dda79ec6a53e20dbf0ee00a1affc4c0 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Mon, 27 Oct 2008 08:53:56 +0000 Subject: [PATCH] set pat/pmt timeout back to 20 seconds... to get rid of recordings without pat/pmt... but its a real mystery for me why 4 seconds isnt enough... --- lib/dvb/pmt.cpp | 6 +++--- lib/dvb/scan.cpp | 4 ++-- lib/dvb/specs.h | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index 39a2c3d7..c0447b47 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -50,9 +50,9 @@ void eDVBServicePMTHandler::channelStateChanged(iDVBChannel *channel) 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); @@ -135,7 +135,7 @@ void eDVBServicePMTHandler::PATready(int) 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); } diff --git a/lib/dvb/scan.cpp b/lib/dvb/scan.cpp index 2a08bf79..2457763a 100644 --- a/lib/dvb/scan.cpp +++ b/lib/dvb/scan.cpp @@ -205,7 +205,7 @@ RESULT eDVBScan::startFilter() if (m_ready_all & readyPAT) { m_PAT = new eTable(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); } @@ -376,7 +376,7 @@ void eDVBScan::PMTready(int err) } 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; diff --git a/lib/dvb/specs.h b/lib/dvb/specs.h index 514bc341..fdbaea1c 100644 --- a/lib/dvb/specs.h +++ b/lib/dvb/specs.h @@ -14,12 +14,12 @@ struct eDVBPMTSpec { 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; @@ -108,11 +108,11 @@ struct eDVBPATSpec { 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; -- 2.30.2