VOIP: Added cvar cl_voipCaptureMult to boost gain on recorded bits.

This commit is contained in:
Ryan C. Gordon 2008-07-05 04:38:16 +00:00
parent 894a22ec84
commit 1e21a3e258
3 changed files with 15 additions and 1 deletions

View file

@ -39,6 +39,7 @@ cvar_t *cl_voipVADThreshold;
cvar_t *cl_voipSend; cvar_t *cl_voipSend;
cvar_t *cl_voipSendTarget; cvar_t *cl_voipSendTarget;
cvar_t *cl_voipGainDuringCapture; cvar_t *cl_voipGainDuringCapture;
cvar_t *cl_voipCaptureMult;
cvar_t *cl_voipShowMeter; cvar_t *cl_voipShowMeter;
cvar_t *voip; cvar_t *voip;
#endif #endif
@ -268,6 +269,7 @@ Record more audio from the hardware if required and encode it into Speex
static static
void CL_CaptureVoip(void) void CL_CaptureVoip(void)
{ {
const float audioMult = cl_voipCaptureMult->value;
const qboolean useVad = (cl_voipUseVAD->integer != 0); const qboolean useVad = (cl_voipUseVAD->integer != 0);
qboolean initialFrame = qfalse; qboolean initialFrame = qfalse;
qboolean finalFrame = qfalse; qboolean finalFrame = qfalse;
@ -304,6 +306,8 @@ void CL_CaptureVoip(void)
dontCapture = qtrue; // playing back a demo. dontCapture = qtrue; // playing back a demo.
else if ( voip->integer == 0 ) else if ( voip->integer == 0 )
dontCapture = qtrue; // client has VoIP support disabled. dontCapture = qtrue; // client has VoIP support disabled.
else if ( audioMult == 0.0f )
dontCapture = qtrue; // basically silenced incoming audio.
cl_voipSend->modified = qfalse; cl_voipSend->modified = qfalse;
@ -362,8 +366,10 @@ void CL_CaptureVoip(void)
// check the "power" of this packet... // check the "power" of this packet...
for (i = 0; i < clc.speexFrameSize; i++) { for (i = 0; i < clc.speexFrameSize; i++) {
const float s = fabs((float) sampptr[i]); const float flsamp = (float) sampptr[i];
const float s = fabs(flsamp);
voipPower += s * s; voipPower += s * s;
sampptr[i] = (int16_t) ((flsamp) * audioMult);
} }
// encode raw audio samples into Speex data... // encode raw audio samples into Speex data...
@ -3089,6 +3095,7 @@ void CL_Init( void ) {
cl_voipSend = Cvar_Get ("cl_voipSend", "0", 0); cl_voipSend = Cvar_Get ("cl_voipSend", "0", 0);
cl_voipSendTarget = Cvar_Get ("cl_voipSendTarget", "all", 0); cl_voipSendTarget = Cvar_Get ("cl_voipSendTarget", "all", 0);
cl_voipGainDuringCapture = Cvar_Get ("cl_voipGainDuringCapture", "0.2", CVAR_ARCHIVE); cl_voipGainDuringCapture = Cvar_Get ("cl_voipGainDuringCapture", "0.2", CVAR_ARCHIVE);
cl_voipCaptureMult = Cvar_Get ("cl_voipCaptureMult", "2.0", CVAR_ARCHIVE);
cl_voipUseVAD = Cvar_Get ("cl_voipUseVAD", "0", CVAR_ARCHIVE); cl_voipUseVAD = Cvar_Get ("cl_voipUseVAD", "0", CVAR_ARCHIVE);
cl_voipVADThreshold = Cvar_Get ("cl_voipVADThreshold", "0.25", CVAR_ARCHIVE); cl_voipVADThreshold = Cvar_Get ("cl_voipVADThreshold", "0.25", CVAR_ARCHIVE);
cl_voipShowMeter = Cvar_Get ("cl_voipShowMeter", "1", CVAR_ARCHIVE); cl_voipShowMeter = Cvar_Get ("cl_voipShowMeter", "1", CVAR_ARCHIVE);

View file

@ -416,6 +416,7 @@ extern cvar_t *cl_voipVADThreshold;
extern cvar_t *cl_voipSend; extern cvar_t *cl_voipSend;
extern cvar_t *cl_voipSendTarget; extern cvar_t *cl_voipSendTarget;
extern cvar_t *cl_voipGainDuringCapture; extern cvar_t *cl_voipGainDuringCapture;
extern cvar_t *cl_voipCaptureMult;
extern cvar_t *cl_voipShowMeter; extern cvar_t *cl_voipShowMeter;
extern cvar_t *voip; extern cvar_t *voip;
#endif #endif

View file

@ -94,6 +94,12 @@ cl_voipShowMeter: Set to "1" (the default) to show a volume meter as you are
game can "hear" you. Set to "0" to disable the display of game can "hear" you. Set to "0" to disable the display of
the meter. the meter.
cl_voipCaptureMult: Multiply recorded audio by this value after denoising.
Defaults to 2.0 to _double_ the volume of your voice.
This is to make you more audible if denoising eats away
too much data. Set this to 1.0 to get no change, less to
be quieter.
Console commands: Console commands: