- Add lib/libopus/ (opus v1.6.1 embedded source: CELT 18 .c, SILK 77 .c, SILK float 28 .c, OPUS core 14 .c) - Add lib/opus_codec.h/.c (wrapper: encoder, decoder, raw PCM int16) - Add tests/test_opus_codec.c (7 tests: silence, sine, compression, PLC, null, defaults, multi-frame) - chatgui: AudioRecorder (miniaudio capture, 48kHz mono) - chatgui: VoiceEncoder (PCM→Opus file with custom container) - chatgui: VoicePlayer (Opus→PCM playback via SoundManager) - chatgui: PTT button in InputBar, voice message send/receive in MessageList - chatgui: AudioDeviceSettingsPage (device selection, persisted in ui_state) - chatgui: MessageDelegate voice message rendering (play button + duration) - Update autotools: configure.ac, Makefile.am, src/Makefile.am, tests/Makefile.am - Update CMake: chatgui CMakeLists.txt, libutun CMakeLists.txt (link libopus_internal.a)
34 lines
1.0 KiB
C
34 lines
1.0 KiB
C
#ifndef OPUS_CODEC_H
|
|
#define OPUS_CODEC_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct opus_codec_encoder opus_codec_encoder_t;
|
|
typedef struct opus_codec_decoder opus_codec_decoder_t;
|
|
|
|
opus_codec_encoder_t* opus_codec_encoder_create(int sample_rate, int channels);
|
|
void opus_codec_encoder_destroy(opus_codec_encoder_t* enc);
|
|
int opus_codec_encode(opus_codec_encoder_t* enc, const int16_t* pcm, int frame_samples,
|
|
uint8_t* out, int out_cap);
|
|
|
|
opus_codec_decoder_t* opus_codec_decoder_create(int sample_rate, int channels);
|
|
void opus_codec_decoder_destroy(opus_codec_decoder_t* dec);
|
|
int opus_codec_decode(opus_codec_decoder_t* dec, const uint8_t* data, int len,
|
|
int16_t* pcm, int frame_samples);
|
|
|
|
int opus_codec_encoder_bitrate_set(opus_codec_encoder_t* enc, int bitrate_bps);
|
|
int opus_codec_encoder_complexity_set(opus_codec_encoder_t* enc, int complexity);
|
|
int opus_codec_encoder_signal_set(opus_codec_encoder_t* enc, int signal_type);
|
|
|
|
const char* opus_codec_strerror(int err);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|