Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(365)

Side by Side Diff: media/base/time_delta_interpolator.cc

Issue 2158923004: Convert media constants to constexpr. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/base/time_delta_interpolator.h" 5 #include "media/base/time_delta_interpolator.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/time/tick_clock.h" 12 #include "base/time/tick_clock.h"
13 #include "media/base/timestamp_constants.h" 13 #include "media/base/timestamp_constants.h"
14 14
15 namespace media { 15 namespace media {
16 16
17 TimeDeltaInterpolator::TimeDeltaInterpolator(base::TickClock* tick_clock) 17 TimeDeltaInterpolator::TimeDeltaInterpolator(base::TickClock* tick_clock)
18 : tick_clock_(tick_clock), 18 : tick_clock_(tick_clock),
19 interpolating_(false), 19 interpolating_(false),
20 upper_bound_(kNoTimestamp()), 20 upper_bound_(kNoTimestamp),
21 playback_rate_(1.0) { 21 playback_rate_(1.0) {
22 DCHECK(tick_clock_); 22 DCHECK(tick_clock_);
23 } 23 }
24 24
25 TimeDeltaInterpolator::~TimeDeltaInterpolator() { 25 TimeDeltaInterpolator::~TimeDeltaInterpolator() {
26 } 26 }
27 27
28 base::TimeDelta TimeDeltaInterpolator::StartInterpolating() { 28 base::TimeDelta TimeDeltaInterpolator::StartInterpolating() {
29 DCHECK(!interpolating_); 29 DCHECK(!interpolating_);
30 reference_ = tick_clock_->NowTicks(); 30 reference_ = tick_clock_->NowTicks();
(...skipping 10 matching lines...) Expand all
41 41
42 void TimeDeltaInterpolator::SetPlaybackRate(double playback_rate) { 42 void TimeDeltaInterpolator::SetPlaybackRate(double playback_rate) {
43 lower_bound_ = GetInterpolatedTime(); 43 lower_bound_ = GetInterpolatedTime();
44 reference_ = tick_clock_->NowTicks(); 44 reference_ = tick_clock_->NowTicks();
45 playback_rate_ = playback_rate; 45 playback_rate_ = playback_rate;
46 } 46 }
47 47
48 void TimeDeltaInterpolator::SetBounds(base::TimeDelta lower_bound, 48 void TimeDeltaInterpolator::SetBounds(base::TimeDelta lower_bound,
49 base::TimeDelta upper_bound) { 49 base::TimeDelta upper_bound) {
50 DCHECK(lower_bound <= upper_bound); 50 DCHECK(lower_bound <= upper_bound);
51 DCHECK(lower_bound != kNoTimestamp()); 51 DCHECK(lower_bound != kNoTimestamp);
52 52
53 lower_bound_ = std::max(base::TimeDelta(), lower_bound); 53 lower_bound_ = std::max(base::TimeDelta(), lower_bound);
54 upper_bound_ = std::max(base::TimeDelta(), upper_bound); 54 upper_bound_ = std::max(base::TimeDelta(), upper_bound);
55 reference_ = tick_clock_->NowTicks(); 55 reference_ = tick_clock_->NowTicks();
56 } 56 }
57 57
58 void TimeDeltaInterpolator::SetUpperBound(base::TimeDelta upper_bound) { 58 void TimeDeltaInterpolator::SetUpperBound(base::TimeDelta upper_bound) {
59 DCHECK(upper_bound != kNoTimestamp()); 59 DCHECK(upper_bound != kNoTimestamp);
60 60
61 lower_bound_ = GetInterpolatedTime(); 61 lower_bound_ = GetInterpolatedTime();
62 reference_ = tick_clock_->NowTicks(); 62 reference_ = tick_clock_->NowTicks();
63 upper_bound_ = upper_bound; 63 upper_bound_ = upper_bound;
64 } 64 }
65 65
66 base::TimeDelta TimeDeltaInterpolator::GetInterpolatedTime() { 66 base::TimeDelta TimeDeltaInterpolator::GetInterpolatedTime() {
67 if (!interpolating_) 67 if (!interpolating_)
68 return lower_bound_; 68 return lower_bound_;
69 69
70 int64_t now_us = (tick_clock_->NowTicks() - reference_).InMicroseconds(); 70 int64_t now_us = (tick_clock_->NowTicks() - reference_).InMicroseconds();
71 now_us = static_cast<int64_t>(now_us * playback_rate_); 71 now_us = static_cast<int64_t>(now_us * playback_rate_);
72 base::TimeDelta interpolated_time = 72 base::TimeDelta interpolated_time =
73 lower_bound_ + base::TimeDelta::FromMicroseconds(now_us); 73 lower_bound_ + base::TimeDelta::FromMicroseconds(now_us);
74 74
75 if (upper_bound_ == kNoTimestamp()) 75 if (upper_bound_ == kNoTimestamp)
76 return interpolated_time; 76 return interpolated_time;
77 77
78 return std::min(interpolated_time, upper_bound_); 78 return std::min(interpolated_time, upper_bound_);
79 } 79 }
80 80
81 } // namespace media 81 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698