diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-04-08 00:57:39 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-04-08 00:57:39 +0000 |
| commit | 33ceea2a8e9afa4d3002724d2fe3f2fbe3909ea9 (patch) | |
| tree | e6df5f9e477785ca8af016ff4858896027fc111f /lib | |
| parent | 6ce3896800e92c0c51ebb72d86191f526af66971 (diff) | |
| download | enigma2-33ceea2a8e9afa4d3002724d2fe3f2fbe3909ea9.tar.gz enigma2-33ceea2a8e9afa4d3002724d2fe3f2fbe3909ea9.zip | |
theoretic support for PiP (will be fixed)
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/service/servicedvb.cpp | 15 | ||||
| -rw-r--r-- | lib/service/servicedvb.h | 1 |
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; |
