ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
stream.h
Go to the documentation of this file.
1
6#pragma once
7
8#include "client.h"
9#include "network/network.h"
10#include "network/packet.h"
11#include <stdatomic.h>
12
13// Global shutdown flag
14extern atomic_bool g_server_should_exit;
15
16// Stream mixing and sending functions
17char *create_mixed_ascii_frame_for_client(uint32_t target_client_id, unsigned short width, unsigned short height,
18 bool wants_stretch, size_t *out_size, bool *out_grid_changed,
19 int *out_sources_count);
20
21// Check if any clients are currently sending video
23
24// Queue management for streaming (video now uses double buffer directly)
25int queue_audio_for_client(client_info_t *client, const void *audio_data, size_t data_size);
26
27// Legacy frame cache removed - using video_frame.c double buffering only
unsigned int uint32_t
Definition common.h:58
🌐 Core network I/O operations with timeout support
Packet protocol implementation with encryption and compression support.
Per-client state management and lifecycle orchestration.
bool any_clients_sending_video(void)
Check if any connected clients are currently sending video.
Definition stream.c:1192
atomic_bool g_server_should_exit
Global atomic shutdown flag shared across all threads.
char * create_mixed_ascii_frame_for_client(uint32_t target_client_id, unsigned short width, unsigned short height, bool wants_stretch, size_t *out_size, bool *out_grid_changed, int *out_sources_count)
Generate personalized ASCII frame for a specific client.
Definition stream.c:959
int queue_audio_for_client(client_info_t *client, const void *audio_data, size_t data_size)
Queue ASCII frame for delivery to specific client.
Definition stream.c:1172
Per-client state structure for server-side client management.