|
ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
|
Audio context for full-duplex capture and playback. More...
#include <lib/audio/audio.h>
Data Fields | |
| PaStream * | duplex_stream |
| PortAudio full-duplex stream (simultaneous input+output) | |
| PaStream * | input_stream |
| Separate input stream (when full-duplex unavailable) | |
| PaStream * | output_stream |
| Separate output stream (when full-duplex unavailable) | |
| audio_ring_buffer_t * | capture_buffer |
| Ring buffer for processed capture (after AEC3) for encoder thread. | |
| audio_ring_buffer_t * | playback_buffer |
| Ring buffer for decoded audio from network. | |
| audio_ring_buffer_t * | render_buffer |
| Ring buffer for render reference (separate streams mode) | |
| bool | initialized |
| True if context has been initialized. | |
| bool | running |
| True if duplex stream is active. | |
| bool | separate_streams |
| True if using separate input/output streams. | |
| _Atomic bool | shutting_down |
| True when shutdown started - callback outputs silence. | |
| mutex_t | state_mutex |
| Mutex protecting context state. | |
| void * | audio_pipeline |
| Client audio pipeline for AEC3 echo cancellation (opaque pointer) | |
| double | sample_rate |
| Actual sample rate of streams (48kHz) | |
| double | input_device_rate |
| Native sample rate of input device. | |
| double | output_device_rate |
| Native sample rate of output device. | |
Audio context for full-duplex capture and playback.
Manages a single PortAudio full-duplex stream for simultaneous audio capture and playback. Uses a single callback that receives both render (speaker output) and capture (microphone input) at the EXACT same instant, enabling perfect timing for WebRTC AEC3 echo cancellation.
Definition at line 114 of file lib/audio/audio.h.
| void* audio_context_t::audio_pipeline |
Client audio pipeline for AEC3 echo cancellation (opaque pointer)
Definition at line 126 of file lib/audio/audio.h.
Referenced by audio_set_pipeline().
| audio_ring_buffer_t* audio_context_t::capture_buffer |
Ring buffer for processed capture (after AEC3) for encoder thread.
Definition at line 118 of file lib/audio/audio.h.
Referenced by audio_destroy(), audio_init(), and audio_read_samples().
| PaStream* audio_context_t::duplex_stream |
PortAudio full-duplex stream (simultaneous input+output)
Definition at line 115 of file lib/audio/audio.h.
Referenced by audio_start_duplex(), and audio_stop_duplex().
| bool audio_context_t::initialized |
True if context has been initialized.
Definition at line 121 of file lib/audio/audio.h.
Referenced by audio_cleanup(), audio_destroy(), audio_init(), audio_read_samples(), audio_start_duplex(), audio_stop_duplex(), and audio_write_samples().
| double audio_context_t::input_device_rate |
Native sample rate of input device.
Definition at line 128 of file lib/audio/audio.h.
Referenced by audio_start_duplex().
| PaStream* audio_context_t::input_stream |
Separate input stream (when full-duplex unavailable)
Definition at line 116 of file lib/audio/audio.h.
Referenced by audio_start_duplex(), and audio_stop_duplex().
| double audio_context_t::output_device_rate |
Native sample rate of output device.
Definition at line 129 of file lib/audio/audio.h.
Referenced by audio_start_duplex().
| PaStream* audio_context_t::output_stream |
Separate output stream (when full-duplex unavailable)
Definition at line 117 of file lib/audio/audio.h.
Referenced by audio_start_duplex(), and audio_stop_duplex().
| audio_ring_buffer_t* audio_context_t::playback_buffer |
Ring buffer for decoded audio from network.
Definition at line 119 of file lib/audio/audio.h.
Referenced by audio_destroy(), audio_init(), audio_process_received_samples(), audio_stop_duplex(), and audio_write_samples().
| audio_ring_buffer_t* audio_context_t::render_buffer |
Ring buffer for render reference (separate streams mode)
Definition at line 120 of file lib/audio/audio.h.
Referenced by audio_start_duplex(), and audio_stop_duplex().
| bool audio_context_t::running |
True if duplex stream is active.
Definition at line 122 of file lib/audio/audio.h.
Referenced by audio_destroy(), audio_start_duplex(), and audio_stop_duplex().
| double audio_context_t::sample_rate |
Actual sample rate of streams (48kHz)
Definition at line 127 of file lib/audio/audio.h.
Referenced by audio_start_duplex().
| bool audio_context_t::separate_streams |
True if using separate input/output streams.
Definition at line 123 of file lib/audio/audio.h.
Referenced by audio_start_duplex(), and audio_stop_duplex().
| _Atomic bool audio_context_t::shutting_down |
True when shutdown started - callback outputs silence.
Definition at line 124 of file lib/audio/audio.h.
Referenced by audio_init(), audio_stop_duplex(), and audio_write_samples().
| mutex_t audio_context_t::state_mutex |
Mutex protecting context state.
Definition at line 125 of file lib/audio/audio.h.
Referenced by audio_destroy(), audio_init(), audio_start_duplex(), and audio_stop_duplex().