|
ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
|
🔊 Audio Capture and Playback Interface for ascii-chat More...
Go to the source code of this file.
Data Structures | |
| struct | audio_context_t |
| Audio context for full-duplex capture and playback. More... | |
| struct | audio_device_info_t |
| Audio device information structure. More... | |
| struct | audio_batch_info_t |
| Parsed audio batch packet header information. More... | |
Macros | |
| #define | AUDIO_SAMPLE_RATE 48000 |
| Audio sample rate (48kHz professional quality, Opus-compatible) | |
| #define | AUDIO_FRAMES_PER_BUFFER 480 |
| Audio frames per buffer (480 = 10ms at 48kHz, matches WebRTC AEC3 frame size) | |
| #define | AUDIO_CHANNELS 1 |
| Number of audio channels (1 = mono) | |
| #define | AUDIO_BUFFER_SIZE (AUDIO_FRAMES_PER_BUFFER * AUDIO_CHANNELS) |
| Total audio buffer size (frames × channels) | |
| #define | AUDIO_DEVICE_NAME_MAX 256 |
| Maximum length of audio device name. | |
Functions | |
| asciichat_error_t | audio_init (audio_context_t *ctx) |
| Initialize audio context and PortAudio. | |
| void | audio_destroy (audio_context_t *ctx) |
| Destroy audio context and clean up resources. | |
| void | audio_set_pipeline (audio_context_t *ctx, void *pipeline) |
| Set audio pipeline for echo cancellation. | |
| asciichat_error_t | audio_start_duplex (audio_context_t *ctx) |
| Start full-duplex audio (simultaneous capture and playback) | |
| asciichat_error_t | audio_stop_duplex (audio_context_t *ctx) |
| Stop full-duplex audio. | |
| asciichat_error_t | audio_read_samples (audio_context_t *ctx, float *buffer, int num_samples) |
| Read captured audio samples from capture buffer. | |
| asciichat_error_t | audio_write_samples (audio_context_t *ctx, const float *buffer, int num_samples) |
| Write audio samples to playback buffer. | |
| asciichat_error_t | audio_set_realtime_priority (void) |
| Request real-time priority for current thread. | |
| asciichat_error_t | audio_list_input_devices (audio_device_info_t **out_devices, unsigned int *out_count) |
| List available audio input devices (microphones) | |
| asciichat_error_t | audio_list_output_devices (audio_device_info_t **out_devices, unsigned int *out_count) |
| List available audio output devices (speakers) | |
| void | audio_free_device_list (audio_device_info_t *devices) |
| Free device list allocated by audio_list_input_devices/audio_list_output_devices. | |
| asciichat_error_t | audio_dequantize_samples (const uint8_t *samples_ptr, uint32_t total_samples, float *out_samples) |
| Dequantize network audio samples from int32 to float. | |
| audio_ring_buffer_t * | audio_ring_buffer_create (void) |
| Create a new audio ring buffer (for playback with jitter buffering) | |
| audio_ring_buffer_t * | audio_ring_buffer_create_for_capture (void) |
| Create a new audio ring buffer for capture (without jitter buffering) | |
| void | audio_ring_buffer_destroy (audio_ring_buffer_t *rb) |
| Destroy an audio ring buffer. | |
| void | audio_ring_buffer_clear (audio_ring_buffer_t *rb) |
| Clear all audio samples from ring buffer. | |
| asciichat_error_t | audio_ring_buffer_write (audio_ring_buffer_t *rb, const float *data, int samples) |
| Write audio samples to ring buffer. | |
| size_t | audio_ring_buffer_read (audio_ring_buffer_t *rb, float *data, size_t samples) |
| Read audio samples from ring buffer. | |
| size_t | audio_ring_buffer_peek (audio_ring_buffer_t *rb, float *data, size_t samples) |
| Peek at available samples without consuming them (for AEC3 render signal) | |
| size_t | audio_ring_buffer_available_read (audio_ring_buffer_t *rb) |
| Get number of samples available for reading. | |
| size_t | audio_ring_buffer_available_write (audio_ring_buffer_t *rb) |
| Get number of sample slots available for writing. | |
| void | resample_linear (const float *src, size_t src_samples, float *dst, size_t dst_samples, double src_rate, double dst_rate) |
| Resample audio using linear interpolation. | |
| asciichat_error_t | audio_parse_batch_header (const void *data, size_t len, audio_batch_info_t *out_batch) |
| Parse an audio batch packet header from raw packet data. | |
| asciichat_error_t | audio_validate_batch_params (const audio_batch_info_t *batch) |
| Validate audio batch parameters for sanity. | |
| bool | audio_is_supported_sample_rate (uint32_t sample_rate) |
| Check if a sample rate is a standard/supported rate. | |
🔊 Audio Capture and Playback Interface for ascii-chat
Definition in file lib/audio/audio.h.
| #define AUDIO_DEVICE_NAME_MAX 256 |
Maximum length of audio device name.
Definition at line 330 of file lib/audio/audio.h.