summaryrefslogtreecommitdiff
path: root/src/common/timing.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/timing.h')
-rw-r--r--src/common/timing.h28
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 */