ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
fps.h
Go to the documentation of this file.
1
39#pragma once
40
41#include <time.h>
42#include <stdint.h>
43#include <stdbool.h>
44
52typedef struct {
53 uint64_t frame_count; // Frames counted since last report
54 uint64_t last_fps_report_ns; // Last time FPS was reported (nanoseconds)
55 uint64_t last_frame_time_ns; // Timestamp of last processed frame (nanoseconds)
56 int expected_fps; // Expected FPS (e.g., 60)
57 uint64_t report_interval_ns; // Report interval in nanoseconds (default 10s = 10000000000ns)
58 const char *tracker_name; // Name for logging (e.g., "CLIENT", "WEBCAM", "AUDIO", "KEEPALIVE")
59} fps_t;
60
71void fps_init(fps_t *tracker, int expected_fps, const char *name);
72
84void fps_init_with_interval(fps_t *tracker, int expected_fps, const char *name, uint64_t report_interval_ns);
85
107void fps_frame_ns(fps_t *tracker, uint64_t current_time_ns, const char *context);
108
void fps_init_with_interval(fps_t *tracker, int expected_fps, const char *name, uint64_t report_interval_ns)
Initialize FPS tracker with custom report interval.
Definition fps.c:37
void fps_frame_ns(fps_t *tracker, uint64_t current_time_ns, const char *context)
Track a frame and detect lag conditions (nanosecond version - PRIMARY)
Definition fps.c:52
unsigned long long uint64_t
Definition common.h:59
void fps_init(fps_t *tracker, int expected_fps, const char *name)
Initialize FPS tracker.
Definition fps.c:32
ClangTool/LibTooling compatibility shim for stdbool.h.
FPS tracking state.
Definition fps.h:52
const char * tracker_name
Definition fps.h:58
uint64_t frame_count
Definition fps.h:53
uint64_t report_interval_ns
Definition fps.h:57
uint64_t last_frame_time_ns
Definition fps.h:55
int expected_fps
Definition fps.h:56
uint64_t last_fps_report_ns
Definition fps.h:54
⏱️ High-precision timing utilities using sokol_time.h and uthash