diff --git a/src/backend/engine/engine-config.cpp b/src/backend/engine/engine-config.cpp index 93b10528f..0ac316e70 100644 --- a/src/backend/engine/engine-config.cpp +++ b/src/backend/engine/engine-config.cpp @@ -45,7 +45,7 @@ namespace engine { const rational ONE_THIRD(1,3); const rational EIGHTY_PERCENT(8,10); - const Duration DEFAULT_ENGINE_LATENCY = EIGHTY_PERCENT * Duration(1, FrameRate::PAL); + const Duration DEFAULT_ENGINE_LATENCY = EIGHTY_PERCENT * Duration(1, FrameRate{25}); ///////TODO: shouldn't be hard wired and shouldn't be calculated in static/global init const Duration DEFAULT_JOB_PLANNING_TURNOVER(FSecs(3,2)); }//(End)hard wired settings diff --git a/src/lib/time/time.cpp b/src/lib/time/time.cpp index 657e09cda..9063f5d82 100644 --- a/src/lib/time/time.cpp +++ b/src/lib/time/time.cpp @@ -213,10 +213,11 @@ namespace time { + /** @internal stretch offset by a possibly fractional factor, and quantise into raw (micro tick) grid */ Offset - operator* (boost::rational factor, Offset const& o) + Offset::stretchedByRationalFactor (boost::rational factor) const { - boost::rational distance (_raw(o)); + boost::rational distance (this->t_); distance *= factor; gavl_time_t microTicks = floordiv (distance.numerator(), distance.denominator()); return Offset(TimeValue(microTicks)); diff --git a/src/lib/time/timevalue.hpp b/src/lib/time/timevalue.hpp index ed5ba97f1..dab10a4ac 100644 --- a/src/lib/time/timevalue.hpp +++ b/src/lib/time/timevalue.hpp @@ -293,7 +293,7 @@ namespace time { TimeValue::operator= (o); return *this; } - + public: explicit Offset (TimeValue const& distance =Time::ZERO) @@ -315,6 +315,10 @@ namespace time { return TimeValue(std::llabs (t_)); } + /** @internal stretch offset by a possibly fractional factor, + * and quantise into raw (micro tick) grid */ + Offset stretchedByRationalFactor (boost::rational) const; + /** @internal diagnostics, indicating ∆ */ operator std::string () const; @@ -350,15 +354,11 @@ namespace time { template inline Offset - operator* (boost::rational factor, Offset const& o) + operator* (boost::rational factor, Offset const& offset) { - return boost::rational(factor.numerator(), factor.denominator()) * o; + return offset.stretchedByRationalFactor (boost::rational(factor.numerator(), factor.denominator())); } - /** stretch offset by a possibly fractional factor */ - Offset - operator* (boost::rational factor, Offset const& o); - /** flip offset direction */ inline Offset