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

Side by Side Diff: webrtc/modules/audio_processing/agc/agc_manager_direct.cc

Issue 1230503003: Update a ton of audio code to use size_t more correctly and in general reduce (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Resync 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 class DebugFile { 88 class DebugFile {
89 #ifdef WEBRTC_AGC_DEBUG_DUMP 89 #ifdef WEBRTC_AGC_DEBUG_DUMP
90 public: 90 public:
91 explicit DebugFile(const char* filename) 91 explicit DebugFile(const char* filename)
92 : file_(fopen(filename, "wb")) { 92 : file_(fopen(filename, "wb")) {
93 assert(file_); 93 assert(file_);
94 } 94 }
95 ~DebugFile() { 95 ~DebugFile() {
96 fclose(file_); 96 fclose(file_);
97 } 97 }
98 void Write(const int16_t* data, int length_samples) { 98 void Write(const int16_t* data, size_t length_samples) {
99 fwrite(data, 1, length_samples * sizeof(int16_t), file_); 99 fwrite(data, 1, length_samples * sizeof(int16_t), file_);
100 } 100 }
101 private: 101 private:
102 FILE* file_; 102 FILE* file_;
103 #else 103 #else
104 public: 104 public:
105 explicit DebugFile(const char* filename) { 105 explicit DebugFile(const char* filename) {
106 } 106 }
107 ~DebugFile() { 107 ~DebugFile() {
108 } 108 }
109 void Write(const int16_t* data, int length_samples) { 109 void Write(const int16_t* data, size_t length_samples) {
110 } 110 }
111 #endif // WEBRTC_AGC_DEBUG_DUMP 111 #endif // WEBRTC_AGC_DEBUG_DUMP
112 }; 112 };
113 113
114 AgcManagerDirect::AgcManagerDirect(GainControl* gctrl, 114 AgcManagerDirect::AgcManagerDirect(GainControl* gctrl,
115 VolumeCallbacks* volume_callbacks, 115 VolumeCallbacks* volume_callbacks,
116 int startup_min_level) 116 int startup_min_level)
117 : agc_(new Agc()), 117 : agc_(new Agc()),
118 gctrl_(gctrl), 118 gctrl_(gctrl),
119 volume_callbacks_(volume_callbacks), 119 volume_callbacks_(volume_callbacks),
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 } 181 }
182 if (gctrl_->enable_limiter(true) != 0) { 182 if (gctrl_->enable_limiter(true) != 0) {
183 LOG_FERR1(LS_ERROR, enable_limiter, true); 183 LOG_FERR1(LS_ERROR, enable_limiter, true);
184 return -1; 184 return -1;
185 } 185 }
186 return 0; 186 return 0;
187 } 187 }
188 188
189 void AgcManagerDirect::AnalyzePreProcess(int16_t* audio, 189 void AgcManagerDirect::AnalyzePreProcess(int16_t* audio,
190 int num_channels, 190 int num_channels,
191 int samples_per_channel) { 191 size_t samples_per_channel) {
192 int length = num_channels * samples_per_channel; 192 size_t length = num_channels * samples_per_channel;
193 if (capture_muted_) { 193 if (capture_muted_) {
194 return; 194 return;
195 } 195 }
196 196
197 file_preproc_->Write(audio, length); 197 file_preproc_->Write(audio, length);
198 198
199 if (frames_since_clipped_ < kClippedWaitFrames) { 199 if (frames_since_clipped_ < kClippedWaitFrames) {
200 ++frames_since_clipped_; 200 ++frames_since_clipped_;
201 return; 201 return;
202 } 202 }
(...skipping 20 matching lines...) Expand all
223 // will still not react until the postproc updates the level. 223 // will still not react until the postproc updates the level.
224 SetLevel(std::max(kClippedLevelMin, level_ - kClippedLevelStep)); 224 SetLevel(std::max(kClippedLevelMin, level_ - kClippedLevelStep));
225 // Reset the AGC since the level has changed. 225 // Reset the AGC since the level has changed.
226 agc_->Reset(); 226 agc_->Reset();
227 } 227 }
228 frames_since_clipped_ = 0; 228 frames_since_clipped_ = 0;
229 } 229 }
230 } 230 }
231 231
232 void AgcManagerDirect::Process(const int16_t* audio, 232 void AgcManagerDirect::Process(const int16_t* audio,
233 int length, 233 size_t length,
234 int sample_rate_hz) { 234 int sample_rate_hz) {
235 if (capture_muted_) { 235 if (capture_muted_) {
236 return; 236 return;
237 } 237 }
238 238
239 if (check_volume_on_next_process_) { 239 if (check_volume_on_next_process_) {
240 check_volume_on_next_process_ = false; 240 check_volume_on_next_process_ = false;
241 // We have to wait until the first process call to check the volume, 241 // We have to wait until the first process call to check the volume,
242 // because Chromium doesn't guarantee it to be valid any earlier. 242 // because Chromium doesn't guarantee it to be valid any earlier.
243 CheckVolumeAndReset(); 243 CheckVolumeAndReset();
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 if (new_compression != compression_) { 433 if (new_compression != compression_) {
434 compression_ = new_compression; 434 compression_ = new_compression;
435 compression_accumulator_ = new_compression; 435 compression_accumulator_ = new_compression;
436 if (gctrl_->set_compression_gain_db(compression_) != 0) { 436 if (gctrl_->set_compression_gain_db(compression_) != 0) {
437 LOG_FERR1(LS_ERROR, set_compression_gain_db, compression_); 437 LOG_FERR1(LS_ERROR, set_compression_gain_db, compression_);
438 } 438 }
439 } 439 }
440 } 440 }
441 441
442 } // namespace webrtc 442 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/audio_processing/agc/agc_manager_direct.h ('k') | webrtc/modules/audio_processing/agc/legacy/analog_agc.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698