aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.cpp
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-05-08 16:34:39 +0200
committerghost <andreas.monzner@multimedia-labs.de>2009-05-08 16:34:39 +0200
commitd245191dd27ad9884c33ad3a76992dc6c4e8f33b (patch)
tree79b212208e1b9e55108846b205c855b292ac533b /lib/service/servicedvb.cpp
parent53308f5235c4c6cc0eb263709ff0336a86207882 (diff)
downloadenigma2-d245191dd27ad9884c33ad3a76992dc6c4e8f33b.tar.gz
enigma2-d245191dd27ad9884c33ad3a76992dc6c4e8f33b.zip
do some things just on primary decoder
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rw-r--r--lib/service/servicedvb.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index baebcde8..45a12ce2 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -1737,7 +1737,7 @@ int eDVBServicePlay::selectAudioStream(int i)
m_current_audio_pid = apid;
- if (m_decoder->setAudioPID(apid, apidtype))
+ if (m_is_primary && m_decoder->setAudioPID(apid, apidtype))
{
eDebug("set audio pid failed");
return -4;
@@ -2307,6 +2307,9 @@ void eDVBServicePlay::updateDecoder()
m_decode_demux->getMPEGDecoder(m_decoder, m_is_primary);
if (m_decoder)
m_decoder->connectVideoEvent(slot(*this, &eDVBServicePlay::video_event), m_video_event_connection);
+ }
+ if (m_decode_demux && m_is_primary)
+ {
m_teletext_parser = new eDVBTeletextParser(m_decode_demux);
m_teletext_parser->connectNewPage(slot(*this, &eDVBServicePlay::newSubtitlePage), m_new_subtitle_page_connection);
m_subtitle_parser = new eDVBSubtitleParser(m_decode_demux);
@@ -2370,14 +2373,16 @@ void eDVBServicePlay::updateDecoder()
m_decoder->setVideoPID(vpid, vpidtype);
selectAudioStream();
- if (!(m_is_pvr || m_timeshift_active /*|| !m_is_primary*/))
+ if (!(m_is_pvr || m_timeshift_active || !m_is_primary))
m_decoder->setSyncPCR(pcrpid);
else
m_decoder->setSyncPCR(-1);
- m_decoder->setTextPID(tpid);
-
- m_teletext_parser->start(program.textPid);
+ if (m_is_primary)
+ {
+ m_decoder->setTextPID(tpid);
+ m_teletext_parser->start(program.textPid);
+ }
if (vpid > 0 && vpid < 0x2000)
;