ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
client_audio_pipeline_t Struct Reference

Client audio pipeline state. More...

#include <lib/audio/client_audio_pipeline.h>

Data Fields

client_audio_pipeline_flags_t flags
 
void * echo_canceller
 
SpeexPreprocessStatepreprocess
 
JitterBufferjitter
 
uint32_t jitter_timestamp
 
int jitter_frame_span
 
OpusEncoderencoder
 
OpusDecoderdecoder
 
compressor_t compressor
 
noise_gate_t noise_gate
 
noise_gate_t playback_noise_gate
 
highpass_filter_t highpass
 
lowpass_filter_t lowpass
 
client_audio_pipeline_config_t config
 
int frame_size
 
int16_t * work_i16
 
int16_t * echo_i16
 
float * work_float
 
bool initialized
 
int capture_fadein_remaining
 
void * debug_wav_aec3_in
 
void * debug_wav_aec3_out
 
void * aec3_render_buffer
 
void * aec3_capture_buffer
 

Detailed Description

Client audio pipeline state.

Owns all audio processing components and buffers. Created with client_audio_pipeline_create(), destroyed with _destroy().

Definition at line 229 of file client_audio_pipeline.h.

Field Documentation

◆ aec3_capture_buffer

void* client_audio_pipeline_t::aec3_capture_buffer

◆ aec3_render_buffer

void* client_audio_pipeline_t::aec3_render_buffer

Persistent AudioBuffer instances for AEC3 (opaque C++ objects) CRITICAL: AudioBuffer has internal filterbank state that must persist across frames. Creating new buffers each frame causes discontinuities (static/buzzing).

Definition at line 290 of file client_audio_pipeline.h.

Referenced by client_audio_pipeline_create(), client_audio_pipeline_destroy(), and client_audio_pipeline_process_duplex().

◆ capture_fadein_remaining

int client_audio_pipeline_t::capture_fadein_remaining

Startup fade-in to prevent initial click (samples remaining)

Definition at line 280 of file client_audio_pipeline.h.

Referenced by client_audio_pipeline_create(), and client_audio_pipeline_process_duplex().

◆ compressor

compressor_t client_audio_pipeline_t::compressor

Dynamic range compressor

Definition at line 251 of file client_audio_pipeline.h.

Referenced by client_audio_pipeline_create(), and client_audio_pipeline_process_duplex().

◆ config

◆ debug_wav_aec3_in

void* client_audio_pipeline_t::debug_wav_aec3_in

Debug WAV writers for AEC3 analysis

Definition at line 283 of file client_audio_pipeline.h.

Referenced by client_audio_pipeline_create(), client_audio_pipeline_destroy(), and client_audio_pipeline_process_duplex().

◆ debug_wav_aec3_out

void* client_audio_pipeline_t::debug_wav_aec3_out

◆ decoder

OpusDecoder* client_audio_pipeline_t::decoder

◆ echo_canceller

void* client_audio_pipeline_t::echo_canceller

WebRTC AEC3 echo cancellation (opaque pointer to webrtc::EchoCanceller3)

Definition at line 234 of file client_audio_pipeline.h.

Referenced by client_audio_pipeline_create(), client_audio_pipeline_destroy(), and client_audio_pipeline_process_duplex().

◆ echo_i16

int16_t* client_audio_pipeline_t::echo_i16

Work buffer for echo reference

Definition at line 270 of file client_audio_pipeline.h.

◆ encoder

OpusEncoder* client_audio_pipeline_t::encoder

◆ flags

◆ frame_size

int client_audio_pipeline_t::frame_size

Frame size in samples

Definition at line 265 of file client_audio_pipeline.h.

Referenced by client_audio_pipeline_capture(), and client_audio_pipeline_create().

◆ highpass

highpass_filter_t client_audio_pipeline_t::highpass

High-pass filter

Definition at line 257 of file client_audio_pipeline.h.

Referenced by client_audio_pipeline_create(), and client_audio_pipeline_process_duplex().

◆ initialized

bool client_audio_pipeline_t::initialized

Initialization state

Definition at line 277 of file client_audio_pipeline.h.

Referenced by client_audio_pipeline_create().

◆ jitter

JitterBuffer* client_audio_pipeline_t::jitter

Speex jitter buffer for playback path

Definition at line 239 of file client_audio_pipeline.h.

◆ jitter_frame_span

int client_audio_pipeline_t::jitter_frame_span

Frame span in timestamp units

Definition at line 243 of file client_audio_pipeline.h.

◆ jitter_timestamp

uint32_t client_audio_pipeline_t::jitter_timestamp

Jitter buffer timestamp counter

Definition at line 241 of file client_audio_pipeline.h.

◆ lowpass

lowpass_filter_t client_audio_pipeline_t::lowpass

Low-pass filter

Definition at line 259 of file client_audio_pipeline.h.

Referenced by client_audio_pipeline_create(), and client_audio_pipeline_process_duplex().

◆ noise_gate

noise_gate_t client_audio_pipeline_t::noise_gate

Noise gate for capture

Definition at line 253 of file client_audio_pipeline.h.

Referenced by client_audio_pipeline_create(), and client_audio_pipeline_process_duplex().

◆ playback_noise_gate

noise_gate_t client_audio_pipeline_t::playback_noise_gate

Noise gate for playback - cuts quiet received audio

Definition at line 255 of file client_audio_pipeline.h.

Referenced by client_audio_pipeline_create(), and client_audio_pipeline_playback().

◆ preprocess

SpeexPreprocessState* client_audio_pipeline_t::preprocess

Speex preprocessor state (noise/AGC/VAD)

Definition at line 236 of file client_audio_pipeline.h.

◆ work_float

float* client_audio_pipeline_t::work_float

Work buffer for float processing

Definition at line 272 of file client_audio_pipeline.h.

◆ work_i16

int16_t* client_audio_pipeline_t::work_i16

Work buffer for int16 conversion (Speex uses int16)

Definition at line 268 of file client_audio_pipeline.h.


The documentation for this struct was generated from the following file: