diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-04-02 16:00:29 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-04-02 16:00:29 +0000 |
| commit | 0b30e9845b60aae63e6d7e5b8e3a80bdfe4e4ad5 (patch) | |
| tree | e5bbae5793103bdc29c661c29af3ee0fb8432377 /lib/dvb/pmt.cpp | |
| parent | 1dd861585dd9f007a6902029de5951ee5cafa695 (diff) | |
| download | enigma2-0b30e9845b60aae63e6d7e5b8e3a80bdfe4e4ad5.tar.gz enigma2-0b30e9845b60aae63e6d7e5b8e3a80bdfe4e4ad5.zip | |
much faster service change on same transponder (just FTA)
add ability to "zapto" and "record" services and use just cached pids (no use of PMT) ( no playback yet !!!! )
this is implemented likewise to enigma1
Example entry in lamedb:
6dca:00c00000:044d:0001:1:0
Das Erste
p:ARD,c:000065,c:010066,c:020068,c:030065,f:4
p: is the provider name
c:XXPPPP: are cached pids
00 is the video pid
01 is the audio pid
02 is the text pid
03 is the pcr pid
f: is a flag bitmask
bit 3 (decimal 4) is used for disable use of the pmt (just use cached pids)
Diffstat (limited to 'lib/dvb/pmt.cpp')
| -rw-r--r-- | lib/dvb/pmt.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index f23696b0..679d7a8f 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -145,7 +145,7 @@ int eDVBServicePMTHandler::getProgramInfo(struct program &program) program.pmtPid = -1; program.textPid = -1; - if (!m_PMT.getCurrent(ptr)) + if ( ((m_service && m_service->usePMT()) || !m_service) && !m_PMT.getCurrent(ptr)) { int cached_apid_ac3 = -1; int cached_apid_mpeg = -1; @@ -413,7 +413,11 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, eDebug("allocatePVRChannel failed!\n"); m_channel = m_pvr_channel; } - + + ePtr<iDVBChannelList> db; + if (!m_resourceManager->getChannelList(db)) + db->getService((eServiceReferenceDVB&)m_reference, m_service); + if (m_channel) { m_channel->connectStateChange( @@ -437,10 +441,6 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, m_pvr_channel->playFile(ref.path.c_str()); } - ePtr<iDVBChannelList> db; - if (!m_resourceManager->getChannelList(db)) - db->getService((eServiceReferenceDVB&)m_reference, m_service); - return res; } |
