 Chromium Code Reviews
 Chromium Code Reviews Issue 2335633002:
  This CL renames variables and method and removes some one-line methods inside the APM  (Closed)
    
  
    Issue 2335633002:
  This CL renames variables and method and removes some one-line methods inside the APM  (Closed) 
  | 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 29 matching lines...) Expand all Loading... | |
| 40 | 40 | 
| 41 class AudioProcessingImpl : public AudioProcessing { | 41 class AudioProcessingImpl : public AudioProcessing { | 
| 42 public: | 42 public: | 
| 43 // Methods forcing APM to run in a single-threaded manner. | 43 // Methods forcing APM to run in a single-threaded manner. | 
| 44 // Acquires both the render and capture locks. | 44 // Acquires both the render and capture locks. | 
| 45 explicit AudioProcessingImpl(const Config& config); | 45 explicit AudioProcessingImpl(const Config& config); | 
| 46 // AudioProcessingImpl takes ownership of beamformer. | 46 // AudioProcessingImpl takes ownership of beamformer. | 
| 47 AudioProcessingImpl(const Config& config, NonlinearBeamformer* beamformer); | 47 AudioProcessingImpl(const Config& config, NonlinearBeamformer* beamformer); | 
| 48 ~AudioProcessingImpl() override; | 48 ~AudioProcessingImpl() override; | 
| 49 int Initialize() override; | 49 int Initialize() override; | 
| 50 int Initialize(int input_sample_rate_hz, | 50 int Initialize(int capture_input_sample_rate_hz, | 
| 51 int output_sample_rate_hz, | 51 int capture_output_sample_rate_hz, | 
| 52 int reverse_sample_rate_hz, | 52 int reverse_sample_rate_hz, | 
| 
the sun
2016/09/14 09:40:32
me too!
 
peah-webrtc
2016/09/16 08:26:28
Awesome!
Done.
 | |
| 53 ChannelLayout input_layout, | 53 ChannelLayout capture_input_layout, | 
| 54 ChannelLayout output_layout, | 54 ChannelLayout capture_output_layout, | 
| 55 ChannelLayout reverse_layout) override; | 55 ChannelLayout render_input_layout) override; | 
| 56 int Initialize(const ProcessingConfig& processing_config) override; | 56 int Initialize(const ProcessingConfig& processing_config) override; | 
| 57 void SetExtraOptions(const Config& config) override; | 57 void SetExtraOptions(const Config& config) override; | 
| 58 void UpdateHistogramsOnCallEnd() override; | 58 void UpdateHistogramsOnCallEnd() override; | 
| 59 int StartDebugRecording(const char filename[kMaxFilenameSize], | 59 int StartDebugRecording(const char filename[kMaxFilenameSize], | 
| 60 int64_t max_log_size_bytes) override; | 60 int64_t max_log_size_bytes) override; | 
| 61 int StartDebugRecording(FILE* handle, int64_t max_log_size_bytes) override; | 61 int StartDebugRecording(FILE* handle, int64_t max_log_size_bytes) override; | 
| 62 | 62 | 
| 63 int StartDebugRecordingForPlatformFile(rtc::PlatformFile handle) override; | 63 int StartDebugRecordingForPlatformFile(rtc::PlatformFile handle) override; | 
| 64 int StopDebugRecording() override; | 64 int StopDebugRecording() override; | 
| 65 | 65 | 
| (...skipping 18 matching lines...) Expand all Loading... | |
| 84 void set_stream_key_pressed(bool key_pressed) override; | 84 void set_stream_key_pressed(bool key_pressed) override; | 
| 85 | 85 | 
| 86 // Render-side exclusive methods possibly running APM in a | 86 // Render-side exclusive methods possibly running APM in a | 
| 87 // multi-threaded manner. Acquire the render lock. | 87 // multi-threaded manner. Acquire the render lock. | 
| 88 int ProcessReverseStream(AudioFrame* frame) override; | 88 int ProcessReverseStream(AudioFrame* frame) override; | 
| 89 int AnalyzeReverseStream(const float* const* data, | 89 int AnalyzeReverseStream(const float* const* data, | 
| 90 size_t samples_per_channel, | 90 size_t samples_per_channel, | 
| 91 int sample_rate_hz, | 91 int sample_rate_hz, | 
| 92 ChannelLayout layout) override; | 92 ChannelLayout layout) override; | 
| 93 int ProcessReverseStream(const float* const* src, | 93 int ProcessReverseStream(const float* const* src, | 
| 94 const StreamConfig& reverse_input_config, | 94 const StreamConfig& input_config, | 
| 95 const StreamConfig& reverse_output_config, | 95 const StreamConfig& output_config, | 
| 96 float* const* dest) override; | 96 float* const* dest) override; | 
| 97 | 97 | 
| 98 // Methods only accessed from APM submodules or | 98 // Methods only accessed from APM submodules or | 
| 99 // from AudioProcessing tests in a single-threaded manner. | 99 // from AudioProcessing tests in a single-threaded manner. | 
| 100 // Hence there is no need for locks in these. | 100 // Hence there is no need for locks in these. | 
| 101 int proc_sample_rate_hz() const override; | 101 int proc_sample_rate_hz() const override; | 
| 102 int proc_split_sample_rate_hz() const override; | 102 int proc_split_sample_rate_hz() const override; | 
| 103 size_t num_input_channels() const override; | 103 size_t num_input_channels() const override; | 
| 104 size_t num_proc_channels() const override; | 104 size_t num_proc_channels() const override; | 
| 105 size_t num_output_channels() const override; | 105 size_t num_output_channels() const override; | 
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 205 bool force_initialization) | 205 bool force_initialization) | 
| 206 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); | 206 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); | 
| 207 | 207 | 
| 208 // Method for updating the state keeping track of the active submodules. | 208 // Method for updating the state keeping track of the active submodules. | 
| 209 // Returns a bool indicating whether the state has changed. | 209 // Returns a bool indicating whether the state has changed. | 
| 210 bool UpdateActiveSubmoduleStates() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | 210 bool UpdateActiveSubmoduleStates() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | 
| 211 | 211 | 
| 212 // Methods requiring APM running in a single-threaded manner. | 212 // Methods requiring APM running in a single-threaded manner. | 
| 213 // Are called with both the render and capture locks already | 213 // Are called with both the render and capture locks already | 
| 214 // acquired. | 214 // acquired. | 
| 215 void InitializeExperimentalAgc() | |
| 216 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | |
| 217 void InitializeTransient() | 215 void InitializeTransient() | 
| 218 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 216 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 
| 219 void InitializeBeamformer() | 217 void InitializeBeamformer() | 
| 220 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 218 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 
| 221 void InitializeIntelligibility() | 219 void InitializeIntelligibility() | 
| 222 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 220 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 
| 223 void InitializeHighPassFilter() | |
| 224 EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | |
| 225 void InitializeNoiseSuppression() | |
| 226 EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | |
| 227 void InitializeLevelEstimator() | |
| 228 EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | |
| 229 void InitializeVoiceDetection() | |
| 230 EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | |
| 231 void InitializeEchoCanceller() | |
| 232 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | |
| 233 void InitializeGainController() | |
| 234 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | |
| 235 void InitializeEchoControlMobile() | |
| 236 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | |
| 237 int InitializeLocked(const ProcessingConfig& config) | 221 int InitializeLocked(const ProcessingConfig& config) | 
| 238 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 222 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); | 
| 239 void InitializeLevelController() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | 223 void InitializeLevelController() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | 
| 240 | 224 | 
| 241 // Capture-side exclusive methods possibly running APM in a multi-threaded | 225 // Capture-side exclusive methods possibly running APM in a multi-threaded | 
| 242 // manner that are called with the render lock already acquired. | 226 // manner that are called with the render lock already acquired. | 
| 243 int ProcessStreamLocked() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | 227 int ProcessCaptureStreamLocked() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | 
| 244 void MaybeUpdateHistograms() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | 228 void MaybeUpdateHistograms() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); | 
| 245 | 229 | 
| 246 // Render-side exclusive methods possibly running APM in a multi-threaded | 230 // Render-side exclusive methods possibly running APM in a multi-threaded | 
| 247 // manner that are called with the render lock already acquired. | 231 // manner that are called with the render lock already acquired. | 
| 248 // TODO(ekm): Remove once all clients updated to new interface. | 232 // TODO(ekm): Remove once all clients updated to new interface. | 
| 249 int AnalyzeReverseStreamLocked(const float* const* src, | 233 int AnalyzeReverseStreamLocked(const float* const* src, | 
| 250 const StreamConfig& input_config, | 234 const StreamConfig& input_config, | 
| 251 const StreamConfig& output_config) | 235 const StreamConfig& output_config) | 
| 252 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); | 236 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); | 
| 253 int ProcessReverseStreamLocked() EXCLUSIVE_LOCKS_REQUIRED(crit_render_); | 237 int ProcessRenderStreamLocked() EXCLUSIVE_LOCKS_REQUIRED(crit_render_); | 
| 254 | 238 | 
| 255 // Debug dump methods that are internal and called without locks. | 239 // Debug dump methods that are internal and called without locks. | 
| 256 // TODO(peah): Make thread safe. | 240 // TODO(peah): Make thread safe. | 
| 257 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 241 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 
| 258 // TODO(andrew): make this more graceful. Ideally we would split this stuff | 242 // TODO(andrew): make this more graceful. Ideally we would split this stuff | 
| 259 // out into a separate class with an "enabled" and "disabled" implementation. | 243 // out into a separate class with an "enabled" and "disabled" implementation. | 
| 260 static int WriteMessageToDebugFile(FileWrapper* debug_file, | 244 static int WriteMessageToDebugFile(FileWrapper* debug_file, | 
| 261 int64_t* filesize_limit_bytes, | 245 int64_t* filesize_limit_bytes, | 
| 262 rtc::CriticalSection* crit_debug, | 246 rtc::CriticalSection* crit_debug, | 
| 263 ApmDebugDumpThreadState* debug_state); | 247 ApmDebugDumpThreadState* debug_state); | 
| (...skipping 29 matching lines...) Expand all Loading... | |
| 293 // As this is only accessed internally of APM, and all internal methods in APM | 277 // As this is only accessed internally of APM, and all internal methods in APM | 
| 294 // either are holding the render or capture locks, this construct is safe as | 278 // either are holding the render or capture locks, this construct is safe as | 
| 295 // it is not possible to read the variables while writing them. | 279 // it is not possible to read the variables while writing them. | 
| 296 struct ApmFormatState { | 280 struct ApmFormatState { | 
| 297 ApmFormatState() | 281 ApmFormatState() | 
| 298 : // Format of processing streams at input/output call sites. | 282 : // Format of processing streams at input/output call sites. | 
| 299 api_format({{{kSampleRate16kHz, 1, false}, | 283 api_format({{{kSampleRate16kHz, 1, false}, | 
| 300 {kSampleRate16kHz, 1, false}, | 284 {kSampleRate16kHz, 1, false}, | 
| 301 {kSampleRate16kHz, 1, false}, | 285 {kSampleRate16kHz, 1, false}, | 
| 302 {kSampleRate16kHz, 1, false}}}), | 286 {kSampleRate16kHz, 1, false}}}), | 
| 303 rev_proc_format(kSampleRate16kHz, 1) {} | 287 render_processing_format(kSampleRate16kHz, 1) {} | 
| 304 ProcessingConfig api_format; | 288 ProcessingConfig api_format; | 
| 305 StreamConfig rev_proc_format; | 289 StreamConfig render_processing_format; | 
| 306 } formats_; | 290 } formats_; | 
| 307 | 291 | 
| 308 // APM constants. | 292 // APM constants. | 
| 309 const struct ApmConstants { | 293 const struct ApmConstants { | 
| 310 ApmConstants(int agc_startup_min_volume, bool use_experimental_agc) | 294 ApmConstants(int agc_startup_min_volume, bool use_experimental_agc) | 
| 311 : // Format of processing streams at input/output call sites. | 295 : // Format of processing streams at input/output call sites. | 
| 312 agc_startup_min_volume(agc_startup_min_volume), | 296 agc_startup_min_volume(agc_startup_min_volume), | 
| 313 use_experimental_agc(use_experimental_agc) {} | 297 use_experimental_agc(use_experimental_agc) {} | 
| 314 int agc_startup_min_volume; | 298 int agc_startup_min_volume; | 
| 315 bool use_experimental_agc; | 299 bool use_experimental_agc; | 
| 316 } constants_; | 300 } constants_; | 
| 317 | 301 | 
| 318 struct ApmCaptureState { | 302 struct ApmCaptureState { | 
| 319 ApmCaptureState(bool transient_suppressor_enabled, | 303 ApmCaptureState(bool transient_suppressor_enabled, | 
| 320 const std::vector<Point>& array_geometry, | 304 const std::vector<Point>& array_geometry, | 
| 321 SphericalPointf target_direction); | 305 SphericalPointf target_direction); | 
| 322 ~ApmCaptureState(); | 306 ~ApmCaptureState(); | 
| 323 int aec_system_delay_jumps; | 307 int aec_system_delay_jumps; | 
| 324 int delay_offset_ms; | 308 int delay_offset_ms; | 
| 325 bool was_stream_delay_set; | 309 bool was_stream_delay_set; | 
| 326 int last_stream_delay_ms; | 310 int last_stream_delay_ms; | 
| 327 int last_aec_system_delay_ms; | 311 int last_aec_system_delay_ms; | 
| 328 int stream_delay_jumps; | 312 int stream_delay_jumps; | 
| 329 bool output_will_be_muted; | 313 bool output_will_be_muted; | 
| 330 bool key_pressed; | 314 bool key_pressed; | 
| 331 bool transient_suppressor_enabled; | 315 bool transient_suppressor_enabled; | 
| 332 std::vector<Point> array_geometry; | 316 std::vector<Point> array_geometry; | 
| 333 SphericalPointf target_direction; | 317 SphericalPointf target_direction; | 
| 334 std::unique_ptr<AudioBuffer> capture_audio; | 318 std::unique_ptr<AudioBuffer> capture_audio; | 
| 335 // Only the rate and samples fields of fwd_proc_format_ are used because the | 319 // Only the rate and samples fields of capture_processing_format_ are used | 
| 336 // forward processing number of channels is mutable and is tracked by the | 320 // because the forward processing number of channels is mutable and is | 
| 
the sun
2016/09/14 09:40:32
forward -> capture
 
peah-webrtc
2016/09/16 08:26:28
Done.
 | |
| 337 // capture_audio_. | 321 // tracked by the capture_audio_. | 
| 338 StreamConfig fwd_proc_format; | 322 StreamConfig capture_processing_format; | 
| 339 int split_rate; | 323 int split_rate; | 
| 340 } capture_ GUARDED_BY(crit_capture_); | 324 } capture_ GUARDED_BY(crit_capture_); | 
| 341 | 325 | 
| 342 struct ApmCaptureNonLockedState { | 326 struct ApmCaptureNonLockedState { | 
| 343 ApmCaptureNonLockedState(bool beamformer_enabled, | 327 ApmCaptureNonLockedState(bool beamformer_enabled, | 
| 344 bool intelligibility_enabled, | 328 bool intelligibility_enabled, | 
| 345 bool level_controller_enabled) | 329 bool level_controller_enabled) | 
| 346 : fwd_proc_format(kSampleRate16kHz), | 330 : capture_processing_format(kSampleRate16kHz), | 
| 347 split_rate(kSampleRate16kHz), | 331 split_rate(kSampleRate16kHz), | 
| 348 stream_delay_ms(0), | 332 stream_delay_ms(0), | 
| 349 beamformer_enabled(beamformer_enabled), | 333 beamformer_enabled(beamformer_enabled), | 
| 350 intelligibility_enabled(intelligibility_enabled), | 334 intelligibility_enabled(intelligibility_enabled), | 
| 351 level_controller_enabled(level_controller_enabled) {} | 335 level_controller_enabled(level_controller_enabled) {} | 
| 352 // Only the rate and samples fields of fwd_proc_format_ are used because the | 336 // Only the rate and samples fields of capture_processing_format_ are used | 
| 337 // because the | |
| 
the sun
2016/09/14 09:40:32
fix formatting
 
peah-webrtc
2016/09/16 08:26:28
Ouch. I now did a proper cl format on it.
Done.
 | |
| 353 // forward processing number of channels is mutable and is tracked by the | 338 // forward processing number of channels is mutable and is tracked by the | 
| 354 // capture_audio_. | 339 // capture_audio_. | 
| 355 StreamConfig fwd_proc_format; | 340 StreamConfig capture_processing_format; | 
| 356 int split_rate; | 341 int split_rate; | 
| 357 int stream_delay_ms; | 342 int stream_delay_ms; | 
| 358 bool beamformer_enabled; | 343 bool beamformer_enabled; | 
| 359 bool intelligibility_enabled; | 344 bool intelligibility_enabled; | 
| 360 bool level_controller_enabled; | 345 bool level_controller_enabled; | 
| 361 } capture_nonlocked_; | 346 } capture_nonlocked_; | 
| 362 | 347 | 
| 363 struct ApmRenderState { | 348 struct ApmRenderState { | 
| 364 ApmRenderState(); | 349 ApmRenderState(); | 
| 365 ~ApmRenderState(); | 350 ~ApmRenderState(); | 
| 366 std::unique_ptr<AudioConverter> render_converter; | 351 std::unique_ptr<AudioConverter> render_converter; | 
| 367 std::unique_ptr<AudioBuffer> render_audio; | 352 std::unique_ptr<AudioBuffer> render_audio; | 
| 368 } render_ GUARDED_BY(crit_render_); | 353 } render_ GUARDED_BY(crit_render_); | 
| 369 }; | 354 }; | 
| 370 | 355 | 
| 371 } // namespace webrtc | 356 } // namespace webrtc | 
| 372 | 357 | 
| 373 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AUDIO_PROCESSING_IMPL_H_ | 358 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AUDIO_PROCESSING_IMPL_H_ | 
| OLD | NEW |