aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-04-08 00:57:39 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-04-08 00:57:39 +0000
commit33ceea2a8e9afa4d3002724d2fe3f2fbe3909ea9 (patch)
treee6df5f9e477785ca8af016ff4858896027fc111f /lib
parent6ce3896800e92c0c51ebb72d86191f526af66971 (diff)
downloadenigma2-33ceea2a8e9afa4d3002724d2fe3f2fbe3909ea9.tar.gz
enigma2-33ceea2a8e9afa4d3002724d2fe3f2fbe3909ea9.zip
theoretic support for PiP (will be fixed)
Diffstat (limited to 'lib')
-rw-r--r--lib/service/servicedvb.cpp15
-rw-r--r--lib/service/servicedvb.h1
2 files changed, 14 insertions, 2 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 94c31b4f..38504467 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -568,6 +568,15 @@ RESULT eServiceFactoryDVB::lookupService(ePtr<eDVBService> &service, const eServ
eDVBServicePlay::eDVBServicePlay(const eServiceReference &ref, eDVBService *service):
m_reference(ref), m_dvb_service(service), m_is_paused(0)
{
+ m_is_primary = 1;
+ /* HACK!!! */
+ if (m_reference.path == "s")
+ {
+ m_reference.path = "";
+ ref.path = "";
+ m_is_primary = 0;
+ }
+
m_is_pvr = !ref.path.empty();
m_timeshift_enabled = m_timeshift_active = 0;
@@ -1524,7 +1533,7 @@ void eDVBServicePlay::updateDecoder()
{
h.getDecodeDemux(m_decode_demux);
if (m_decode_demux)
- m_decode_demux->getMPEGDecoder(m_decoder);
+ m_decode_demux->getMPEGDecoder(m_decoder, m_is_primary);
if (m_cue)
m_cue->setDecodingDemux(m_decode_demux, m_decoder);
}
@@ -1534,11 +1543,13 @@ void eDVBServicePlay::updateDecoder()
m_decoder->setVideoPID(vpid);
m_current_audio_stream = 0;
m_decoder->setAudioPID(apid, apidtype);
- if (!(m_is_pvr || m_timeshift_active))
+ if (!(m_is_pvr || m_timeshift_active || !m_is_primary))
m_decoder->setSyncPCR(pcrpid);
else
m_decoder->setSyncPCR(-1);
m_decoder->setTextPID(tpid);
+ if (!m_is_primary)
+ m_decoder->setTrickmode(1);
m_decoder->start();
// how we can do this better?
// update cache pid when the user changed the audio track or video track
diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h
index 39318b22..42896bfd 100644
--- a/lib/service/servicedvb.h
+++ b/lib/service/servicedvb.h
@@ -129,6 +129,7 @@ private:
ePtr<eDVBService> m_dvb_service;
ePtr<iTSMPEGDecoder> m_decoder;
+ int m_is_primary;
/* in timeshift mode, we essentially have two channels, and thus pmt handlers. */
eDVBServicePMTHandler m_service_handler, m_service_handler_timeshift;