ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
fps.h
Go to the documentation of this file.
1
38
39#pragma once
40
41#include <time.h>
42#include <stdint.h>
43#include <stdbool.h>
44
53typedef struct {
54 uint64_t frame_count; // Frames counted since last report
55 uint64_t last_fps_report_ns; // Last time FPS was reported (nanoseconds)
56 uint64_t last_frame_time_ns; // Timestamp of last processed frame (nanoseconds)
57 int expected_fps; // Expected FPS (e.g., 60)
58 uint64_t report_interval_ns; // Report interval in nanoseconds (default 10s = 10000000000ns)
59 const char *tracker_name; // Name for logging (e.g., "CLIENT", "WEBCAM", "AUDIO", "KEEPALIVE")
60} fps_t;
61
72void fps_init(fps_t *tracker, int expected_fps, const char *name);
73
85void fps_init_with_interval(fps_t *tracker, int expected_fps, const char *name, uint64_t report_interval_ns);
86
108void fps_frame_ns(fps_t *tracker, uint64_t current_time_ns, const char *context);
109
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:63
void fps_init(fps_t *tracker, int expected_fps, const char *name)
Initialize FPS tracker.
Definition fps.c:32
Counters and timestamps used to calculate and report frame rate.
Definition fps.h:53
const char * tracker_name
Definition fps.h:59
uint64_t frame_count
Definition fps.h:54
uint64_t report_interval_ns
Definition fps.h:58
uint64_t last_frame_time_ns
Definition fps.h:56
int expected_fps
Definition fps.h:57
uint64_t last_fps_report_ns
Definition fps.h:55
⏱️ High-precision timing utilities using sokol_time.h and uthash