ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
stream.h
Go to the documentation of this file.
1
6#pragma once
7
8#include "client.h"
11#include <ascii-chat/atomic.h>
12
13// Global shutdown flag
15
16// Stream mixing and sending functions
17char *create_mixed_ascii_frame_for_client(const char *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
⚛️ Atomic operations abstraction layer with debug tracking
🌐 Core network I/O operations with timeout support
Client-side H.265 media capture and encoding pipeline.
bool any_clients_sending_video(void)
Check if any connected clients are currently sending video.
Definition stream.c:1335
atomic_t g_should_exit
Global application exit flag (shared across all modes)
Definition globals.c:34
char * create_mixed_ascii_frame_for_client(const char *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:973
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:1315
Atomic value wrapper for integral/boolean types.
Definition atomic.h:76
Per-client state structure for server-side client management.