OLD | NEW |
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 26 matching lines...) Expand all Loading... |
37 switch (err) { | 37 switch (err) { |
38 case AEC_UNSUPPORTED_FUNCTION_ERROR: | 38 case AEC_UNSUPPORTED_FUNCTION_ERROR: |
39 return AudioProcessing::kUnsupportedFunctionError; | 39 return AudioProcessing::kUnsupportedFunctionError; |
40 case AEC_BAD_PARAMETER_ERROR: | 40 case AEC_BAD_PARAMETER_ERROR: |
41 return AudioProcessing::kBadParameterError; | 41 return AudioProcessing::kBadParameterError; |
42 case AEC_BAD_PARAMETER_WARNING: | 42 case AEC_BAD_PARAMETER_WARNING: |
43 return AudioProcessing::kBadStreamParameterWarning; | 43 return AudioProcessing::kBadStreamParameterWarning; |
44 default: | 44 default: |
45 // AEC_UNSPECIFIED_ERROR | 45 // AEC_UNSPECIFIED_ERROR |
46 // AEC_UNINITIALIZED_ERROR | 46 // AEC_UNINITIALIZED_ERROR |
47 // AEC_NULL_POINTER_ERROR | 47 // AEC_null_POINTER_ERROR |
48 return AudioProcessing::kUnspecifiedError; | 48 return AudioProcessing::kUnspecifiedError; |
49 } | 49 } |
50 } | 50 } |
51 | 51 |
52 } // namespace | 52 } // namespace |
53 | 53 |
54 struct EchoCancellationImpl::StreamProperties { | 54 struct EchoCancellationImpl::StreamProperties { |
55 StreamProperties() = delete; | 55 StreamProperties() = delete; |
56 StreamProperties(int sample_rate_hz, | 56 StreamProperties(int sample_rate_hz, |
57 size_t num_reverse_channels, | 57 size_t num_reverse_channels, |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 | 269 |
270 bool EchoCancellationImpl::are_metrics_enabled() const { | 270 bool EchoCancellationImpl::are_metrics_enabled() const { |
271 rtc::CritScope cs(crit_capture_); | 271 rtc::CritScope cs(crit_capture_); |
272 return enabled_ && metrics_enabled_; | 272 return enabled_ && metrics_enabled_; |
273 } | 273 } |
274 | 274 |
275 // TODO(ajm): we currently just use the metrics from the first AEC. Think more | 275 // TODO(ajm): we currently just use the metrics from the first AEC. Think more |
276 // aboue the best way to extend this to multi-channel. | 276 // aboue the best way to extend this to multi-channel. |
277 int EchoCancellationImpl::GetMetrics(Metrics* metrics) { | 277 int EchoCancellationImpl::GetMetrics(Metrics* metrics) { |
278 rtc::CritScope cs(crit_capture_); | 278 rtc::CritScope cs(crit_capture_); |
279 if (metrics == NULL) { | 279 if (metrics == nullptr) { |
280 return AudioProcessing::kNullPointerError; | 280 return AudioProcessing::kNullPointerError; |
281 } | 281 } |
282 | 282 |
283 if (!enabled_ || !metrics_enabled_) { | 283 if (!enabled_ || !metrics_enabled_) { |
284 return AudioProcessing::kNotEnabledError; | 284 return AudioProcessing::kNotEnabledError; |
285 } | 285 } |
286 | 286 |
287 AecMetrics my_metrics; | 287 AecMetrics my_metrics; |
288 memset(&my_metrics, 0, sizeof(my_metrics)); | 288 memset(&my_metrics, 0, sizeof(my_metrics)); |
289 memset(metrics, 0, sizeof(Metrics)); | 289 memset(metrics, 0, sizeof(Metrics)); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 // TODO(bjornv): How should we handle the multi-channel case? | 358 // TODO(bjornv): How should we handle the multi-channel case? |
359 int EchoCancellationImpl::GetDelayMetrics(int* median, int* std) { | 359 int EchoCancellationImpl::GetDelayMetrics(int* median, int* std) { |
360 rtc::CritScope cs(crit_capture_); | 360 rtc::CritScope cs(crit_capture_); |
361 float fraction_poor_delays = 0; | 361 float fraction_poor_delays = 0; |
362 return GetDelayMetrics(median, std, &fraction_poor_delays); | 362 return GetDelayMetrics(median, std, &fraction_poor_delays); |
363 } | 363 } |
364 | 364 |
365 int EchoCancellationImpl::GetDelayMetrics(int* median, int* std, | 365 int EchoCancellationImpl::GetDelayMetrics(int* median, int* std, |
366 float* fraction_poor_delays) { | 366 float* fraction_poor_delays) { |
367 rtc::CritScope cs(crit_capture_); | 367 rtc::CritScope cs(crit_capture_); |
368 if (median == NULL) { | 368 if (median == nullptr) { |
369 return AudioProcessing::kNullPointerError; | 369 return AudioProcessing::kNullPointerError; |
370 } | 370 } |
371 if (std == NULL) { | 371 if (std == nullptr) { |
372 return AudioProcessing::kNullPointerError; | 372 return AudioProcessing::kNullPointerError; |
373 } | 373 } |
374 | 374 |
375 if (!enabled_ || !delay_logging_enabled_) { | 375 if (!enabled_ || !delay_logging_enabled_) { |
376 return AudioProcessing::kNotEnabledError; | 376 return AudioProcessing::kNotEnabledError; |
377 } | 377 } |
378 | 378 |
379 const int err = WebRtcAec_GetDelayMetrics(cancellers_[0]->state(), median, | 379 const int err = WebRtcAec_GetDelayMetrics(cancellers_[0]->state(), median, |
380 std, fraction_poor_delays); | 380 std, fraction_poor_delays); |
381 if (err != AudioProcessing::kNoError) { | 381 if (err != AudioProcessing::kNoError) { |
382 return MapError(err); | 382 return MapError(err); |
383 } | 383 } |
384 | 384 |
385 return AudioProcessing::kNoError; | 385 return AudioProcessing::kNoError; |
386 } | 386 } |
387 | 387 |
388 struct AecCore* EchoCancellationImpl::aec_core() const { | 388 struct AecCore* EchoCancellationImpl::aec_core() const { |
389 rtc::CritScope cs(crit_capture_); | 389 rtc::CritScope cs(crit_capture_); |
390 if (!enabled_) { | 390 if (!enabled_) { |
391 return NULL; | 391 return nullptr; |
392 } | 392 } |
393 return WebRtcAec_aec_core(cancellers_[0]->state()); | 393 return WebRtcAec_aec_core(cancellers_[0]->state()); |
394 } | 394 } |
395 | 395 |
396 void EchoCancellationImpl::Initialize(int sample_rate_hz, | 396 void EchoCancellationImpl::Initialize(int sample_rate_hz, |
397 size_t num_reverse_channels, | 397 size_t num_reverse_channels, |
398 size_t num_output_channels, | 398 size_t num_output_channels, |
399 size_t num_proc_channels) { | 399 size_t num_proc_channels) { |
400 rtc::CritScope cs_render(crit_render_); | 400 rtc::CritScope cs_render(crit_render_); |
401 rtc::CritScope cs_capture(crit_capture_); | 401 rtc::CritScope cs_capture(crit_capture_); |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
493 return error; | 493 return error; |
494 } | 494 } |
495 | 495 |
496 size_t EchoCancellationImpl::NumCancellersRequired( | 496 size_t EchoCancellationImpl::NumCancellersRequired( |
497 size_t num_output_channels, | 497 size_t num_output_channels, |
498 size_t num_reverse_channels) { | 498 size_t num_reverse_channels) { |
499 return num_output_channels * num_reverse_channels; | 499 return num_output_channels * num_reverse_channels; |
500 } | 500 } |
501 | 501 |
502 } // namespace webrtc | 502 } // namespace webrtc |
OLD | NEW |