diff options
Diffstat (limited to 'src/common/timing.h')
| -rw-r--r-- | src/common/timing.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/common/timing.h b/src/common/timing.h new file mode 100644 index 0000000..a3c3c88 --- /dev/null +++ b/src/common/timing.h @@ -0,0 +1,28 @@ +#ifndef YASL_COMMON_TIMING_H +#define YASL_COMMON_TIMING_H + +#include "yasl/timing.h" +#include <stdbool.h> + +#define YASL_REFRESH_DEFAULT_NS 16666666.0 + +struct yasl_frame_clock { + uint64_t last_present_ns; + uint64_t resize_count; + uint64_t resize_sum_ns; + uint64_t resize_max_ns; + long resize_minflt; + uint64_t frame_time_ns; + double refresh_ns; + enum yasl_timing_source source; +}; + +uint64_t yasl_clock_extend_ms(uint32_t ms, uint64_t now_ns); +void yasl_clock_presented(struct yasl_frame_clock *c, uint64_t now, bool sample); +void yasl_clock_note_resize(struct yasl_frame_clock *c, uint64_t dt_ns); +void yasl_clock_resize_stats(const struct yasl_frame_clock *c, + struct yasl_resize_stats *out); +uint64_t yasl_clock_next_present_ns(const struct yasl_frame_clock *c); +uint64_t yasl_clock_frame_timestamp_ns(struct yasl_frame_clock *c, uint64_t now); + +#endif /* YASL_COMMON_TIMING_H */ |
