diff --git a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp index 92cd12ed83f2d01c93d5d6eef11e6c4e641b6fd0..ca19131164c371e5c4e2303c56f5879ecb0dcfcb 100644 --- a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp +++ b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp @@ -78,7 +78,7 @@ class Speex : public AudioCodec speex_decoder_ctl (_speex_dec_state, SPEEX_GET_FRAME_SIZE, &_speex_frame_size); - + /* #ifdef HAVE_SPEEXDSP_LIB int enable = 1; @@ -101,6 +101,7 @@ class Speex : public AudioCodec speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_VAD, &enable); speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_AGC, &enable); #endif + */ } @@ -136,11 +137,12 @@ class Speex : public AudioCodec virtual int codecEncode (unsigned char *dst, short *src, unsigned int size) { speex_bits_reset (&_speex_enc_bits); + /* #ifdef HAVE_SPEEXDSP_LIB speex_preprocess_run (_preprocess_state, src); #endif - + */ speex_encode_int (_speex_enc_state, src, &_speex_enc_bits); int nbBytes = speex_bits_write (&_speex_enc_bits, (char*) dst, size); diff --git a/sflphone-common/src/audio/codecs/speexcodec_ub.cpp b/sflphone-common/src/audio/codecs/speexcodec_ub.cpp index 84be794ecaa2940080a83943eec6fb0ad5271d13..738b32331e31163fc7a700cf8581c2df4f5a0331 100644 --- a/sflphone-common/src/audio/codecs/speexcodec_ub.cpp +++ b/sflphone-common/src/audio/codecs/speexcodec_ub.cpp @@ -79,6 +79,7 @@ class Speex : public AudioCodec speex_decoder_ctl (_speex_dec_state, SPEEX_GET_FRAME_SIZE, &_speex_frame_size); + /* #ifdef HAVE_SPEEXDSP_LIB int enable = 1; @@ -100,7 +101,7 @@ class Speex : public AudioCodec speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_VAD, &enable); speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_AGC, &enable); #endif - + */ } ~Speex() { @@ -135,11 +136,12 @@ class Speex : public AudioCodec virtual int codecEncode (unsigned char *dst, short *src, unsigned int size) { speex_bits_reset (&_speex_enc_bits); + /* #ifdef HAVE_SPEEXDSP_LIB speex_preprocess_run (_preprocess_state, src); #endif - + */ speex_encode_int (_speex_enc_state, src, &_speex_enc_bits); speex_bits_nbytes (&_speex_enc_bits); diff --git a/sflphone-common/src/audio/codecs/speexcodec_wb.cpp b/sflphone-common/src/audio/codecs/speexcodec_wb.cpp index 19f9da9c67398f836d523e72161e43a8e98e539b..78559ad3faf97ac09991cd76f67d44687695010f 100644 --- a/sflphone-common/src/audio/codecs/speexcodec_wb.cpp +++ b/sflphone-common/src/audio/codecs/speexcodec_wb.cpp @@ -77,6 +77,7 @@ class Speex : public AudioCodec speex_decoder_ctl (_speex_dec_state, SPEEX_GET_FRAME_SIZE, &_speex_frame_size); + /* #ifdef HAVE_SPEEXDSP_LIB int enable = 1; @@ -99,6 +100,7 @@ class Speex : public AudioCodec speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_VAD, &enable); speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_AGC, &enable); #endif + */ } @@ -135,10 +137,12 @@ class Speex : public AudioCodec virtual int codecEncode (unsigned char *dst, short *src, unsigned int size) { speex_bits_reset (&_speex_enc_bits); + /* #ifdef HAVE_SPEEXDSP_LIB speex_preprocess_run (_preprocess_state, src); #endif + */ //printf ("Codec::codecEncode() size %i\n", size); speex_encode_int (_speex_enc_state, src, &_speex_enc_bits); diff --git a/sflphone-common/src/audio/delaydetection.cpp b/sflphone-common/src/audio/delaydetection.cpp index e8430fd4678b296196903d15d6dc73d83ca8c769..5c6ab4d742644ed469eb6ab426030680173ab82b 100644 --- a/sflphone-common/src/audio/delaydetection.cpp +++ b/sflphone-common/src/audio/delaydetection.cpp @@ -223,7 +223,7 @@ void DelayDetection::process(SFLDataFormat *inputData, int nbBytes) { _debug("MaxIndex: %d", maxIndex); - reset(); + // reset(); } int DelayDetection::process(SFLDataFormat *intputData, SFLDataFormat *outputData, int nbBytes) { return 0; } diff --git a/sflphone-common/src/audio/echocancel.cpp b/sflphone-common/src/audio/echocancel.cpp index e3a84103d0bb89beea8b19a4776a390576bc332e..c733ade3c755b1fd45fee5d5975475f190cb7322 100644 --- a/sflphone-common/src/audio/echocancel.cpp +++ b/sflphone-common/src/audio/echocancel.cpp @@ -90,15 +90,17 @@ EchoCancel::EchoCancel(int smplRate, int frameLength) : _samplingRate(smplRate), _spkrHistoryLength = SPKR_LENGTH / SEGMENT_LENGTH; _nbSegmentPerFrame = _frameLength / SEGMENT_LENGTH; -#ifdef HAVE_SPEEXDSP_LIB + // #ifdef HAVE_SPEEXDSP_LIB _noiseState = speex_preprocess_state_init(_smplPerFrame, _samplingRate); int i=1; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DENOISE, &i); - i=-30; + i=-10; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, &i); i=0; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC, &i); i=8000; + speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC_TARGET, &i); + i=16000; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC_LEVEL, &i); i=0; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB, &i); @@ -106,7 +108,9 @@ EchoCancel::EchoCancel(int smplRate, int frameLength) : _samplingRate(smplRate), speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB_DECAY, &f); f=0.0; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB_LEVEL, &f); -#endif + i = 0; + speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_VAD, &i); + // #endif memset(_avgSpkrLevelHist, 0, BUFF_SIZE*sizeof(int)); memset(_avgMicLevelHist, 0, BUFF_SIZE*sizeof(int)); @@ -131,9 +135,9 @@ EchoCancel::~EchoCancel() delete _spkrData; _spkrData = NULL; -#ifdef HAVE_SPEEXDSP_LIB + // #ifdef HAVE_SPEEXDSP_LIB speex_preprocess_state_destroy(_noiseState); -#endif + // #endif // micFile->close(); // spkrFile->close(); @@ -185,17 +189,19 @@ void EchoCancel::reset() _spkrData->flushAll(); _spkrDataOut->flushAll(); -#ifdef HAVE_SPEEXDSP_LIB + // #ifdef HAVE_SPEEXDSP_LIB speex_preprocess_state_destroy(_noiseState); _noiseState = speex_preprocess_state_init(_smplPerFrame, _samplingRate); int i=1; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DENOISE, &i); - i=-30; + i=-10; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, &i); i=0; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC, &i); i=8000; + speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC_TARGET, &i); + i=16000; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC_LEVEL, &i); i=0; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB, &i); @@ -203,7 +209,8 @@ void EchoCancel::reset() speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB_DECAY, &f); f=0.0; speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB_LEVEL, &f); -#endif + + // #endif _spkrStoped = true; @@ -283,11 +290,12 @@ int EchoCancel::process(SFLDataFormat *inputData, SFLDataFormat *outputData, int // micFile->write((const char *)_tmpMic, byteSize); // spkrFile->write((const char *)_tmpSpkr, byteSize); -#ifdef HAVE_SPEEXDSP_LIB + // #ifdef HAVE_SPEEXDSP_LIB + // Remove noise if(_noiseActive) speex_preprocess_run(_noiseState, _tmpMic); -#endif + // #endif // Processed echo cancellation performEchoCancel(_tmpMic, _tmpSpkr, _tmpOut); @@ -320,7 +328,6 @@ int EchoCancel::process(SFLDataFormat *inputData, SFLDataFormat *outputData, int // if spkrAvail is twice the size of a frame discard it, this data is late and won't be used if(spkrAvail > (2*byteSize)) { - _debug("EchoCancel: Discard echo cancel"); _spkrData->Discard(spkrAvail-(2*byteSize)); } diff --git a/sflphone-common/src/audio/echocancel.h b/sflphone-common/src/audio/echocancel.h index f5725d9141c1b4d097b02c8ee09b5288d879ffe3..e0ceda0445a67dc636a89df8874b21367b6a0c54 100644 --- a/sflphone-common/src/audio/echocancel.h +++ b/sflphone-common/src/audio/echocancel.h @@ -364,12 +364,12 @@ class EchoCancel : public Algorithm { ofstream *micLevelData; ofstream *spkrLevelData; -#ifdef HAVE_SPEEXDSP_LIB + // #ifdef HAVE_SPEEXDSP_LIB /** * Noise reduction processing state */ SpeexPreprocessState *_noiseState; -#endif + // #endif /** * true if noise suppressor is active, false elsewhere