aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-10-01 11:29:26 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-10-01 11:29:26 +0000
commit2257bf78a5ea5aba595fb59dc6f4af409e179146 (patch)
treea693b6b1783e08e43ef286bf48fd35d34fa34ffa /lib
parentc2065c013a7cd519374f5179ea71a3416cea9a3f (diff)
downloadenigma2-2257bf78a5ea5aba595fb59dc6f4af409e179146.tar.gz
enigma2-2257bf78a5ea5aba595fb59dc6f4af409e179146.zip
add long pat/pmt timeout on ts playback
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/pmt.cpp6
-rw-r--r--lib/dvb/specs.h8
2 files changed, 7 insertions, 7 deletions
diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp
index 4047be5c..5fb1e9ee 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_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);
@@ -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_demux);
+ m_PMT.begin(eApp, eDVBPMTSpec(pmtpid, m_reference.getServiceID().get(), m_reference.path.empty() ? false : true), m_demux);
} else
serviceEvent(eventNoPAT);
}
diff --git a/lib/dvb/specs.h b/lib/dvb/specs.h
index c53a23b5..514bc341 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)
+ 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;
@@ -108,11 +108,11 @@ struct eDVBPATSpec
{
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;