ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
opus_codec.h
Go to the documentation of this file.
1
55#pragma once
56
57#include <stddef.h>
58#include <stdint.h>
59#include "common.h"
60
61/* ============================================================================
62 * Forward Declarations
63 * ============================================================================ */
64
65typedef struct OpusEncoder OpusEncoder;
66typedef struct OpusDecoder OpusDecoder;
67
68/* ============================================================================
69 * Opus Application Modes
70 * ============================================================================ */
71
81
82/* ============================================================================
83 * Codec Context Structure
84 * ============================================================================ */
85
102
103/* ============================================================================
104 * Encoder Functions
105 * ============================================================================ */
106
125opus_codec_t *opus_codec_create_encoder(opus_application_t application, int sample_rate, int bitrate);
126
139
157size_t opus_codec_encode(opus_codec_t *codec, const float *samples, int num_samples, uint8_t *out_data,
158 size_t out_size);
159
160/* ============================================================================
161 * Decoder Functions
162 * ============================================================================ */
163
181int opus_codec_decode(opus_codec_t *codec, const uint8_t *data, size_t data_len, float *out_samples,
182 int out_num_samples);
183
184/* ============================================================================
185 * Configuration Functions
186 * ============================================================================ */
187
200
209
222
223/* ============================================================================
224 * Lifecycle Functions
225 * ============================================================================ */
226
237
struct OpusDecoder OpusDecoder
struct OpusEncoder OpusEncoder
opus_codec_t * opus_codec_create_decoder(int sample_rate)
Create an Opus decoder.
Definition opus_codec.c:62
asciichat_error_t opus_codec_set_bitrate(opus_codec_t *codec, int bitrate)
Set encoder bitrate.
Definition opus_codec.c:163
struct OpusDecoder OpusDecoder
Definition opus_codec.h:66
opus_application_t
Application mode for opus encoder.
Definition opus_codec.h:76
int opus_codec_decode(opus_codec_t *codec, const uint8_t *data, size_t data_len, float *out_samples, int out_num_samples)
Decode Opus audio frame.
Definition opus_codec.c:128
opus_codec_t * opus_codec_create_encoder(opus_application_t application, int sample_rate, int bitrate)
Create an Opus encoder.
Definition opus_codec.c:18
int opus_codec_get_bitrate(opus_codec_t *codec)
Get current encoder bitrate.
Definition opus_codec.c:180
asciichat_error_t opus_codec_set_dtx(opus_codec_t *codec, int enable)
Enable/disable DTX (Discontinuous Transmission)
Definition opus_codec.c:196
void opus_codec_destroy(opus_codec_t *codec)
Destroy an Opus codec instance.
Definition opus_codec.c:215
size_t opus_codec_encode(opus_codec_t *codec, const float *samples, int num_samples, uint8_t *out_data, size_t out_size)
Encode audio frame with Opus.
Definition opus_codec.c:97
struct OpusEncoder OpusEncoder
Definition opus_codec.h:65
@ OPUS_APPLICATION_AUDIO
General audio (optimized for music)
Definition opus_codec.h:78
@ OPUS_APPLICATION_RESTRICTED_LOWDELAY
Low-latency mode.
Definition opus_codec.h:79
@ OPUS_APPLICATION_VOIP
Voice over IP (optimized for speech)
Definition opus_codec.h:77
unsigned char uint8_t
Definition common.h:56
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:46
Opus codec context for encoding or decoding.
Definition opus_codec.h:95
uint8_t * tmp_buffer
Temporary buffer for internal use.
Definition opus_codec.h:100
int bitrate
Bitrate in bits per second (encoder only)
Definition opus_codec.h:99
int sample_rate
Sample rate in Hz (e.g., 44100)
Definition opus_codec.h:98
OpusEncoder * encoder
Encoder state (NULL if decoder)
Definition opus_codec.h:96
OpusDecoder * decoder
Decoder state (NULL if encoder)
Definition opus_codec.h:97