89 enum { RENDERER_BLOCK, RENDERER_HALFBLOCK, RENDERER_BRAILLE } renderer;
90 enum { CHARSET_ASCII, CHARSET_UTF8, CHARSET_UTF8_WIDE } charset;
91 enum { COMPRESSION_NONE, COMPRESSION_RLE, COMPRESSION_ZSTD } compression;
117 char session_version[16];
130 char sdp_string[4096];
175 size_t server_capability_count,
const opus_config_t *audio_config,
226 size_t *detected_count);
⚠️‼️ Error and/or exit() when things go bad.
asciichat_error_t
Error and exit codes - unified status values (0-255)
asciichat_error_t sdp_detect_terminal_capabilities(terminal_capability_t *capabilities, size_t capability_count, size_t *detected_count)
Detect client terminal capabilities at startup.
asciichat_error_t sdp_parse(const char *sdp_string, sdp_session_t *session)
Parse SDP offer or answer.
acip_codec_t
Terminal rendering capability payload types.
@ ACIP_CODEC_16COLOR
16-color (ANSI standard)
@ ACIP_CODEC_MONO
Monochrome (ASCII only)
@ ACIP_CODEC_256COLOR
256-color (xterm palette)
@ ACIP_CODEC_TRUECOLOR
24-bit RGB (truecolor)
const char * sdp_codec_name(acip_codec_t codec)
Get human-readable codec name.
void sdp_session_free(sdp_session_t *session)
Free SDP session resources.
asciichat_error_t sdp_get_selected_video_codec(const sdp_session_t *answer, acip_codec_t *selected_codec, terminal_format_params_t *selected_format)
Extract selected video codec from SDP answer.
asciichat_error_t sdp_generate_offer(const terminal_capability_t *capabilities, size_t capability_count, const opus_config_t *audio_config, const terminal_format_params_t *format, sdp_session_t *offer_out)
Generate SDP offer (client side)
const char * sdp_renderer_name(int renderer_type)
Get human-readable renderer name.
asciichat_error_t sdp_generate_answer(const sdp_session_t *offer, const terminal_capability_t *server_capabilities, size_t server_capability_count, const opus_config_t *audio_config, const terminal_format_params_t *server_format, sdp_session_t *answer_out)
Generate SDP answer (server side)
Opus codec parameters for ascii-chat.
bool dtx_enabled
Discontinuous Transmission (silence suppression)
bool fec_enabled
Forward Error Correction for lossy networks.
uint32_t sample_rate
48000 Hz (Opus native rate)
uint32_t bitrate
24000 bps (good quality for speech)
uint16_t frame_duration
20 ms (balance latency/efficiency)
uint8_t channels
1 (mono for voice chat)
SDP media session (simplified for WebRTC)
terminal_format_params_t video_format
Default format parameters.
size_t video_codec_count
Number of supported capabilities.
size_t sdp_length
Length of SDP string (excluding null)
bool has_audio
Audio media included.
terminal_capability_t * video_codecs
Array of supported capabilities.
opus_config_t audio_config
Opus codec configuration.
bool has_video
Video media included.
Supported terminal capability (for offer/answer)
terminal_format_params_t format
Format parameters.
acip_codec_t codec
Rendering capability type.