diff options
author | thexai <58434170+thexai@users.noreply.github.com> | 2023-01-03 10:10:54 +0100 |
---|---|---|
committer | fritsch <Peter.Fruehberger@gmail.com> | 2023-03-09 06:47:44 +0100 |
commit | bb178f79b0e26b12ee9682cf1d241ac2108607c2 (patch) | |
tree | 7b39b522a5735752e964036c9b240ab024e007fe | |
parent | 644cf0d7ba50778d1c203df2fa4c71d9ed77c328 (diff) | |
download | xbmc-bb178f79b0e26b12ee9682cf1d241ac2108607c2.tar.xz |
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); } |