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

Unified Diff: mojo/services/media/common/cpp/timeline_rate.h

Issue 1986303002: Motown: Use new TimelineTransform and related definitions (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: mojo/services/media/common/cpp/timeline_rate.h
diff --git a/mojo/services/media/common/cpp/timeline_rate.h b/mojo/services/media/common/cpp/timeline_rate.h
index 7aa021622b0b09e04e1381d497c7ab5239ca256b..05576cdb8d258559f9d646ad87e9ec2072eede8a 100644
--- a/mojo/services/media/common/cpp/timeline_rate.h
+++ b/mojo/services/media/common/cpp/timeline_rate.h
@@ -62,6 +62,18 @@ class TimelineRate {
explicit TimelineRate(uint32_t subject_delta)
: subject_delta_(subject_delta), reference_delta_(1) {}
+ explicit TimelineRate(float rate_as_float)
+ : subject_delta_(
+ rate_as_float > 1.0f
+ ? kFloatFactor
+ : static_cast<uint32_t>(kFloatFactor * rate_as_float)),
kulakowski 2016/05/24 13:57:24 This kFloatFactor feels a bit opaque.
dalesat 2016/05/24 18:09:15 Added comments.
+ reference_delta_(
+ rate_as_float > 1.0f
+ ? static_cast<uint32_t>(kFloatFactor / rate_as_float)
+ : kFloatFactor) {
+ Reduce(&subject_delta_, &reference_delta_);
+ }
+
TimelineRate(uint32_t subject_delta, uint32_t reference_delta)
: subject_delta_(subject_delta), reference_delta_(reference_delta) {
MOJO_DCHECK(reference_delta != 0);
@@ -84,6 +96,8 @@ class TimelineRate {
uint32_t reference_delta() const { return reference_delta_; }
private:
+ static constexpr uint32_t kFloatFactor = 1ul << 23;
+
uint32_t subject_delta_;
uint32_t reference_delta_;
};

Powered by Google App Engine
This is Rietveld 408576698