Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Side by Side Diff: webrtc/modules/audio_processing/aecm/echo_control_mobile.cc

Issue 2685783014: Replace NULL with nullptr in all C++ files. (Closed)
Patch Set: Fixing android. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 static int WebRtcAecm_DelayComp(AecMobile* aecmInst); 81 static int WebRtcAecm_DelayComp(AecMobile* aecmInst);
82 82
83 void* WebRtcAecm_Create() { 83 void* WebRtcAecm_Create() {
84 AecMobile* aecm = static_cast<AecMobile*>(malloc(sizeof(AecMobile))); 84 AecMobile* aecm = static_cast<AecMobile*>(malloc(sizeof(AecMobile)));
85 85
86 WebRtcSpl_Init(); 86 WebRtcSpl_Init();
87 87
88 aecm->aecmCore = WebRtcAecm_CreateCore(); 88 aecm->aecmCore = WebRtcAecm_CreateCore();
89 if (!aecm->aecmCore) { 89 if (!aecm->aecmCore) {
90 WebRtcAecm_Free(aecm); 90 WebRtcAecm_Free(aecm);
91 return NULL; 91 return nullptr;
92 } 92 }
93 93
94 aecm->farendBuf = WebRtc_CreateBuffer(kBufSizeSamp, 94 aecm->farendBuf = WebRtc_CreateBuffer(kBufSizeSamp,
95 sizeof(int16_t)); 95 sizeof(int16_t));
96 if (!aecm->farendBuf) 96 if (!aecm->farendBuf)
97 { 97 {
98 WebRtcAecm_Free(aecm); 98 WebRtcAecm_Free(aecm);
99 return NULL; 99 return nullptr;
100 } 100 }
101 101
102 aecm->initFlag = 0; 102 aecm->initFlag = 0;
103 103
104 #ifdef AEC_DEBUG 104 #ifdef AEC_DEBUG
105 aecm->aecmCore->farFile = fopen("aecFar.pcm","wb"); 105 aecm->aecmCore->farFile = fopen("aecFar.pcm","wb");
106 aecm->aecmCore->nearFile = fopen("aecNear.pcm","wb"); 106 aecm->aecmCore->nearFile = fopen("aecNear.pcm","wb");
107 aecm->aecmCore->outFile = fopen("aecOut.pcm","wb"); 107 aecm->aecmCore->outFile = fopen("aecOut.pcm","wb");
108 //aecm->aecmCore->outLpFile = fopen("aecOutLp.pcm","wb"); 108 //aecm->aecmCore->outLpFile = fopen("aecOutLp.pcm","wb");
109 109
110 aecm->bufFile = fopen("aecBuf.dat", "wb"); 110 aecm->bufFile = fopen("aecBuf.dat", "wb");
111 aecm->delayFile = fopen("aecDelay.dat", "wb"); 111 aecm->delayFile = fopen("aecDelay.dat", "wb");
112 aecm->preCompFile = fopen("preComp.pcm", "wb"); 112 aecm->preCompFile = fopen("preComp.pcm", "wb");
113 aecm->postCompFile = fopen("postComp.pcm", "wb"); 113 aecm->postCompFile = fopen("postComp.pcm", "wb");
114 #endif // AEC_DEBUG 114 #endif // AEC_DEBUG
115 return aecm; 115 return aecm;
116 } 116 }
117 117
118 void WebRtcAecm_Free(void* aecmInst) { 118 void WebRtcAecm_Free(void* aecmInst) {
119 AecMobile* aecm = static_cast<AecMobile*>(aecmInst); 119 AecMobile* aecm = static_cast<AecMobile*>(aecmInst);
120 120
121 if (aecm == NULL) { 121 if (aecm == nullptr) {
122 return; 122 return;
123 } 123 }
124 124
125 #ifdef AEC_DEBUG 125 #ifdef AEC_DEBUG
126 fclose(aecm->aecmCore->farFile); 126 fclose(aecm->aecmCore->farFile);
127 fclose(aecm->aecmCore->nearFile); 127 fclose(aecm->aecmCore->nearFile);
128 fclose(aecm->aecmCore->outFile); 128 fclose(aecm->aecmCore->outFile);
129 //fclose(aecm->aecmCore->outLpFile); 129 //fclose(aecm->aecmCore->outLpFile);
130 130
131 fclose(aecm->bufFile); 131 fclose(aecm->bufFile);
132 fclose(aecm->delayFile); 132 fclose(aecm->delayFile);
133 fclose(aecm->preCompFile); 133 fclose(aecm->preCompFile);
134 fclose(aecm->postCompFile); 134 fclose(aecm->postCompFile);
135 #endif // AEC_DEBUG 135 #endif // AEC_DEBUG
136 WebRtcAecm_FreeCore(aecm->aecmCore); 136 WebRtcAecm_FreeCore(aecm->aecmCore);
137 WebRtc_FreeBuffer(aecm->farendBuf); 137 WebRtc_FreeBuffer(aecm->farendBuf);
138 free(aecm); 138 free(aecm);
139 } 139 }
140 140
141 int32_t WebRtcAecm_Init(void *aecmInst, int32_t sampFreq) 141 int32_t WebRtcAecm_Init(void *aecmInst, int32_t sampFreq)
142 { 142 {
143 AecMobile* aecm = static_cast<AecMobile*>(aecmInst); 143 AecMobile* aecm = static_cast<AecMobile*>(aecmInst);
144 AecmConfig aecConfig; 144 AecmConfig aecConfig;
145 145
146 if (aecm == NULL) 146 if (aecm == nullptr) {
147 { 147 return -1;
148 return -1;
149 } 148 }
150 149
151 if (sampFreq != 8000 && sampFreq != 16000) 150 if (sampFreq != 8000 && sampFreq != 16000)
152 { 151 {
153 return AECM_BAD_PARAMETER_ERROR; 152 return AECM_BAD_PARAMETER_ERROR;
154 } 153 }
155 aecm->sampFreq = sampFreq; 154 aecm->sampFreq = sampFreq;
156 155
157 // Initialize AECM core 156 // Initialize AECM core
158 if (WebRtcAecm_InitCore(aecm->aecmCore, aecm->sampFreq) == -1) 157 if (WebRtcAecm_InitCore(aecm->aecmCore, aecm->sampFreq) == -1)
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 192
194 return 0; 193 return 0;
195 } 194 }
196 195
197 // Returns any error that is caused when buffering the 196 // Returns any error that is caused when buffering the
198 // farend signal. 197 // farend signal.
199 int32_t WebRtcAecm_GetBufferFarendError(void *aecmInst, const int16_t *farend, 198 int32_t WebRtcAecm_GetBufferFarendError(void *aecmInst, const int16_t *farend,
200 size_t nrOfSamples) { 199 size_t nrOfSamples) {
201 AecMobile* aecm = static_cast<AecMobile*>(aecmInst); 200 AecMobile* aecm = static_cast<AecMobile*>(aecmInst);
202 201
203 if (aecm == NULL) 202 if (aecm == nullptr)
204 return -1; 203 return -1;
205 204
206 if (farend == NULL) 205 if (farend == nullptr)
207 return AECM_NULL_POINTER_ERROR; 206 return AECM_NULL_POINTER_ERROR;
208 207
209 if (aecm->initFlag != kInitCheck) 208 if (aecm->initFlag != kInitCheck)
210 return AECM_UNINITIALIZED_ERROR; 209 return AECM_UNINITIALIZED_ERROR;
211 210
212 if (nrOfSamples != 80 && nrOfSamples != 160) 211 if (nrOfSamples != 80 && nrOfSamples != 160)
213 return AECM_BAD_PARAMETER_ERROR; 212 return AECM_BAD_PARAMETER_ERROR;
214 213
215 return 0; 214 return 0;
216 } 215 }
(...skipping 27 matching lines...) Expand all
244 AecMobile* aecm = static_cast<AecMobile*>(aecmInst); 243 AecMobile* aecm = static_cast<AecMobile*>(aecmInst);
245 int32_t retVal = 0; 244 int32_t retVal = 0;
246 size_t i; 245 size_t i;
247 short nmbrOfFilledBuffers; 246 short nmbrOfFilledBuffers;
248 size_t nBlocks10ms; 247 size_t nBlocks10ms;
249 size_t nFrames; 248 size_t nFrames;
250 #ifdef AEC_DEBUG 249 #ifdef AEC_DEBUG
251 short msInAECBuf; 250 short msInAECBuf;
252 #endif 251 #endif
253 252
254 if (aecm == NULL) 253 if (aecm == nullptr) {
255 { 254 return -1;
256 return -1;
257 } 255 }
258 256
259 if (nearendNoisy == NULL) 257 if (nearendNoisy == nullptr) {
260 { 258 return AECM_NULL_POINTER_ERROR;
261 return AECM_NULL_POINTER_ERROR;
262 } 259 }
263 260
264 if (out == NULL) 261 if (out == nullptr) {
265 { 262 return AECM_NULL_POINTER_ERROR;
266 return AECM_NULL_POINTER_ERROR;
267 } 263 }
268 264
269 if (aecm->initFlag != kInitCheck) 265 if (aecm->initFlag != kInitCheck)
270 { 266 {
271 return AECM_UNINITIALIZED_ERROR; 267 return AECM_UNINITIALIZED_ERROR;
272 } 268 }
273 269
274 if (nrOfSamples != 80 && nrOfSamples != 160) 270 if (nrOfSamples != 80 && nrOfSamples != 160)
275 { 271 {
276 return AECM_BAD_PARAMETER_ERROR; 272 return AECM_BAD_PARAMETER_ERROR;
277 } 273 }
278 274
279 if (msInSndCardBuf < 0) 275 if (msInSndCardBuf < 0)
280 { 276 {
281 msInSndCardBuf = 0; 277 msInSndCardBuf = 0;
282 retVal = AECM_BAD_PARAMETER_WARNING; 278 retVal = AECM_BAD_PARAMETER_WARNING;
283 } else if (msInSndCardBuf > 500) 279 } else if (msInSndCardBuf > 500)
284 { 280 {
285 msInSndCardBuf = 500; 281 msInSndCardBuf = 500;
286 retVal = AECM_BAD_PARAMETER_WARNING; 282 retVal = AECM_BAD_PARAMETER_WARNING;
287 } 283 }
288 msInSndCardBuf += 10; 284 msInSndCardBuf += 10;
289 aecm->msInSndCardBuf = msInSndCardBuf; 285 aecm->msInSndCardBuf = msInSndCardBuf;
290 286
291 nFrames = nrOfSamples / FRAME_LEN; 287 nFrames = nrOfSamples / FRAME_LEN;
292 nBlocks10ms = nFrames / aecm->aecmCore->mult; 288 nBlocks10ms = nFrames / aecm->aecmCore->mult;
293 289
294 if (aecm->ECstartup) 290 if (aecm->ECstartup)
295 { 291 {
296 if (nearendClean == NULL) 292 if (nearendClean == nullptr) {
297 { 293 if (out != nearendNoisy) {
298 if (out != nearendNoisy) 294 memcpy(out, nearendNoisy, sizeof(short) * nrOfSamples);
299 { 295 }
300 memcpy(out, nearendNoisy, sizeof(short) * nrOfSamples);
301 }
302 } else if (out != nearendClean) 296 } else if (out != nearendClean)
303 { 297 {
304 memcpy(out, nearendClean, sizeof(short) * nrOfSamples); 298 memcpy(out, nearendClean, sizeof(short) * nrOfSamples);
305 } 299 }
306 300
307 nmbrOfFilledBuffers = 301 nmbrOfFilledBuffers =
308 (short) WebRtc_available_read(aecm->farendBuf) / FRAME_LEN; 302 (short) WebRtc_available_read(aecm->farendBuf) / FRAME_LEN;
309 // The AECM is in the start up mode 303 // The AECM is in the start up mode
310 // AECM is disabled until the soundcard buffer and farend buffers are OK 304 // AECM is disabled until the soundcard buffer and farend buffers are OK
311 305
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 } 369 }
376 370
377 } else 371 } else
378 { 372 {
379 // AECM is enabled 373 // AECM is enabled
380 374
381 // Note only 1 block supported for nb and 2 blocks for wb 375 // Note only 1 block supported for nb and 2 blocks for wb
382 for (i = 0; i < nFrames; i++) 376 for (i = 0; i < nFrames; i++)
383 { 377 {
384 int16_t farend[FRAME_LEN]; 378 int16_t farend[FRAME_LEN];
385 const int16_t* farend_ptr = NULL; 379 const int16_t* farend_ptr = nullptr;
386 380
387 nmbrOfFilledBuffers = 381 nmbrOfFilledBuffers =
388 (short) WebRtc_available_read(aecm->farendBuf) / FRAME_LEN; 382 (short) WebRtc_available_read(aecm->farendBuf) / FRAME_LEN;
389 383
390 // Check that there is data in the far end buffer 384 // Check that there is data in the far end buffer
391 if (nmbrOfFilledBuffers > 0) 385 if (nmbrOfFilledBuffers > 0)
392 { 386 {
393 // Get the next 80 samples from the farend buffer 387 // Get the next 80 samples from the farend buffer
394 WebRtc_ReadBuffer(aecm->farendBuf, (void**) &farend_ptr, farend, 388 WebRtc_ReadBuffer(aecm->farendBuf, (void**) &farend_ptr, farend,
395 FRAME_LEN); 389 FRAME_LEN);
(...skipping 11 matching lines...) Expand all
407 // Call buffer delay estimator when all data is extracted, 401 // Call buffer delay estimator when all data is extracted,
408 // i,e. i = 0 for NB and i = 1 for WB 402 // i,e. i = 0 for NB and i = 1 for WB
409 if ((i == 0 && aecm->sampFreq == 8000) || (i == 1 && aecm->sampFreq == 16000)) 403 if ((i == 0 && aecm->sampFreq == 8000) || (i == 1 && aecm->sampFreq == 16000))
410 { 404 {
411 WebRtcAecm_EstBufDelay(aecm, aecm->msInSndCardBuf); 405 WebRtcAecm_EstBufDelay(aecm, aecm->msInSndCardBuf);
412 } 406 }
413 407
414 // Call the AECM 408 // Call the AECM
415 /*WebRtcAecm_ProcessFrame(aecm->aecmCore, farend, &nearend[FRAME_LEN * i], 409 /*WebRtcAecm_ProcessFrame(aecm->aecmCore, farend, &nearend[FRAME_LEN * i],
416 &out[FRAME_LEN * i], aecm->knownDelay);*/ 410 &out[FRAME_LEN * i], aecm->knownDelay);*/
417 if (WebRtcAecm_ProcessFrame(aecm->aecmCore, 411 if (WebRtcAecm_ProcessFrame(
418 farend_ptr, 412 aecm->aecmCore, farend_ptr, &nearendNoisy[FRAME_LEN * i],
419 &nearendNoisy[FRAME_LEN * i], 413 (nearendClean ? &nearendClean[FRAME_LEN * i] : nullptr),
420 (nearendClean 414 &out[FRAME_LEN * i]) == -1)
421 ? &nearendClean[FRAME_LEN * i] 415 return -1;
422 : NULL),
423 &out[FRAME_LEN * i]) == -1)
424 return -1;
425 } 416 }
426 } 417 }
427 418
428 #ifdef AEC_DEBUG 419 #ifdef AEC_DEBUG
429 msInAECBuf = (short) WebRtc_available_read(aecm->farendBuf) / 420 msInAECBuf = (short) WebRtc_available_read(aecm->farendBuf) /
430 (kSampMsNb * aecm->aecmCore->mult); 421 (kSampMsNb * aecm->aecmCore->mult);
431 fwrite(&msInAECBuf, 2, 1, aecm->bufFile); 422 fwrite(&msInAECBuf, 2, 1, aecm->bufFile);
432 fwrite(&(aecm->knownDelay), sizeof(aecm->knownDelay), 1, aecm->delayFile); 423 fwrite(&(aecm->knownDelay), sizeof(aecm->knownDelay), 1, aecm->delayFile);
433 #endif 424 #endif
434 425
435 return retVal; 426 return retVal;
436 } 427 }
437 428
438 int32_t WebRtcAecm_set_config(void *aecmInst, AecmConfig config) 429 int32_t WebRtcAecm_set_config(void *aecmInst, AecmConfig config)
439 { 430 {
440 AecMobile* aecm = static_cast<AecMobile*>(aecmInst); 431 AecMobile* aecm = static_cast<AecMobile*>(aecmInst);
441 432
442 if (aecm == NULL) 433 if (aecm == nullptr) {
443 { 434 return -1;
444 return -1;
445 } 435 }
446 436
447 if (aecm->initFlag != kInitCheck) 437 if (aecm->initFlag != kInitCheck)
448 { 438 {
449 return AECM_UNINITIALIZED_ERROR; 439 return AECM_UNINITIALIZED_ERROR;
450 } 440 }
451 441
452 if (config.cngMode != AecmFalse && config.cngMode != AecmTrue) 442 if (config.cngMode != AecmFalse && config.cngMode != AecmTrue)
453 { 443 {
454 return AECM_BAD_PARAMETER_ERROR; 444 return AECM_BAD_PARAMETER_ERROR;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 return 0; 504 return 0;
515 } 505 }
516 506
517 int32_t WebRtcAecm_InitEchoPath(void* aecmInst, 507 int32_t WebRtcAecm_InitEchoPath(void* aecmInst,
518 const void* echo_path, 508 const void* echo_path,
519 size_t size_bytes) 509 size_t size_bytes)
520 { 510 {
521 AecMobile* aecm = static_cast<AecMobile*>(aecmInst); 511 AecMobile* aecm = static_cast<AecMobile*>(aecmInst);
522 const int16_t* echo_path_ptr = static_cast<const int16_t*>(echo_path); 512 const int16_t* echo_path_ptr = static_cast<const int16_t*>(echo_path);
523 513
524 if (aecmInst == NULL) { 514 if (aecmInst == nullptr) {
525 return -1; 515 return -1;
526 } 516 }
527 if (echo_path == NULL) { 517 if (echo_path == nullptr) {
528 return AECM_NULL_POINTER_ERROR; 518 return AECM_NULL_POINTER_ERROR;
529 } 519 }
530 if (size_bytes != WebRtcAecm_echo_path_size_bytes()) 520 if (size_bytes != WebRtcAecm_echo_path_size_bytes())
531 { 521 {
532 // Input channel size does not match the size of AECM 522 // Input channel size does not match the size of AECM
533 return AECM_BAD_PARAMETER_ERROR; 523 return AECM_BAD_PARAMETER_ERROR;
534 } 524 }
535 if (aecm->initFlag != kInitCheck) 525 if (aecm->initFlag != kInitCheck)
536 { 526 {
537 return AECM_UNINITIALIZED_ERROR; 527 return AECM_UNINITIALIZED_ERROR;
538 } 528 }
539 529
540 WebRtcAecm_InitEchoPathCore(aecm->aecmCore, echo_path_ptr); 530 WebRtcAecm_InitEchoPathCore(aecm->aecmCore, echo_path_ptr);
541 531
542 return 0; 532 return 0;
543 } 533 }
544 534
545 int32_t WebRtcAecm_GetEchoPath(void* aecmInst, 535 int32_t WebRtcAecm_GetEchoPath(void* aecmInst,
546 void* echo_path, 536 void* echo_path,
547 size_t size_bytes) 537 size_t size_bytes)
548 { 538 {
549 AecMobile* aecm = static_cast<AecMobile*>(aecmInst); 539 AecMobile* aecm = static_cast<AecMobile*>(aecmInst);
550 int16_t* echo_path_ptr = static_cast<int16_t*>(echo_path); 540 int16_t* echo_path_ptr = static_cast<int16_t*>(echo_path);
551 541
552 if (aecmInst == NULL) { 542 if (aecmInst == nullptr) {
553 return -1; 543 return -1;
554 } 544 }
555 if (echo_path == NULL) { 545 if (echo_path == nullptr) {
556 return AECM_NULL_POINTER_ERROR; 546 return AECM_NULL_POINTER_ERROR;
557 } 547 }
558 if (size_bytes != WebRtcAecm_echo_path_size_bytes()) 548 if (size_bytes != WebRtcAecm_echo_path_size_bytes())
559 { 549 {
560 // Input channel size does not match the size of AECM 550 // Input channel size does not match the size of AECM
561 return AECM_BAD_PARAMETER_ERROR; 551 return AECM_BAD_PARAMETER_ERROR;
562 } 552 }
563 if (aecm->initFlag != kInitCheck) 553 if (aecm->initFlag != kInitCheck)
564 { 554 {
565 return AECM_UNINITIALIZED_ERROR; 555 return AECM_UNINITIALIZED_ERROR;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 nSampAdd = (int)(WEBRTC_SPL_MAX(((nSampSndCard >> 1) - nSampFar), 629 nSampAdd = (int)(WEBRTC_SPL_MAX(((nSampSndCard >> 1) - nSampFar),
640 FRAME_LEN)); 630 FRAME_LEN));
641 nSampAdd = WEBRTC_SPL_MIN(nSampAdd, maxStuffSamp); 631 nSampAdd = WEBRTC_SPL_MIN(nSampAdd, maxStuffSamp);
642 632
643 WebRtc_MoveReadPtr(aecm->farendBuf, -nSampAdd); 633 WebRtc_MoveReadPtr(aecm->farendBuf, -nSampAdd);
644 aecm->delayChange = 1; // the delay needs to be updated 634 aecm->delayChange = 1; // the delay needs to be updated
645 } 635 }
646 636
647 return 0; 637 return 0;
648 } 638 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698