summaryrefslogtreecommitdiffstats
path: root/media/base/clock_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'media/base/clock_impl.cc')
-rw-r--r--media/base/clock_impl.cc14
1 files changed, 10 insertions, 4 deletions
diff --git a/media/base/clock_impl.cc b/media/base/clock_impl.cc
index 6744f09..4b38eb81 100644
--- a/media/base/clock_impl.cc
+++ b/media/base/clock_impl.cc
@@ -19,7 +19,7 @@ ClockImpl::~ClockImpl() {
base::TimeDelta ClockImpl::Play() {
DCHECK(!playing_);
- reference_ = time_provider_();
+ reference_ = GetTimeFromProvider();
playing_ = true;
return media_time_;
}
@@ -38,14 +38,14 @@ void ClockImpl::SetTime(const base::TimeDelta& time) {
return;
}
if (playing_) {
- reference_ = time_provider_();
+ reference_ = GetTimeFromProvider();
}
media_time_ = time;
}
void ClockImpl::SetPlaybackRate(float playback_rate) {
if (playing_) {
- base::Time time = time_provider_();
+ base::Time time = GetTimeFromProvider();
media_time_ = ElapsedViaProvidedTime(time);
reference_ = time;
}
@@ -56,7 +56,7 @@ base::TimeDelta ClockImpl::Elapsed() const {
if (!playing_) {
return media_time_;
}
- return ElapsedViaProvidedTime(time_provider_());
+ return ElapsedViaProvidedTime(GetTimeFromProvider());
}
base::TimeDelta ClockImpl::ElapsedViaProvidedTime(
@@ -67,4 +67,10 @@ base::TimeDelta ClockImpl::ElapsedViaProvidedTime(
return media_time_ + base::TimeDelta::FromMicroseconds(now_us);
}
+base::Time ClockImpl::GetTimeFromProvider() const {
+ if (time_provider_) {
+ return time_provider_();
+ }
+ return base::Time();
+}
} // namespace media