summaryrefslogtreecommitdiffstats
path: root/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp')
-rw-r--r--xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
index a7fb55c..247ad52 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
@@ -11,7 +11,9 @@
#include "ServiceBroker.h"
#include "cores/AudioEngine/AESinkFactory.h"
#include "cores/AudioEngine/Utils/AEUtil.h"
+#include "settings/AdvancedSettings.h"
#include "settings/Settings.h"
+#include "settings/SettingsComponent.h"
#include "utils/StringUtils.h"
#include "utils/TimeUtils.h"
#include "utils/log.h"
@@ -421,6 +423,9 @@ bool CAESinkAUDIOTRACK::Initialize(AEAudioFormat &format, std::string &device)
}
}
+ m_superviseAudioDelay =
+ CServiceBroker::GetSettingsComponent()->GetAdvancedSettings()->m_superviseAudioDelay;
+
int atChannelMask = AEChannelMapToAUDIOTRACKChannelMask(m_format.m_channelLayout);
m_format.m_channelLayout = AUDIOTRACKChannelMaskToAEChannelMap(atChannelMask);
if (m_encoding == CJNIAudioFormat::ENCODING_IEC61937)
@@ -848,7 +853,7 @@ unsigned int CAESinkAUDIOTRACK::AddPackets(uint8_t **data, unsigned int frames,
const double max_stuck_delay_ms = m_audiotrackbuffer_sec_orig * 2000.0;
const double stime_ms = 1000.0 * frames / m_format.m_sampleRate;
- if (m_stuckCounter * stime_ms > max_stuck_delay_ms)
+ if (m_superviseAudioDelay && (m_stuckCounter * stime_ms > max_stuck_delay_ms))
{
CLog::Log(LOGERROR, "Sink got stuck with {:f} ms - ask AE for reopening", max_stuck_delay_ms);
usleep(max_stuck_delay_ms * 1000);