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

Side by Side Diff: webrtc/modules/audio_processing/utility/delay_estimator.cc

Issue 1878613002: Changed the delay estimator to be built using C++ (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Corrected all Cpp build errors Created 4 years, 8 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 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 269
270 free(self); 270 free(self);
271 } 271 }
272 272
273 BinaryDelayEstimatorFarend* WebRtc_CreateBinaryDelayEstimatorFarend( 273 BinaryDelayEstimatorFarend* WebRtc_CreateBinaryDelayEstimatorFarend(
274 int history_size) { 274 int history_size) {
275 BinaryDelayEstimatorFarend* self = NULL; 275 BinaryDelayEstimatorFarend* self = NULL;
276 276
277 if (history_size > 1) { 277 if (history_size > 1) {
278 // Sanity conditions fulfilled. 278 // Sanity conditions fulfilled.
279 self = malloc(sizeof(BinaryDelayEstimatorFarend)); 279 self = static_cast<BinaryDelayEstimatorFarend*>(
280 malloc(sizeof(BinaryDelayEstimatorFarend)));
280 } 281 }
281 if (self == NULL) { 282 if (self == NULL) {
282 return NULL; 283 return NULL;
283 } 284 }
284 285
285 self->history_size = 0; 286 self->history_size = 0;
286 self->binary_far_history = NULL; 287 self->binary_far_history = NULL;
287 self->far_bit_counts = NULL; 288 self->far_bit_counts = NULL;
288 if (WebRtc_AllocateFarendBufferMemory(self, history_size) == 0) { 289 if (WebRtc_AllocateFarendBufferMemory(self, history_size) == 0) {
289 WebRtc_FreeBinaryDelayEstimatorFarend(self); 290 WebRtc_FreeBinaryDelayEstimatorFarend(self);
290 self = NULL; 291 self = NULL;
291 } 292 }
292 return self; 293 return self;
293 } 294 }
294 295
295 int WebRtc_AllocateFarendBufferMemory(BinaryDelayEstimatorFarend* self, 296 int WebRtc_AllocateFarendBufferMemory(BinaryDelayEstimatorFarend* self,
296 int history_size) { 297 int history_size) {
297 assert(self != NULL); 298 assert(self != NULL);
298 // (Re-)Allocate memory for history buffers. 299 // (Re-)Allocate memory for history buffers.
299 self->binary_far_history = 300 self->binary_far_history = static_cast<uint32_t*>(
300 realloc(self->binary_far_history, 301 realloc(self->binary_far_history,
301 history_size * sizeof(*self->binary_far_history)); 302 history_size * sizeof(*self->binary_far_history)));
302 self->far_bit_counts = realloc(self->far_bit_counts, 303 self->far_bit_counts = static_cast<int*>(
303 history_size * sizeof(*self->far_bit_counts)); 304 realloc(self->far_bit_counts,
305 history_size * sizeof(*self->far_bit_counts)));
304 if ((self->binary_far_history == NULL) || (self->far_bit_counts == NULL)) { 306 if ((self->binary_far_history == NULL) || (self->far_bit_counts == NULL)) {
305 history_size = 0; 307 history_size = 0;
306 } 308 }
307 // Fill with zeros if we have expanded the buffers. 309 // Fill with zeros if we have expanded the buffers.
308 if (history_size > self->history_size) { 310 if (history_size > self->history_size) {
309 int size_diff = history_size - self->history_size; 311 int size_diff = history_size - self->history_size;
310 memset(&self->binary_far_history[self->history_size], 312 memset(&self->binary_far_history[self->history_size],
311 0, 313 0,
312 sizeof(*self->binary_far_history) * size_diff); 314 sizeof(*self->binary_far_history) * size_diff);
313 memset(&self->far_bit_counts[self->history_size], 315 memset(&self->far_bit_counts[self->history_size],
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 399
398 free(self); 400 free(self);
399 } 401 }
400 402
401 BinaryDelayEstimator* WebRtc_CreateBinaryDelayEstimator( 403 BinaryDelayEstimator* WebRtc_CreateBinaryDelayEstimator(
402 BinaryDelayEstimatorFarend* farend, int max_lookahead) { 404 BinaryDelayEstimatorFarend* farend, int max_lookahead) {
403 BinaryDelayEstimator* self = NULL; 405 BinaryDelayEstimator* self = NULL;
404 406
405 if ((farend != NULL) && (max_lookahead >= 0)) { 407 if ((farend != NULL) && (max_lookahead >= 0)) {
406 // Sanity conditions fulfilled. 408 // Sanity conditions fulfilled.
407 self = malloc(sizeof(BinaryDelayEstimator)); 409 self = static_cast<BinaryDelayEstimator*>(
410 malloc(sizeof(BinaryDelayEstimator)));
408 } 411 }
409 if (self == NULL) { 412 if (self == NULL) {
410 return NULL; 413 return NULL;
411 } 414 }
412 415
413 self->farend = farend; 416 self->farend = farend;
414 self->near_history_size = max_lookahead + 1; 417 self->near_history_size = max_lookahead + 1;
415 self->history_size = 0; 418 self->history_size = 0;
416 self->robust_validation_enabled = 0; // Disabled by default. 419 self->robust_validation_enabled = 0; // Disabled by default.
417 self->allowed_offset = 0; 420 self->allowed_offset = 0;
418 421
419 self->lookahead = max_lookahead; 422 self->lookahead = max_lookahead;
420 423
421 // Allocate memory for spectrum and history buffers. 424 // Allocate memory for spectrum and history buffers.
422 self->mean_bit_counts = NULL; 425 self->mean_bit_counts = NULL;
423 self->bit_counts = NULL; 426 self->bit_counts = NULL;
424 self->histogram = NULL; 427 self->histogram = NULL;
425 self->binary_near_history = 428 self->binary_near_history = static_cast<uint32_t*>(
426 malloc((max_lookahead + 1) * sizeof(*self->binary_near_history)); 429 malloc((max_lookahead + 1) * sizeof(*self->binary_near_history)));
427 if (self->binary_near_history == NULL || 430 if (self->binary_near_history == NULL ||
428 WebRtc_AllocateHistoryBufferMemory(self, farend->history_size) == 0) { 431 WebRtc_AllocateHistoryBufferMemory(self, farend->history_size) == 0) {
429 WebRtc_FreeBinaryDelayEstimator(self); 432 WebRtc_FreeBinaryDelayEstimator(self);
430 self = NULL; 433 self = NULL;
431 } 434 }
432 435
433 return self; 436 return self;
434 } 437 }
435 438
436 int WebRtc_AllocateHistoryBufferMemory(BinaryDelayEstimator* self, 439 int WebRtc_AllocateHistoryBufferMemory(BinaryDelayEstimator* self,
437 int history_size) { 440 int history_size) {
438 BinaryDelayEstimatorFarend* far = self->farend; 441 BinaryDelayEstimatorFarend* far = self->farend;
439 // (Re-)Allocate memory for spectrum and history buffers. 442 // (Re-)Allocate memory for spectrum and history buffers.
440 if (history_size != far->history_size) { 443 if (history_size != far->history_size) {
441 // Only update far-end buffers if we need. 444 // Only update far-end buffers if we need.
442 history_size = WebRtc_AllocateFarendBufferMemory(far, history_size); 445 history_size = WebRtc_AllocateFarendBufferMemory(far, history_size);
443 } 446 }
444 // The extra array element in |mean_bit_counts| and |histogram| is a dummy 447 // The extra array element in |mean_bit_counts| and |histogram| is a dummy
445 // element only used while |last_delay| == -2, i.e., before we have a valid 448 // element only used while |last_delay| == -2, i.e., before we have a valid
446 // estimate. 449 // estimate.
447 self->mean_bit_counts = 450 self->mean_bit_counts = static_cast<int32_t*>(
448 realloc(self->mean_bit_counts, 451 realloc(self->mean_bit_counts,
449 (history_size + 1) * sizeof(*self->mean_bit_counts)); 452 (history_size + 1) * sizeof(*self->mean_bit_counts)));
450 self->bit_counts = 453 self->bit_counts = static_cast<int32_t*>(
451 realloc(self->bit_counts, history_size * sizeof(*self->bit_counts)); 454 realloc(self->bit_counts, history_size * sizeof(*self->bit_counts)));
452 self->histogram = 455 self->histogram = static_cast<float*>(
453 realloc(self->histogram, (history_size + 1) * sizeof(*self->histogram)); 456 realloc(self->histogram, (history_size + 1) * sizeof(*self->histogram)));
454 457
455 if ((self->mean_bit_counts == NULL) || 458 if ((self->mean_bit_counts == NULL) ||
456 (self->bit_counts == NULL) || 459 (self->bit_counts == NULL) ||
457 (self->histogram == NULL)) { 460 (self->histogram == NULL)) {
458 history_size = 0; 461 history_size = 0;
459 } 462 }
460 // Fill with zeros if we have expanded the buffers. 463 // Fill with zeros if we have expanded the buffers.
461 if (history_size > self->history_size) { 464 if (history_size > self->history_size) {
462 int size_diff = history_size - self->history_size; 465 int size_diff = history_size - self->history_size;
463 memset(&self->mean_bit_counts[self->history_size], 466 memset(&self->mean_bit_counts[self->history_size],
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 int32_t diff = new_value - *mean_value; 678 int32_t diff = new_value - *mean_value;
676 679
677 // mean_new = mean_value + ((new_value - mean_value) >> factor); 680 // mean_new = mean_value + ((new_value - mean_value) >> factor);
678 if (diff < 0) { 681 if (diff < 0) {
679 diff = -((-diff) >> factor); 682 diff = -((-diff) >> factor);
680 } else { 683 } else {
681 diff = (diff >> factor); 684 diff = (diff >> factor);
682 } 685 }
683 *mean_value += diff; 686 *mean_value += diff;
684 } 687 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698