summaryrefslogtreecommitdiff
path: root/src/client/client.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/client.h')
-rw-r--r--src/client/client.h21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/client/client.h b/src/client/client.h
index 541dca40..b4016467 100644
--- a/src/client/client.h
+++ b/src/client/client.h
@@ -36,8 +36,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#endif /* USE_CURL */
#ifdef USE_VOIP
-#include "speex/speex.h"
-#include "speex/speex_preprocess.h"
+#include <opus.h>
#endif
// file full of random crap that gets used to create cl_guid
@@ -241,14 +240,11 @@ typedef struct {
#ifdef USE_VOIP
qboolean voipEnabled;
- qboolean speexInitialized;
- int speexFrameSize;
- int speexSampleRate;
+ qboolean voipCodecInitialized;
// incoming data...
// !!! FIXME: convert from parallel arrays to array of a struct.
- SpeexBits speexDecoderBits[MAX_CLIENTS];
- void *speexDecoder[MAX_CLIENTS];
+ OpusDecoder *opusDecoder[MAX_CLIENTS];
byte voipIncomingGeneration[MAX_CLIENTS];
int voipIncomingSequence[MAX_CLIENTS];
float voipGain[MAX_CLIENTS];
@@ -260,9 +256,7 @@ typedef struct {
// then we are sending to clientnum i.
uint8_t voipTargets[(MAX_CLIENTS + 7) / 8];
uint8_t voipFlags;
- SpeexPreprocessState *speexPreprocessor;
- SpeexBits speexEncoderBits;
- void *speexEncoder;
+ OpusEncoder *opusEncoder;
int voipOutgoingDataSize;
int voipOutgoingDataFrames;
int voipOutgoingSequence;
@@ -449,6 +443,13 @@ extern cvar_t *cl_voipGainDuringCapture;
extern cvar_t *cl_voipCaptureMult;
extern cvar_t *cl_voipShowMeter;
extern cvar_t *cl_voip;
+
+// 20ms at 48k
+#define VOIP_MAX_FRAME_SAMPLES ( 20 * 48 )
+
+// 3 frame is 60ms of audio, the max opus will encode at once
+#define VOIP_MAX_PACKET_FRAMES 3
+#define VOIP_MAX_PACKET_SAMPLES ( VOIP_MAX_FRAME_SAMPLES * VOIP_MAX_PACKET_FRAMES )
#endif
//=================================================