* at some sampling rate.
* @param r Sampling rate.
*/
- ContentTime round_up (int r) {
- int64_t const n = HZ / r;
+ ContentTime round_up (float r) {
+ int64_t const n = rint (HZ / r);
int64_t const a = _t + n - 1;
return ContentTime (a - (a % n));
}
-
static ContentTime from_seconds (double s) {
return ContentTime (s * HZ);
template <class T>
static ContentTime from_frames (int64_t f, T r) {
+ assert (r > 0);
return ContentTime (f * HZ / r);
}
+
+ static ContentTime max () {
+ return ContentTime (INT64_MAX);
+ }
};
std::ostream& operator<< (std::ostream& s, ContentTime t);
+class ContentTimePeriod
+{
+public:
+ ContentTimePeriod () {}
+ ContentTimePeriod (ContentTime f, ContentTime t)
+ : from (f)
+ , to (t)
+ {}
+
+ ContentTime from;
+ ContentTime to;
+
+ ContentTimePeriod operator+ (ContentTime const & o) const {
+ return ContentTimePeriod (from + o, to + o);
+ }
+};
+
class DCPTime : public Time
{
public:
return *this;
}
+ DCPTime operator- () const {
+ return DCPTime (-_t);
+ }
+
DCPTime operator- (DCPTime const & o) const {
return DCPTime (_t - o._t);
}
* at some sampling rate.
* @param r Sampling rate.
*/
- DCPTime round_up (int r) {
- int64_t const n = HZ / r;
+ DCPTime round_up (float r) {
+ int64_t const n = rint (HZ / r);
int64_t const a = _t + n - 1;
return DCPTime (a - (a % n));
}
template <class T>
static DCPTime from_frames (int64_t f, T r) {
+ assert (r > 0);
return DCPTime (f * HZ / r);
}