summaryrefslogtreecommitdiff
path: root/src/client/cl_cgame.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/cl_cgame.c')
-rw-r--r--src/client/cl_cgame.c36
1 files changed, 13 insertions, 23 deletions
diff --git a/src/client/cl_cgame.c b/src/client/cl_cgame.c
index 1c7d91cc..23f3010c 100644
--- a/src/client/cl_cgame.c
+++ b/src/client/cl_cgame.c
@@ -956,37 +956,27 @@ void CL_FirstSnapshot( void ) {
#endif
#ifdef USE_VOIP
- if (!clc.speexInitialized) {
+ if (!clc.voipCodecInitialized) {
int i;
- speex_bits_init(&clc.speexEncoderBits);
- speex_bits_reset(&clc.speexEncoderBits);
+ int error;
- clc.speexEncoder = speex_encoder_init(&speex_nb_mode);
+ clc.opusEncoder = opus_encoder_create(48000, 1, OPUS_APPLICATION_VOIP, &error);
- speex_encoder_ctl(clc.speexEncoder, SPEEX_GET_FRAME_SIZE,
- &clc.speexFrameSize);
- speex_encoder_ctl(clc.speexEncoder, SPEEX_GET_SAMPLING_RATE,
- &clc.speexSampleRate);
-
- clc.speexPreprocessor = speex_preprocess_state_init(clc.speexFrameSize,
- clc.speexSampleRate);
-
- i = 1;
- speex_preprocess_ctl(clc.speexPreprocessor,
- SPEEX_PREPROCESS_SET_DENOISE, &i);
-
- i = 1;
- speex_preprocess_ctl(clc.speexPreprocessor,
- SPEEX_PREPROCESS_SET_AGC, &i);
+ if ( error ) {
+ Com_DPrintf("VoIP: Error opus_encoder_create %d\n", error);
+ return;
+ }
for (i = 0; i < MAX_CLIENTS; i++) {
- speex_bits_init(&clc.speexDecoderBits[i]);
- speex_bits_reset(&clc.speexDecoderBits[i]);
- clc.speexDecoder[i] = speex_decoder_init(&speex_nb_mode);
+ clc.opusDecoder[i] = opus_decoder_create(48000, 1, &error);
+ if ( error ) {
+ Com_DPrintf("VoIP: Error opus_decoder_create(%d) %d\n", i, error);
+ return;
+ }
clc.voipIgnore[i] = qfalse;
clc.voipGain[i] = 1.0f;
}
- clc.speexInitialized = qtrue;
+ clc.voipCodecInitialized = qtrue;
clc.voipMuteAll = qfalse;
Cmd_AddCommand ("voip", CL_Voip_f);
Cvar_Set("cl_voipSendTarget", "spatial");