Chromium Code Reviews| 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 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 464 formats_.api_format.reverse_input_stream().num_frames(), | 464 formats_.api_format.reverse_input_stream().num_frames(), |
| 465 formats_.api_format.reverse_output_stream().num_channels(), | 465 formats_.api_format.reverse_output_stream().num_channels(), |
| 466 formats_.api_format.reverse_output_stream().num_frames()); | 466 formats_.api_format.reverse_output_stream().num_frames()); |
| 467 } else { | 467 } else { |
| 468 render_.render_converter.reset(nullptr); | 468 render_.render_converter.reset(nullptr); |
| 469 } | 469 } |
| 470 } else { | 470 } else { |
| 471 render_.render_audio.reset(nullptr); | 471 render_.render_audio.reset(nullptr); |
| 472 render_.render_converter.reset(nullptr); | 472 render_.render_converter.reset(nullptr); |
| 473 } | 473 } |
| 474 | |
| 474 capture_.capture_audio.reset( | 475 capture_.capture_audio.reset( |
| 475 new AudioBuffer(formats_.api_format.input_stream().num_frames(), | 476 new AudioBuffer(formats_.api_format.input_stream().num_frames(), |
| 476 formats_.api_format.input_stream().num_channels(), | 477 formats_.api_format.input_stream().num_channels(), |
| 477 capture_nonlocked_.capture_processing_format.num_frames(), | 478 capture_nonlocked_.capture_processing_format.num_frames(), |
| 478 capture_audiobuffer_num_channels, | 479 capture_audiobuffer_num_channels, |
| 479 formats_.api_format.output_stream().num_frames())); | 480 formats_.api_format.output_stream().num_frames())); |
| 480 | 481 |
| 481 public_submodules_->echo_cancellation->Initialize( | 482 public_submodules_->echo_cancellation->Initialize( |
| 482 proc_sample_rate_hz(), num_reverse_channels(), num_output_channels(), | 483 proc_sample_rate_hz(), num_reverse_channels(), num_output_channels(), |
| 483 num_proc_channels()); | 484 num_proc_channels()); |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 589 if (capture_nonlocked_.capture_processing_format.sample_rate_hz() == | 590 if (capture_nonlocked_.capture_processing_format.sample_rate_hz() == |
| 590 kSampleRate8kHz) { | 591 kSampleRate8kHz) { |
| 591 render_processing_rate = kSampleRate8kHz; | 592 render_processing_rate = kSampleRate8kHz; |
| 592 } else { | 593 } else { |
| 593 render_processing_rate = | 594 render_processing_rate = |
| 594 std::max(render_processing_rate, static_cast<int>(kSampleRate16kHz)); | 595 std::max(render_processing_rate, static_cast<int>(kSampleRate16kHz)); |
| 595 } | 596 } |
| 596 | 597 |
| 597 // Always downmix the render stream to mono for analysis. This has been | 598 // Always downmix the render stream to mono for analysis. This has been |
| 598 // demonstrated to work well for AEC in most practical scenarios. | 599 // demonstrated to work well for AEC in most practical scenarios. |
| 599 formats_.render_processing_format = StreamConfig(render_processing_rate, 1); | 600 if (submodule_states_.RenderMultiBandSubModulesActive()) { |
| 601 formats_.render_processing_format = StreamConfig(render_processing_rate, 1); | |
| 602 } else { | |
| 603 formats_.render_processing_format = StreamConfig( | |
| 604 formats_.api_format.reverse_input_stream().sample_rate_hz(), | |
| 605 formats_.api_format.reverse_input_stream().num_channels()); | |
|
peah-webrtc
2017/05/19 08:07:46
This change was needed for this to work properly f
ivoc
2017/05/19 08:24:22
Acknowledged.
| |
| 606 } | |
| 600 | 607 |
| 601 if (capture_nonlocked_.capture_processing_format.sample_rate_hz() == | 608 if (capture_nonlocked_.capture_processing_format.sample_rate_hz() == |
| 602 kSampleRate32kHz || | 609 kSampleRate32kHz || |
| 603 capture_nonlocked_.capture_processing_format.sample_rate_hz() == | 610 capture_nonlocked_.capture_processing_format.sample_rate_hz() == |
| 604 kSampleRate48kHz) { | 611 kSampleRate48kHz) { |
| 605 capture_nonlocked_.split_rate = kSampleRate16kHz; | 612 capture_nonlocked_.split_rate = kSampleRate16kHz; |
| 606 } else { | 613 } else { |
| 607 capture_nonlocked_.split_rate = | 614 capture_nonlocked_.split_rate = |
| 608 capture_nonlocked_.capture_processing_format.sample_rate_hz(); | 615 capture_nonlocked_.capture_processing_format.sample_rate_hz(); |
| 609 } | 616 } |
| (...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1453 render_buffer->SplitIntoFrequencyBands(); | 1460 render_buffer->SplitIntoFrequencyBands(); |
| 1454 } | 1461 } |
| 1455 | 1462 |
| 1456 #if WEBRTC_INTELLIGIBILITY_ENHANCER | 1463 #if WEBRTC_INTELLIGIBILITY_ENHANCER |
| 1457 if (capture_nonlocked_.intelligibility_enabled) { | 1464 if (capture_nonlocked_.intelligibility_enabled) { |
| 1458 public_submodules_->intelligibility_enhancer->ProcessRenderAudio( | 1465 public_submodules_->intelligibility_enhancer->ProcessRenderAudio( |
| 1459 render_buffer); | 1466 render_buffer); |
| 1460 } | 1467 } |
| 1461 #endif | 1468 #endif |
| 1462 | 1469 |
| 1463 QueueBandedRenderAudio(render_buffer); | 1470 if (submodule_states_.RenderMultiBandSubModulesActive()) { |
|
peah-webrtc
2017/05/19 08:07:46
This change was needed as with the changes in this
ivoc
2017/05/19 08:24:22
Acknowledged.
| |
| 1471 QueueBandedRenderAudio(render_buffer); | |
| 1472 } | |
| 1473 | |
| 1464 // TODO(peah): Perform the queueing ínside QueueRenderAudiuo(). | 1474 // TODO(peah): Perform the queueing ínside QueueRenderAudiuo(). |
| 1465 if (private_submodules_->echo_canceller3) { | 1475 if (private_submodules_->echo_canceller3) { |
| 1466 private_submodules_->echo_canceller3->AnalyzeRender(render_buffer); | 1476 private_submodules_->echo_canceller3->AnalyzeRender(render_buffer); |
| 1467 } | 1477 } |
| 1468 | 1478 |
| 1469 if (submodule_states_.RenderMultiBandProcessingActive() && | 1479 if (submodule_states_.RenderMultiBandProcessingActive() && |
| 1470 SampleRateSupportsMultiBand( | 1480 SampleRateSupportsMultiBand( |
| 1471 formats_.render_processing_format.sample_rate_hz())) { | 1481 formats_.render_processing_format.sample_rate_hz())) { |
| 1472 render_buffer->MergeFrequencyBands(); | 1482 render_buffer->MergeFrequencyBands(); |
| 1473 } | 1483 } |
| (...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2012 previous_agc_level(0), | 2022 previous_agc_level(0), |
| 2013 echo_path_gain_change(false) {} | 2023 echo_path_gain_change(false) {} |
| 2014 | 2024 |
| 2015 AudioProcessingImpl::ApmCaptureState::~ApmCaptureState() = default; | 2025 AudioProcessingImpl::ApmCaptureState::~ApmCaptureState() = default; |
| 2016 | 2026 |
| 2017 AudioProcessingImpl::ApmRenderState::ApmRenderState() = default; | 2027 AudioProcessingImpl::ApmRenderState::ApmRenderState() = default; |
| 2018 | 2028 |
| 2019 AudioProcessingImpl::ApmRenderState::~ApmRenderState() = default; | 2029 AudioProcessingImpl::ApmRenderState::~ApmRenderState() = default; |
| 2020 | 2030 |
| 2021 } // namespace webrtc | 2031 } // namespace webrtc |
| OLD | NEW |