Index: chrome/renderer/media/cast_session_delegate.cc |
diff --git a/chrome/renderer/media/cast_session_delegate.cc b/chrome/renderer/media/cast_session_delegate.cc |
index 2bd43161d9ad70b6d057c5e522b735c1cd1c79a4..4544016890bfe3c071434f9e88f9a6ecd03ed27c 100644 |
--- a/chrome/renderer/media/cast_session_delegate.cc |
+++ b/chrome/renderer/media/cast_session_delegate.cc |
@@ -37,10 +37,20 @@ CastSessionDelegateBase::CastSessionDelegateBase() |
content::RenderThread::Get()->GetIOMessageLoopProxy()), |
weak_factory_(this) { |
DCHECK(io_task_runner_.get()); |
+#if defined(OS_WIN) |
+ // Note that this also increases the accuracy of PostDelayTask, |
+ // which is is very helpful to cast. |
+ if (!base::Time::ActivateHighResolutionTimer(true)) { |
+ LOG(WARNING) << "Failed to activate high resolution timers for cast."; |
+ } |
+#endif |
} |
CastSessionDelegateBase::~CastSessionDelegateBase() { |
DCHECK(io_task_runner_->BelongsToCurrentThread()); |
+#if defined(OS_WIN) |
+ base::Time::ActivateHighResolutionTimer(false); |
+#endif |
} |
void CastSessionDelegateBase::StartUDP( |