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:
authorAlex Marsev <alex.marsev@gmail.com>2015-10-18 22:14:54 +0300
committerAlex Marsev <alex.marsev@gmail.com>2015-10-18 22:14:54 +0300
commitf7b10f7d9e58f80e44968ae02cf74c37d7513bcc (patch)
tree481910835d137e6c42b47ec1e602cc7fb99b46dc /src/MyClock.cpp
parentb6c69006040b4f119a297286f4290aae28c99877 (diff)
Reject guided reclock when it makes sense to
Diffstat (limited to 'src/MyClock.cpp')
-rw-r--r--src/MyClock.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/MyClock.cpp b/src/MyClock.cpp
index b10c971..e5ed900 100644
--- a/src/MyClock.cpp
+++ b/src/MyClock.cpp
@@ -24,6 +24,9 @@ namespace SaneAudioRenderer
{
CAutoLock lock(this);
+ if (m_guidedReclockSlaving && !CanDoGuidedReclock())
+ UnslaveClock();
+
if (m_guidedReclockSlaving)
{
auto getGuidedReclockTime = [this](int64_t counterTime)
@@ -132,6 +135,9 @@ namespace SaneAudioRenderer
{
CAutoLock lock(this);
+ if (!CanDoGuidedReclock())
+ return E_FAIL;
+
int64_t time;
ReturnIfFailed(GetTime(&time));
@@ -147,6 +153,9 @@ namespace SaneAudioRenderer
{
CAutoLock lock(this);
+ if (!m_guidedReclockSlaving)
+ return S_FALSE;
+
GetPrivateTime();
m_guidedReclockSlaving = false;
@@ -157,6 +166,9 @@ namespace SaneAudioRenderer
{
CAutoLock lock(this);
+ if (!CanDoGuidedReclock())
+ return E_FAIL;
+
m_audioOffset += offset;
m_counterOffset += offset;
m_guidedReclockStartClock += offset;
@@ -174,4 +186,11 @@ namespace SaneAudioRenderer
return S_OK;
}
+
+ bool MyClock::CanDoGuidedReclock()
+ {
+ return !m_renderer->IsBitstreaming() &&
+ !m_renderer->OnExternalClock() &&
+ !m_renderer->IsLive();
+ }
}