aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/pmt.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-04-02 16:00:29 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-04-02 16:00:29 +0000
commit0b30e9845b60aae63e6d7e5b8e3a80bdfe4e4ad5 (patch)
treee5bbae5793103bdc29c661c29af3ee0fb8432377 /lib/dvb/pmt.cpp
parent1dd861585dd9f007a6902029de5951ee5cafa695 (diff)
downloadenigma2-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.cpp12
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;
}