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

Unified Diff: webrtc/modules/audio_processing/audio_processing_impl.cc

Issue 1338833002: Fix the maximum native sample rate in AudioProcessing (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Format Created 5 years, 3 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 side-by-side diff with in-line comments
Download patch
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 ff4128b6ed4485df0d5abef47a2ff006da53a6b5..4ef4e6da6a307e6533e8ac9ddf39e888c2c52713 100644
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
@@ -147,6 +147,17 @@ class GainControlForNewAgc : public GainControl, public VolumeCallbacks {
int volume_;
};
+const int AudioProcessing::kNativeSampleRatesHz[] = {
+ AudioProcessing::kSampleRate8kHz,
+ AudioProcessing::kSampleRate16kHz,
+ AudioProcessing::kSampleRate32kHz,
+ AudioProcessing::kSampleRate48kHz};
+const size_t AudioProcessing::kNumNativeSampleRates =
+ arraysize(AudioProcessing::kNativeSampleRatesHz);
+const int AudioProcessing::kMaxNativeSampleRateHz = AudioProcessing::
+ kNativeSampleRatesHz[AudioProcessing::kNumNativeSampleRates - 1];
+const int AudioProcessing::kMaxAECMSampleRateHz = kSampleRate16kHz;
+
AudioProcessing* AudioProcessing::Create() {
Config config;
return Create(config, nullptr);
@@ -400,18 +411,16 @@ int AudioProcessingImpl::InitializeLocked(const ProcessingConfig& config) {
std::min(api_format_.input_stream().sample_rate_hz(),
api_format_.output_stream().sample_rate_hz());
int fwd_proc_rate;
- if (min_proc_rate > kSampleRate32kHz) {
- fwd_proc_rate = kSampleRate48kHz;
- } else if (min_proc_rate > kSampleRate16kHz) {
- fwd_proc_rate = kSampleRate32kHz;
- } else if (min_proc_rate > kSampleRate8kHz) {
- fwd_proc_rate = kSampleRate16kHz;
- } else {
- fwd_proc_rate = kSampleRate8kHz;
+ for (size_t i = 0; i < kNumNativeSampleRates; ++i) {
+ fwd_proc_rate = kNativeSampleRatesHz[i];
+ if (fwd_proc_rate >= min_proc_rate) {
+ break;
+ }
}
// ...with one exception.
- if (echo_control_mobile_->is_enabled() && min_proc_rate > kSampleRate16kHz) {
- fwd_proc_rate = kSampleRate16kHz;
+ if (echo_control_mobile_->is_enabled() &&
+ min_proc_rate > kMaxAECMSampleRateHz) {
+ fwd_proc_rate = kMaxAECMSampleRateHz;
}
fwd_proc_format_ = StreamConfig(fwd_proc_rate);
@@ -592,7 +601,7 @@ int AudioProcessingImpl::ProcessStream(AudioFrame* frame) {
return kBadSampleRateError;
}
if (echo_control_mobile_->is_enabled() &&
- frame->sample_rate_hz_ > kSampleRate16kHz) {
+ frame->sample_rate_hz_ > kMaxAECMSampleRateHz) {
LOG(LS_ERROR) << "AECM only supports 16 or 8 kHz sample rates";
return kUnsupportedComponentError;
}

Powered by Google App Engine
This is Rietveld 408576698