ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
video_frame.h File Reference

Go to the source code of this file.

Data Structures

struct  video_frame_t
 Video frame structure. More...
 
struct  video_frame_buffer_t
 Video frame buffer manager. More...
 
struct  video_frame_stats_t
 Frame statistics structure. More...
 
struct  simple_frame_swap_t
 Simple atomic frame swap structure. More...
 

Macros

#define VIDEO_FRAME_BUFFER_SIZE   (2 * 1024 * 1024)
 Video frame buffer size (2MB per frame)
 
#define MAX_FRAME_BUFFERS   2
 Maximum number of frame buffers (double buffering)
 

Functions

video_frame_buffer_tvideo_frame_buffer_create (uint32_t client_id)
 Create a double-buffered video frame manager.
 
void video_frame_buffer_destroy (video_frame_buffer_t *vfb)
 Destroy frame buffer and free all resources.
 
video_frame_tvideo_frame_begin_write (video_frame_buffer_t *vfb)
 Writer API: Start writing a new frame.
 
void video_frame_commit (video_frame_buffer_t *vfb)
 Writer API: Commit the frame and swap buffers.
 
const video_frame_tvideo_frame_get_latest (video_frame_buffer_t *vfb)
 Reader API: Get latest frame if available.
 
void video_frame_get_stats (video_frame_buffer_t *vfb, video_frame_stats_t *stats)
 Get frame statistics for quality monitoring.
 
simple_frame_swap_tsimple_frame_swap_create (void)
 Create a simple atomic frame swap.
 
void simple_frame_swap_destroy (simple_frame_swap_t *sfs)
 Destroy simple frame swap and free resources.
 
void simple_frame_swap_update (simple_frame_swap_t *sfs, const void *data, size_t size)
 Update frame data in simple frame swap.
 
const video_frame_tsimple_frame_swap_get (simple_frame_swap_t *sfs)
 Get current frame from simple frame swap.