Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/sanear.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/AudioRenderer.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/AudioRenderer.cpp b/src/AudioRenderer.cpp
index 5df133a..04ba0c9 100644
--- a/src/AudioRenderer.cpp
+++ b/src/AudioRenderer.cpp
@@ -457,6 +457,23 @@ namespace SaneAudioRenderer
if (m_device)
{
+ // Try to minimize clock slaving initial jitter.
+ {
+ REFERENCE_TIME clockTime;
+ m_myClock.GetImmediateTime(&clockTime);
+
+ if (!m_device->IsExclusive())
+ clockTime += m_device->GetStreamLatency();
+
+ int64_t sleepTime = llMulDiv(m_startTime + m_startClockOffset - clockTime, 1000, OneSecond, 0);
+
+ if (sleepTime > 0 && sleepTime < 200)
+ {
+ TimePeriodHelper timePeriodHelper(1);
+ Sleep((DWORD)sleepTime);
+ }
+ }
+
m_guidedReclockOffset = 0;
m_myClock.SlaveClockToAudio(m_device->GetClock(), m_startTime + m_startClockOffset);
m_clockCorrection = 0;