summaryrefslogtreecommitdiff
path: root/src/lib/dcpomatic_time.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-07-28 17:53:27 +0100
committerCarl Hetherington <cth@carlh.net>2015-07-29 20:04:36 +0100
commita0d1dd5d91c81ec9907cbc7b890905c463c18f62 (patch)
tree3dc0b2e5b7e3a4e7da7d687c8713e0b461ce2aeb /src/lib/dcpomatic_time.h
parent2da067ce01a04964dd5d739ea695504517877507 (diff)
Replace Time::frames with Time::frames_round and Time::frames_floor.
I believe both are necessary; doing floor instead of round caused #648.
Diffstat (limited to 'src/lib/dcpomatic_time.h')
-rw-r--r--src/lib/dcpomatic_time.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/dcpomatic_time.h b/src/lib/dcpomatic_time.h
index 41339d128..c1d27407a 100644
--- a/src/lib/dcpomatic_time.h
+++ b/src/lib/dcpomatic_time.h
@@ -132,7 +132,12 @@ public:
}
template <typename T>
- int64_t frames (T r) const {
+ int64_t frames_round (T r) const {
+ return llrint (_t * r / HZ);
+ }
+
+ template <typename T>
+ int64_t frames_floor (T r) const {
return floor (_t * r / HZ);
}
@@ -143,7 +148,7 @@ public:
/* Do this calculation with frames so that we can round
to a frame boundary at the start rather than the end.
*/
- int64_t ff = frames (r);
+ int64_t ff = frames_round (r);
h = ff / (3600 * r);
ff -= h * 3600 * r;