mirror of
https://github.com/ioquake/ioq3.git
synced 2024-11-10 07:11:46 +00:00
VoIP: Initial work on adding Speex preprocessor.
This commit is contained in:
parent
26c706df15
commit
c50799fcf7
3 changed files with 14 additions and 2 deletions
|
@ -922,12 +922,20 @@ void CL_FirstSnapshot( void ) {
|
|||
int i;
|
||||
speex_bits_init(&clc.speexEncoderBits);
|
||||
speex_bits_reset(&clc.speexEncoderBits);
|
||||
|
||||
clc.speexEncoder = speex_encoder_init(&speex_nb_mode);
|
||||
|
||||
speex_encoder_ctl(clc.speexEncoder, SPEEX_GET_FRAME_SIZE,
|
||||
&clc.speexFrameSize);
|
||||
speex_encoder_ctl(clc.speexEncoder, SPEEX_GET_SAMPLING_RATE,
|
||||
&clc.speexSamplingRate);
|
||||
&clc.speexSampleRate);
|
||||
|
||||
clc.speexPreprocessor = speex_preprocess_state_init(clc.speexFrameSize,
|
||||
clc.speexSampleRate);
|
||||
|
||||
i = 1;
|
||||
speex_preprocess_ctl(clc.speexPreprocessor,
|
||||
SPEEX_PREPROCESS_SET_DENOISE, &i);
|
||||
|
||||
for (i = 0; i < MAX_CLIENTS; i++) {
|
||||
speex_bits_init(&clc.speexDecoderBits[i]);
|
||||
|
|
|
@ -345,6 +345,8 @@ void CL_CaptureVoip(void)
|
|||
voipPower = s; // !!! FIXME: this isn't very clever.
|
||||
}
|
||||
|
||||
speex_preprocess_run(clc.speexPreprocessor, &sampbuffer[pos]);
|
||||
|
||||
// Encode raw audio samples into Speex data...
|
||||
speex_bits_reset(&clc.speexEncoderBits);
|
||||
speex_encode_int(clc.speexEncoder, &sampbuffer[pos],
|
||||
|
@ -1136,12 +1138,12 @@ void CL_Disconnect( qboolean showMainMenu ) {
|
|||
int i;
|
||||
speex_bits_destroy(&clc.speexEncoderBits);
|
||||
speex_encoder_destroy(clc.speexEncoder);
|
||||
speex_preprocess_state_destroy(clc.speexPreprocessor);
|
||||
for (i = 0; i < MAX_CLIENTS; i++) {
|
||||
speex_bits_destroy(&clc.speexDecoderBits[i]);
|
||||
speex_decoder_destroy(clc.speexDecoder[i]);
|
||||
}
|
||||
}
|
||||
|
||||
Cmd_RemoveCommand ("voip");
|
||||
#endif
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
|
||||
#if USE_VOIP
|
||||
#include "speex/speex.h"
|
||||
#include "speex/speex_preprocess.h"
|
||||
#endif
|
||||
|
||||
// file full of random crap that gets used to create cl_guid
|
||||
|
@ -248,6 +249,7 @@ typedef struct {
|
|||
int voipTarget1; // these three ints make up a bit mask of 92 bits.
|
||||
int voipTarget2; // the bits say who a VoIP pack is addressed to:
|
||||
int voipTarget3; // (1 << clientnum). See cl_voipSendTarget cvar.
|
||||
SpeexPreprocessState *speexPreprocessor;
|
||||
SpeexBits speexEncoderBits;
|
||||
void *speexEncoder;
|
||||
int voipOutgoingDataSize;
|
||||
|
|
Loading…
Reference in a new issue