Chromium Code Reviews| Index: webrtc/modules/audio_coding/neteq/test/RTPencode.cc |
| diff --git a/webrtc/modules/audio_coding/neteq/test/RTPencode.cc b/webrtc/modules/audio_coding/neteq/test/RTPencode.cc |
| index 45586ee111c655ae0b6f28ffd339ed74bcfc32fc..82e9f53d34566a69ec513fe38d800d7062f13ee2 100644 |
| --- a/webrtc/modules/audio_coding/neteq/test/RTPencode.cc |
| +++ b/webrtc/modules/audio_coding/neteq/test/RTPencode.cc |
| @@ -265,7 +265,7 @@ GSMFR_encinst_t* GSMFRenc_inst[2]; |
| #endif |
| #if (defined(CODEC_CNGCODEC8) || defined(CODEC_CNGCODEC16) || \ |
| defined(CODEC_CNGCODEC32) || defined(CODEC_CNGCODEC48)) |
| -CNG_enc_inst* CNGenc_inst[2]; |
| +webrtc::ComfortNoiseEncoder *CNG_encoder[2]; |
| #endif |
| #ifdef CODEC_SPEEX_8 |
| SPEEX_encinst_t* SPEEX8enc_inst[2]; |
| @@ -928,18 +928,8 @@ int NetEQTest_init_coders(webrtc::NetEqDecoder coder, |
| #if (defined(CODEC_CNGCODEC8) || defined(CODEC_CNGCODEC16) || \ |
| defined(CODEC_CNGCODEC32) || defined(CODEC_CNGCODEC48)) |
| - ok = WebRtcCng_CreateEnc(&CNGenc_inst[k]); |
| - if (ok != 0) { |
| - printf("Error: Couldn't allocate memory for CNG encoding instance\n"); |
| - exit(0); |
| - } |
| if (sampfreq <= 16000) { |
| - ok = WebRtcCng_InitEnc(CNGenc_inst[k], sampfreq, 200, 5); |
| - if (ok == -1) { |
| - printf("Error: Initialization of CNG struct failed. Error code %d\n", |
| - WebRtcCng_GetErrorCodeEnc(CNGenc_inst[k])); |
| - exit(0); |
| - } |
| + CNG_encoder[k] = new webrtc::ComfortNoiseEncoder(sampfreq, 200, 5); |
| } |
| #endif |
| @@ -1461,7 +1451,7 @@ int NetEQTest_free_coders(webrtc::NetEqDecoder coder, size_t numChannels) { |
| WebRtcVad_Free(VAD_inst[k]); |
| #if (defined(CODEC_CNGCODEC8) || defined(CODEC_CNGCODEC16) || \ |
| defined(CODEC_CNGCODEC32) || defined(CODEC_CNGCODEC48)) |
| - WebRtcCng_FreeEnc(CNGenc_inst[k]); |
| + delete CNG_encoder[k]; |
|
ossu
2016/04/19 09:50:26
I should probably null CNG_encoder[k] here as well
|
| #endif |
| switch (coder) { |
| @@ -1600,7 +1590,7 @@ size_t NetEQTest_encode(webrtc::NetEqDecoder coder, |
| size_t numChannels) { |
| size_t cdlen = 0; |
| int16_t* tempdata; |
| - static int first_cng = 1; |
| + static bool first_cng = true; |
| size_t tempLen; |
| *vad = 1; |
| @@ -1608,9 +1598,9 @@ size_t NetEQTest_encode(webrtc::NetEqDecoder coder, |
| if (useVAD) { |
| *vad = 0; |
| - size_t sampleRate_10 = static_cast<size_t>(10 * sampleRate / 1000); |
| - size_t sampleRate_20 = static_cast<size_t>(20 * sampleRate / 1000); |
| - size_t sampleRate_30 = static_cast<size_t>(30 * sampleRate / 1000); |
| + const size_t sampleRate_10 = static_cast<size_t>(10 * sampleRate / 1000); |
| + const size_t sampleRate_20 = static_cast<size_t>(20 * sampleRate / 1000); |
| + const size_t sampleRate_30 = static_cast<size_t>(30 * sampleRate / 1000); |
| for (size_t k = 0; k < numChannels; k++) { |
| tempLen = frameLen; |
| tempdata = &indata[k * frameLen]; |
| @@ -1642,16 +1632,22 @@ size_t NetEQTest_encode(webrtc::NetEqDecoder coder, |
| if (!*vad) { |
| // all channels are silent |
| + rtc::Buffer workaround; |
| cdlen = 0; |
| for (size_t k = 0; k < numChannels; k++) { |
| - WebRtcCng_Encode(CNGenc_inst[k], &indata[k * frameLen], |
| - (frameLen <= 640 ? frameLen : 640) /* max 640 */, |
| - encoded, &tempLen, first_cng); |
| + workaround.Clear(); |
| + tempLen = CNG_encoder[k]->Encode( |
| + rtc::ArrayView<const int16_t>( |
| + &indata[k * frameLen], |
| + (frameLen <= 640 ? frameLen : 640) /* max 640 */), |
| + first_cng, |
| + &workaround); |
| + memcpy(encoded, workaround.data(), tempLen); |
| encoded += tempLen; |
| cdlen += tempLen; |
| } |
| *vad = 0; |
| - first_cng = 0; |
| + first_cng = false; |
| return (cdlen); |
| } |
| } |
| @@ -1734,7 +1730,7 @@ size_t NetEQTest_encode(webrtc::NetEqDecoder coder, |
| } // end for |
| - first_cng = 1; |
| + first_cng = true; |
| return (totalLen); |
| } |