43 extender->
clock += delta;
44 extender->
last = update;
61 return extender->
clock + (int32_t)(sample - extender->
last) * ns_per_unit;
98 new_a2b = ((old_a2b - got_a2b) * alpha) / 1000 + got_a2b;
100 *inout_a2b = new_a2b;
int64_t timepoint_ns
Integer timestamp type.
Definition u_time.h:77
int64_t time_duration_ns
Integer duration type in nanoseconds.
Definition u_time.h:88
static timepoint_ns m_clock_offset_a2b(float freq, timepoint_ns a, timepoint_ns b, time_duration_ns *inout_a2b)
Helper to estimate the offset between two clocks using exponential smoothing.
Definition m_clock_tracking.h:84
static timepoint_ns m_clock_bit_extender_peek(const struct m_clock_bit_extender *extender, uint32_t sample, int64_t ns_per_unit)
Extends a 32-bit unsigned clock sample onto the extender's 64-bit clock, without updating the extende...
Definition m_clock_tracking.h:59
struct m_clock_windowed_skew_tracker * m_clock_windowed_skew_tracker_alloc(const size_t window_samples)
Allocate a struct m_clock_windowed_skew_tracker with a window of.
Definition m_clock_tracking.c:70
static time_duration_ns m_clock_bit_extender_update(struct m_clock_bit_extender *extender, uint32_t update, int64_t ns_per_unit)
Extends a 32-bit unsigned clock into a 64 bit signed clock.
Definition m_clock_tracking.h:40
Storage for a 32-bit unsigned -> 64-bit signed clock extension.
Definition m_clock_tracking.h:24
uint32_t last
The last 32-bit unsigned value.
Definition m_clock_tracking.h:26
timepoint_ns clock
The current 64-bit signed clock value.
Definition m_clock_tracking.h:28
Definition m_clock_tracking.c:40
Time-keeping: a clock that is steady, convertible to system time, and ideally high-resolution.