summaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.cpp
diff options
context:
space:
mode:
authorhschang <chang@dev3>2017-08-21 07:18:36 (GMT)
committerhschang <chang@dev3>2017-08-21 07:18:36 (GMT)
commit7963a66b2debe9cf6ae566cb88511fdfdc9dc216 (patch)
tree8ac4bb2338a409e8e62f71e5a4ceb5d94fba3b5a /lib/service/servicedvb.cpp
parentdd4c8249ef0b08234b6239da9bef26ed7e33ac78 (diff)
Add QuadPiP plugin.
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rwxr-xr-xlib/service/servicedvb.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 1494cc5..f740b47 100755
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -959,6 +959,10 @@ eDVBServicePlay::eDVBServicePlay(const eServiceReference &ref, eDVBService *serv
m_current_video_pid_type = 0;
+ m_qpip_mode = false;
+
+ m_play_audio = true;
+
CONNECT(m_subtitle_sync_timer->timeout, eDVBServicePlay::checkSubtitleTiming);
}
@@ -1963,7 +1967,7 @@ int eDVBServicePlay::selectAudioStream(int i)
m_current_audio_pid = apid;
- if (m_is_primary && m_decoder->setAudioPID(apid, apidtype))
+ if ((m_is_primary || (m_qpip_mode && m_play_audio)) && m_decoder->setAudioPID(apid, apidtype))
{
eDebug("set audio pid failed");
return -4;
@@ -2665,7 +2669,9 @@ void eDVBServicePlay::updateDecoder(bool sendSeekableStateChanged)
m_decoder->setVideoPID(vpid, vpidtype);
m_current_video_pid_type = vpidtype;
- selectAudioStream();
+
+ if (!m_qpip_mode || m_play_audio) // 1) no qpip mode, 2) qpip mode & play audio
+ selectAudioStream();
//if (!(m_is_pvr || m_is_stream || m_timeshift_active || !m_is_primary))
if (!(m_is_pvr || m_is_stream || m_timeshift_active))
@@ -3305,6 +3311,24 @@ PyObject *eDVBServicePlay::getStreamingData()
return r;
}
+void eDVBServicePlay::setQpipMode(bool value, bool audio)
+{
+ m_qpip_mode = value;
+ m_play_audio = audio;
+
+ if(m_decoder)
+ {
+ if (m_play_audio)
+ {
+ selectAudioStream();
+ }
+ else
+ {
+ m_decoder->setAudioPID(-1, -1);
+ }
+ m_decoder->set();
+ }
+}
DEFINE_REF(eDVBServicePlay)