aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2009-05-10 14:04:45 +0200
committerFelix Domke <tmbinc@elitedvb.net>2009-05-10 14:04:45 +0200
commit946fb003e4be2e1485308d7fc5bb7274732751a3 (patch)
tree8cc44adc5dc7a7885632c410925e4e6d6c7d332d /lib/service/servicedvb.cpp
parenta012dfc95def3f4043f5b0bb319f1f4073592543 (diff)
parentd245191dd27ad9884c33ad3a76992dc6c4e8f33b (diff)
downloadenigma2-946fb003e4be2e1485308d7fc5bb7274732751a3.tar.gz
enigma2-946fb003e4be2e1485308d7fc5bb7274732751a3.zip
Merge branch 'master' of /home/tmbinc/enigma2-git
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rw-r--r--lib/service/servicedvb.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index c8442161..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);
@@ -2375,9 +2378,11 @@ void eDVBServicePlay::updateDecoder()
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)
;