ascii-chat
0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
render.h
Go to the documentation of this file.
1
6
#pragma once
7
8
#include "
client.h
"
9
10
// Per-client render thread functions
11
void
*
client_video_render_thread
(
void
*arg);
12
void
*
client_audio_render_thread
(
void
*arg);
13
14
// Render thread lifecycle management
15
int
create_client_render_threads
(
server_context_t
*server_ctx,
client_info_t
*client);
16
void
stop_client_render_threads
(
client_info_t
*client);
17
18
// Render timing control - match platform-specific client FPS for optimal performance
19
#ifdef _WIN32
20
#define VIDEO_RENDER_FPS 60
// Windows with timeBeginPeriod(1) can handle 60 FPS
21
#else
22
#define VIDEO_RENDER_FPS 60
// Linux/macOS can handle higher rates
23
#endif
24
// Audio render rate: 480 samples per iteration, 10ms interval = 100 FPS
25
// This gives 48,000 samples/sec which matches real-time playback rate
26
#define AUDIO_RENDER_FPS 100
// 10ms interval for real-time rate
27
28
// Render utilities
29
void
calculate_render_interval
(
int
target_fps,
struct
timespec *interval);
30
void
wait_for_next_render
(
struct
timespec *last_render_time,
const
struct
timespec *interval);
stop_client_render_threads
void stop_client_render_threads(client_info_t *client)
Stop and cleanup per-client rendering threads.
Definition
render.c:1255
wait_for_next_render
void wait_for_next_render(struct timespec *last_render_time, const struct timespec *interval)
client_video_render_thread
void * client_video_render_thread(void *arg)
Interruptible sleep function with platform-specific optimizations.
Definition
render.c:359
calculate_render_interval
void calculate_render_interval(int target_fps, struct timespec *interval)
client_audio_render_thread
void * client_audio_render_thread(void *arg)
Main audio rendering thread function for individual clients.
Definition
render.c:673
create_client_render_threads
int create_client_render_threads(server_context_t *server_ctx, client_info_t *client)
Create and initialize per-client rendering threads.
Definition
render.c:1121
client.h
Per-client state management and lifecycle orchestration.
client_info
Per-client state structure for server-side client management.
Definition
lib/network/client.h:77
server_context_t
Server context - encapsulates all server state.
Definition
server/main.h:81
src
server
render.h
Generated by
1.9.8