Chromium Code Reviews| Index: webrtc/modules/audio_processing/audio_processing_impl.cc |
| diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc |
| index 9fd18fcb65eb1341071c3fdba527025ae737aea7..953b6996ccf526955edc45efb53057bdda306416 100644 |
| --- a/webrtc/modules/audio_processing/audio_processing_impl.cc |
| +++ b/webrtc/modules/audio_processing/audio_processing_impl.cc |
| @@ -366,15 +366,18 @@ int AudioProcessingImpl::InitializeLocked(const ProcessingConfig& config) { |
| formats_.api_format.input_stream().sample_rate_hz(), |
| formats_.api_format.output_stream().sample_rate_hz()))); |
| - int rev_proc_rate = ClosestNativeRate(std::min( |
|
the sun
2016/04/06 09:34:57
nit: ClosestNativeRate() should be renamed btw, si
peah-webrtc
2016/04/06 09:36:31
True. Good point! Ok if I address that in another
|
| - formats_.api_format.reverse_input_stream().sample_rate_hz(), |
| - formats_.api_format.reverse_output_stream().sample_rate_hz())); |
| - // If the forward sample rate is 8 kHz, the reverse stream is also processed |
| - // at this rate. |
| + // We normally process the reverse stream at 16 kHz. Unless... |
| + int rev_proc_rate = kSampleRate16kHz; |
| if (capture_nonlocked_.fwd_proc_format.sample_rate_hz() == kSampleRate8kHz) { |
| + // ...the forward stream is at 8 kHz. |
| rev_proc_rate = kSampleRate8kHz; |
| } else { |
| - rev_proc_rate = std::max(rev_proc_rate, static_cast<int>(kSampleRate16kHz)); |
| + if (formats_.api_format.reverse_input_stream().sample_rate_hz() == |
| + kSampleRate32kHz) { |
| + // ...or the input is at 32 kHz, in which case we use the splitting |
| + // filter rather than the resampler. |
| + rev_proc_rate = kSampleRate32kHz; |
| + } |
| } |
| // Always downmix the reverse stream to mono for analysis. This has been |
| @@ -1148,11 +1151,11 @@ bool AudioProcessingImpl::is_rev_processed() const { |
| bool AudioProcessingImpl::rev_synthesis_needed() const { |
| return (is_rev_processed() && |
| - is_multi_band(formats_.rev_proc_format.sample_rate_hz())); |
| + formats_.rev_proc_format.sample_rate_hz() == kSampleRate32kHz); |
| } |
| bool AudioProcessingImpl::rev_analysis_needed() const { |
| - return is_multi_band(formats_.rev_proc_format.sample_rate_hz()) && |
| + return formats_.rev_proc_format.sample_rate_hz() == kSampleRate32kHz && |
| (is_rev_processed() || |
| public_submodules_->echo_cancellation->is_enabled() || |
| public_submodules_->echo_control_mobile->is_enabled() || |