diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2009-02-13 14:40:56 +0100 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2009-02-13 14:40:56 +0100 |
| commit | 5698c2b573e69c2e62ee8212893f620f0588c208 (patch) | |
| tree | ca7ce70925be8545b6a0842f9ce55d796621536f /lib | |
| parent | 8351aa6cc857d1113b38f34e9c2dbd3e47ec9ffa (diff) | |
| download | enigma2-5698c2b573e69c2e62ee8212893f620f0588c208.tar.gz enigma2-5698c2b573e69c2e62ee8212893f620f0588c208.zip | |
better fix for timeshift
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/dvb/pmt.cpp | 5 | ||||
| -rw-r--r-- | lib/service/servicedvb.cpp | 4 |
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 { |
