diff options
author | hschang <chang@dev3> | 2017-08-21 07:18:36 (GMT) |
---|---|---|
committer | hschang <chang@dev3> | 2017-08-21 07:18:36 (GMT) |
commit | 7963a66b2debe9cf6ae566cb88511fdfdc9dc216 (patch) | |
tree | 8ac4bb2338a409e8e62f71e5a4ceb5d94fba3b5a /lib/service/servicedvb.cpp | |
parent | dd4c8249ef0b08234b6239da9bef26ed7e33ac78 (diff) |
Add QuadPiP plugin.
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rwxr-xr-x | lib/service/servicedvb.cpp | 28 |
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) |