diff options
author | Peter Frühberger <Peter.Fruehberger@gmail.com> | 2023-03-09 16:50:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-09 16:50:01 +0100 |
commit | 6de9250a3f672d3402d2c8b023a0a0a3a2711aaa (patch) | |
tree | 7b39b522a5735752e964036c9b240ab024e007fe | |
parent | 644cf0d7ba50778d1c203df2fa4c71d9ed77c328 (diff) | |
parent | bb178f79b0e26b12ee9682cf1d241ac2108607c2 (diff) | |
download | xbmc-6de9250a3f672d3402d2c8b023a0a0a3a2711aaa.tar.xz |
Merge pull request #22945 from fritsch/pausstop
ActiveAESink: workaround for TrueHD and DD+ broken after pause or seek in AudioTrack RAW (Android only)
-rw-r--r-- | xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp index 8f30ac9a93..477129f211 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp @@ -1156,10 +1156,20 @@ void CActiveAESink::SetSilenceTimer() { if (m_extStreaming) m_extSilenceTimeout = XbmcThreads::EndTime<decltype(m_extSilenceTimeout)>::Max(); - else if (m_extAppFocused) - m_extSilenceTimeout = m_silenceTimeOut; + else if (m_extAppFocused) // handles no playback/GUI and playback in pause and seek + { + // only true with AudioTrack RAW + passthrough + TrueHD or EAC3 (DD+) + const bool noSilenceOnPause = + !m_needIecPack && m_requestedFormat.m_dataFormat == AE_FMT_RAW && + (m_sinkFormat.m_streamInfo.m_type == CAEStreamInfo::STREAM_TYPE_TRUEHD || + m_sinkFormat.m_streamInfo.m_type == CAEStreamInfo::STREAM_TYPE_EAC3); + + m_extSilenceTimeout = (noSilenceOnPause) ? 0ms : m_silenceTimeOut; + } else + { m_extSilenceTimeout = 0ms; + } m_extSilenceTimer.Set(m_extSilenceTimeout); } |