70 : grid_{buildStandardGridForFramerate(fps)}
71 , playbackUrgency {
ASAP}
73 , scheduledDelivery{
Time::NEVER}
75 , engineLatency{DEFAULT_ENGINE_LATENCY}
81 : grid_{buildStandardGridForFramerate(fps)}
84 , scheduledDelivery{realTimeAnchor}
86 , engineLatency{DEFAULT_ENGINE_LATENCY}
130 FrameCnt frameNr =
grid_->gridPoint (refPoint);
145 FrameCnt frameNr =
grid_->gridPoint (refPoint);
146 return grid_->timeOf(frameNr) == refPoint? frameNr
192 UNIMPLEMENTED (
"controlling the job planning rhythm");
201 FrameCnt nextFrame =
grid_->gridPoint (breakingPoint);
203 ASSERT (breakingPoint <= grid_->timeOf(nextFrame));
204 ASSERT (breakingPoint >
grid_->timeOf(nextFrame-1));
206 if (
grid_->timeOf(nextFrame) == breakingPoint)
217 UNIMPLEMENTED (
"how to combine timing constraints");
Duration is the internal Lumiera time metric.
Simple stand-alone Quantiser implementation based on a constant sized gird.
Framerate specified as frames per second.
static const FrameRate HALTED
Offset measures a distance in time.
basic constant internal time value.
a mutable time value, behaving like a plain number, allowing copy and re-accessing
Lumiera's internal time value datatype.
static const Time NEVER
border condition marker value. NEVER >= any time value
Generic frame timing specification.
FrameCnt getBreakPointAfter(TimeValue refPoint) const
the next grid point at or after the given reference time
bool isOriginalSpeed() const
Duration getPlanningChunkDuration() const
the minimum time span to be covered by frame calculation jobs planned in one sway.
Duration getFrameDurationAt(TimeValue refPoint) const
FrameCnt establishNextPlanningChunkStart(FrameCnt anchorFrame) const
establish the time point to anchor the next planning chunk, in accordance with getPlanningChunkDurati...
Timings(FrameRate fps)
Create a default initialised Timing constraint record.
Time scheduledDelivery
a wall clock time corresponding to the Grid's origin. Can be Time::Never (=not time bound)
Time getFrameStartAt(FrameCnt frameNr) const
bool isValid() const
Consistency self-check.
static Timings DISABLED
marker for halted output
Timings constrainedBy(Timings additionalConditions)
Time getTimeDue(FrameCnt frameOffset) const
real time deadline for the given frame, without any latency.
Duration constantFrameTimingsInterval(TimeValue startPoint) const
the frame spacing and duration remains constant for some time...
Offset getRealOffset(FrameCnt frameOffset) const
calculate the given frame's distance from origin, but do so using the real time scale,...
boost::rational< FrameCnt > playbackSpeed
PlaybackUrgency playbackUrgency
int64_t FrameCnt
relative framecount or frame number.
std::shared_ptr< const Quantiser > PQuant
boost::rational< int64_t > FSecs
rational representation of fractional seconds
const Duration DEFAULT_ENGINE_LATENCY
const Duration DEFAULT_JOB_PLANNING_TURNOVER(FSecs(3, 2))
PQuant buildStandardGridForFramerate(FrameRate fps)
Steam-Layer implementation namespace root.
Rational number support, based on boost::rational.
Support library to represent grid-aligned time specifications This is part of Lumiera's time and time...
How to define a timing specification or constraint.