#include <stdint.h>
#include <cmath>
#include <ostream>
-#include <sstream>
#include <iomanip>
class dcpomatic_round_up_test;
* at some sampling rate.
* @param r Sampling rate.
*/
- Time<S, O> round_up (float r) {
- Type const n = rint (HZ / r);
+ Time<S, O> round_up (float r) const {
+ Type const n = llrintf (HZ / r);
Type const a = _t + n - 1;
return Time<S, O> (a - (a % n));
}
return floor (_t * r / HZ);
}
+ template <typename T>
+ int64_t frames_ceil (T r) const {
+ return ceil (_t * r / HZ);
+ }
+
/** @param r Frames per second */
template <typename T>
void split (T r, int& h, int& m, int& s, int& f) const
static Time<S, O> from_seconds (double s) {
- return Time<S, O> (rint (s * HZ));
+ return Time<S, O> (llrint (s * HZ));
}
template <class T>