set pat/pmt timeout back to 20 seconds... to get rid of recordings without
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 27 Oct 2008 08:53:56 +0000 (08:53 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 27 Oct 2008 08:53:56 +0000 (08:53 +0000)
pat/pmt... but its a real mystery for me why 4 seconds isnt enough...

lib/dvb/pmt.cpp
lib/dvb/scan.cpp
lib/dvb/specs.h

index 39a2c3d71ccc8a38ee0992264fb27a8ee97c5764..c0447b47f8f0aa527fbfb2afea24497d118222c3 100644 (file)
@@ -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);
 }
index 2a08bf79701d0ad7136683bfea48d95e3c6c010e..2457763ae1bd1047c53c6cb08449ef32aee5ac6c 100644 (file)
@@ -205,7 +205,7 @@ RESULT eDVBScan::startFilter()
                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);
                }
@@ -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;
index 514bc3416b11e3899c2df1bf02e915e700d7eeef..fdbaea1cfd71cef9fdb7e7aac80b8282020700ff 100644 (file)
@@ -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;