aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2009-02-13 14:40:56 +0100
committerFelix Domke <tmbinc@elitedvb.net>2009-02-13 14:40:56 +0100
commit5698c2b573e69c2e62ee8212893f620f0588c208 (patch)
treeca7ce70925be8545b6a0842f9ce55d796621536f /lib
parent8351aa6cc857d1113b38f34e9c2dbd3e47ec9ffa (diff)
downloadenigma2-5698c2b573e69c2e62ee8212893f620f0588c208.tar.gz
enigma2-5698c2b573e69c2e62ee8212893f620f0588c208.zip
better fix for timeshift
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/pmt.cpp5
-rw-r--r--lib/service/servicedvb.cpp4
2 files changed, 6 insertions, 3 deletions
diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp
index 279ec74f..0198c8f7 100644
--- a/lib/dvb/pmt.cpp
+++ b/lib/dvb/pmt.cpp
@@ -605,12 +605,15 @@ void eDVBServicePMTHandler::SDTScanEvent(int event)
}
}
-int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *cue, bool simulate)
+int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *cue, bool simulate, eDVBService *service)
{
RESULT res=0;
m_reference = ref;
m_use_decode_demux = use_decode_demux;
+
+ /* use given service as backup. This is used for timeshift where we want to clone the live stream using the cache, but in fact have a PVR channel */
+ m_service = service;
/* is this a normal (non PVR) channel? */
if (ref.path.empty())
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 4773d097..8a609095 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -2189,7 +2189,7 @@ void eDVBServicePlay::switchToTimeshift()
r.path = m_timeshift_file;
m_cue = new eCueSheet();
- m_service_handler_timeshift.tune(r, 1, m_cue); /* use the decoder demux for everything */
+ m_service_handler_timeshift.tune(r, 1, m_cue, 0, m_dvb_service); /* use the decoder demux for everything */
eDebug("eDVBServicePlay::switchToTimeshift, in pause mode now.");
pause();
@@ -2205,7 +2205,7 @@ void eDVBServicePlay::updateDecoder()
eDVBServicePMTHandler &h = m_timeshift_active ? m_service_handler_timeshift : m_service_handler;
eDVBServicePMTHandler::program program;
- if (h.getProgramInfo(program) && m_service_handler.getProgramInfo(program))
+ if (h.getProgramInfo(program))
eDebug("getting program info failed.");
else
{