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

Side by Side Diff: webrtc/modules/audio_processing/audio_processing_impl.h

Issue 3010223002: Update thread annotiation macros in modules to use RTC_ prefix (Closed)
Patch Set: Created 3 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) 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 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 // from AudioProcessing tests in a single-threaded manner. 93 // from AudioProcessing tests in a single-threaded manner.
94 // Hence there is no need for locks in these. 94 // Hence there is no need for locks in these.
95 int proc_sample_rate_hz() const override; 95 int proc_sample_rate_hz() const override;
96 int proc_split_sample_rate_hz() const override; 96 int proc_split_sample_rate_hz() const override;
97 size_t num_input_channels() const override; 97 size_t num_input_channels() const override;
98 size_t num_proc_channels() const override; 98 size_t num_proc_channels() const override;
99 size_t num_output_channels() const override; 99 size_t num_output_channels() const override;
100 size_t num_reverse_channels() const override; 100 size_t num_reverse_channels() const override;
101 int stream_delay_ms() const override; 101 int stream_delay_ms() const override;
102 bool was_stream_delay_set() const override 102 bool was_stream_delay_set() const override
103 EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 103 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
104 104
105 AudioProcessingStatistics GetStatistics() const override; 105 AudioProcessingStatistics GetStatistics() const override;
106 106
107 // Methods returning pointers to APM submodules. 107 // Methods returning pointers to APM submodules.
108 // No locks are aquired in those, as those locks 108 // No locks are aquired in those, as those locks
109 // would offer no protection (the submodules are 109 // would offer no protection (the submodules are
110 // created only once in a single-treaded manner 110 // created only once in a single-treaded manner
111 // during APM creation). 111 // during APM creation).
112 EchoCancellation* echo_cancellation() const override; 112 EchoCancellation* echo_cancellation() const override;
113 EchoControlMobile* echo_control_mobile() const override; 113 EchoControlMobile* echo_control_mobile() const override;
114 GainControl* gain_control() const override; 114 GainControl* gain_control() const override;
115 // TODO(peah): Deprecate this API call. 115 // TODO(peah): Deprecate this API call.
116 HighPassFilter* high_pass_filter() const override; 116 HighPassFilter* high_pass_filter() const override;
117 LevelEstimator* level_estimator() const override; 117 LevelEstimator* level_estimator() const override;
118 NoiseSuppression* noise_suppression() const override; 118 NoiseSuppression* noise_suppression() const override;
119 VoiceDetection* voice_detection() const override; 119 VoiceDetection* voice_detection() const override;
120 120
121 // TODO(peah): Remove MutateConfig once the new API allows that. 121 // TODO(peah): Remove MutateConfig once the new API allows that.
122 void MutateConfig(rtc::FunctionView<void(AudioProcessing::Config*)> mutator); 122 void MutateConfig(rtc::FunctionView<void(AudioProcessing::Config*)> mutator);
123 AudioProcessing::Config GetConfig() const override; 123 AudioProcessing::Config GetConfig() const override;
124 124
125 protected: 125 protected:
126 // Overridden in a mock. 126 // Overridden in a mock.
127 virtual int InitializeLocked() 127 virtual int InitializeLocked()
128 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); 128 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_);
129 129
130 private: 130 private:
131 // TODO(peah): These friend classes should be removed as soon as the new 131 // TODO(peah): These friend classes should be removed as soon as the new
132 // parameter setting scheme allows. 132 // parameter setting scheme allows.
133 FRIEND_TEST_ALL_PREFIXES(ApmConfiguration, DefaultBehavior); 133 FRIEND_TEST_ALL_PREFIXES(ApmConfiguration, DefaultBehavior);
134 FRIEND_TEST_ALL_PREFIXES(ApmConfiguration, ValidConfigBehavior); 134 FRIEND_TEST_ALL_PREFIXES(ApmConfiguration, ValidConfigBehavior);
135 FRIEND_TEST_ALL_PREFIXES(ApmConfiguration, InValidConfigBehavior); 135 FRIEND_TEST_ALL_PREFIXES(ApmConfiguration, InValidConfigBehavior);
136 struct ApmPublicSubmodules; 136 struct ApmPublicSubmodules;
137 struct ApmPrivateSubmodules; 137 struct ApmPrivateSubmodules;
138 138
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 bool first_update_ = true; 181 bool first_update_ = true;
182 }; 182 };
183 183
184 // Method for modifying the formats struct that are called from both 184 // Method for modifying the formats struct that are called from both
185 // the render and capture threads. The check for whether modifications 185 // the render and capture threads. The check for whether modifications
186 // are needed is done while holding the render lock only, thereby avoiding 186 // are needed is done while holding the render lock only, thereby avoiding
187 // that the capture thread blocks the render thread. 187 // that the capture thread blocks the render thread.
188 // The struct is modified in a single-threaded manner by holding both the 188 // The struct is modified in a single-threaded manner by holding both the
189 // render and capture locks. 189 // render and capture locks.
190 int MaybeInitialize(const ProcessingConfig& config, bool force_initialization) 190 int MaybeInitialize(const ProcessingConfig& config, bool force_initialization)
191 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); 191 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_);
192 192
193 int MaybeInitializeRender(const ProcessingConfig& processing_config) 193 int MaybeInitializeRender(const ProcessingConfig& processing_config)
194 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); 194 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_);
195 195
196 int MaybeInitializeCapture(const ProcessingConfig& processing_config, 196 int MaybeInitializeCapture(const ProcessingConfig& processing_config,
197 bool force_initialization) 197 bool force_initialization)
198 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); 198 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_);
199 199
200 // Method for updating the state keeping track of the active submodules. 200 // Method for updating the state keeping track of the active submodules.
201 // Returns a bool indicating whether the state has changed. 201 // Returns a bool indicating whether the state has changed.
202 bool UpdateActiveSubmoduleStates() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 202 bool UpdateActiveSubmoduleStates()
203 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
203 204
204 // Methods requiring APM running in a single-threaded manner. 205 // Methods requiring APM running in a single-threaded manner.
205 // Are called with both the render and capture locks already 206 // Are called with both the render and capture locks already
206 // acquired. 207 // acquired.
207 void InitializeTransient() 208 void InitializeTransient()
208 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); 209 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_);
209 void InitializeBeamformer() 210 void InitializeBeamformer()
210 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); 211 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_);
211 void InitializeIntelligibility() 212 void InitializeIntelligibility()
212 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); 213 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_);
213 int InitializeLocked(const ProcessingConfig& config) 214 int InitializeLocked(const ProcessingConfig& config)
214 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); 215 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_);
215 void InitializeLevelController() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 216 void InitializeLevelController() RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
216 void InitializeResidualEchoDetector() 217 void InitializeResidualEchoDetector()
217 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); 218 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_);
218 void InitializeLowCutFilter() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 219 void InitializeLowCutFilter() RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
219 void InitializeEchoCanceller3() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 220 void InitializeEchoCanceller3() RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
220 void InitializeGainController2(); 221 void InitializeGainController2();
221 222
222 void EmptyQueuedRenderAudio(); 223 void EmptyQueuedRenderAudio();
223 void AllocateRenderQueue() 224 void AllocateRenderQueue()
224 EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_); 225 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_, crit_capture_);
225 void QueueBandedRenderAudio(AudioBuffer* audio) 226 void QueueBandedRenderAudio(AudioBuffer* audio)
226 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); 227 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_);
227 void QueueNonbandedRenderAudio(AudioBuffer* audio) 228 void QueueNonbandedRenderAudio(AudioBuffer* audio)
228 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); 229 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_);
229 230
230 // Capture-side exclusive methods possibly running APM in a multi-threaded 231 // Capture-side exclusive methods possibly running APM in a multi-threaded
231 // manner that are called with the render lock already acquired. 232 // manner that are called with the render lock already acquired.
232 int ProcessCaptureStreamLocked() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 233 int ProcessCaptureStreamLocked() RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
233 void MaybeUpdateHistograms() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 234 void MaybeUpdateHistograms() RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
234 235
235 // Render-side exclusive methods possibly running APM in a multi-threaded 236 // Render-side exclusive methods possibly running APM in a multi-threaded
236 // manner that are called with the render lock already acquired. 237 // manner that are called with the render lock already acquired.
237 // TODO(ekm): Remove once all clients updated to new interface. 238 // TODO(ekm): Remove once all clients updated to new interface.
238 int AnalyzeReverseStreamLocked(const float* const* src, 239 int AnalyzeReverseStreamLocked(const float* const* src,
239 const StreamConfig& input_config, 240 const StreamConfig& input_config,
240 const StreamConfig& output_config) 241 const StreamConfig& output_config)
241 EXCLUSIVE_LOCKS_REQUIRED(crit_render_); 242 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_);
242 int ProcessRenderStreamLocked() EXCLUSIVE_LOCKS_REQUIRED(crit_render_); 243 int ProcessRenderStreamLocked() RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_render_);
243 244
244 // Collects configuration settings from public and private 245 // Collects configuration settings from public and private
245 // submodules to be saved as an audioproc::Config message on the 246 // submodules to be saved as an audioproc::Config message on the
246 // AecDump if it is attached. If not |forced|, only writes the current 247 // AecDump if it is attached. If not |forced|, only writes the current
247 // config if it is different from the last saved one; if |forced|, 248 // config if it is different from the last saved one; if |forced|,
248 // writes the config regardless of the last saved. 249 // writes the config regardless of the last saved.
249 void WriteAecDumpConfigMessage(bool forced) 250 void WriteAecDumpConfigMessage(bool forced)
250 EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 251 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
251 252
252 // Notifies attached AecDump of current configuration and capture data. 253 // Notifies attached AecDump of current configuration and capture data.
253 void RecordUnprocessedCaptureStream(const float* const* capture_stream) 254 void RecordUnprocessedCaptureStream(const float* const* capture_stream)
254 EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 255 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
255 256
256 void RecordUnprocessedCaptureStream(const AudioFrame& capture_frame) 257 void RecordUnprocessedCaptureStream(const AudioFrame& capture_frame)
257 EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 258 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
258 259
259 // Notifies attached AecDump of current configuration and 260 // Notifies attached AecDump of current configuration and
260 // processed capture data and issues a capture stream recording 261 // processed capture data and issues a capture stream recording
261 // request. 262 // request.
262 void RecordProcessedCaptureStream( 263 void RecordProcessedCaptureStream(
263 const float* const* processed_capture_stream) 264 const float* const* processed_capture_stream)
264 EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 265 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
265 266
266 void RecordProcessedCaptureStream(const AudioFrame& processed_capture_frame) 267 void RecordProcessedCaptureStream(const AudioFrame& processed_capture_frame)
267 EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 268 RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
268 269
269 // Notifies attached AecDump about current state (delay, drift, etc). 270 // Notifies attached AecDump about current state (delay, drift, etc).
270 void RecordAudioProcessingState() EXCLUSIVE_LOCKS_REQUIRED(crit_capture_); 271 void RecordAudioProcessingState() RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_capture_);
271 272
272 // AecDump instance used for optionally logging APM config, input 273 // AecDump instance used for optionally logging APM config, input
273 // and output to file in the AEC-dump format defined in debug.proto. 274 // and output to file in the AEC-dump format defined in debug.proto.
274 std::unique_ptr<AecDump> aec_dump_; 275 std::unique_ptr<AecDump> aec_dump_;
275 276
276 // Hold the last config written with AecDump for avoiding writing 277 // Hold the last config written with AecDump for avoiding writing
277 // the same config twice. 278 // the same config twice.
278 InternalAPMConfig apm_config_for_aec_dump_ GUARDED_BY(crit_capture_); 279 InternalAPMConfig apm_config_for_aec_dump_ RTC_GUARDED_BY(crit_capture_);
279 280
280 // Critical sections. 281 // Critical sections.
281 rtc::CriticalSection crit_render_ ACQUIRED_BEFORE(crit_capture_); 282 rtc::CriticalSection crit_render_ RTC_ACQUIRED_BEFORE(crit_capture_);
282 rtc::CriticalSection crit_capture_; 283 rtc::CriticalSection crit_capture_;
283 284
284 // Struct containing the Config specifying the behavior of APM. 285 // Struct containing the Config specifying the behavior of APM.
285 AudioProcessing::Config config_; 286 AudioProcessing::Config config_;
286 287
287 // Class containing information about what submodules are active. 288 // Class containing information about what submodules are active.
288 ApmSubmoduleStates submodule_states_; 289 ApmSubmoduleStates submodule_states_;
289 290
290 // Structs containing the pointers to the submodules. 291 // Structs containing the pointers to the submodules.
291 std::unique_ptr<ApmPublicSubmodules> public_submodules_; 292 std::unique_ptr<ApmPublicSubmodules> public_submodules_;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 bool transient_suppressor_enabled; 339 bool transient_suppressor_enabled;
339 std::vector<Point> array_geometry; 340 std::vector<Point> array_geometry;
340 SphericalPointf target_direction; 341 SphericalPointf target_direction;
341 std::unique_ptr<AudioBuffer> capture_audio; 342 std::unique_ptr<AudioBuffer> capture_audio;
342 // Only the rate and samples fields of capture_processing_format_ are used 343 // Only the rate and samples fields of capture_processing_format_ are used
343 // because the capture processing number of channels is mutable and is 344 // because the capture processing number of channels is mutable and is
344 // tracked by the capture_audio_. 345 // tracked by the capture_audio_.
345 StreamConfig capture_processing_format; 346 StreamConfig capture_processing_format;
346 int split_rate; 347 int split_rate;
347 bool echo_path_gain_change; 348 bool echo_path_gain_change;
348 } capture_ GUARDED_BY(crit_capture_); 349 } capture_ RTC_GUARDED_BY(crit_capture_);
349 350
350 struct ApmCaptureNonLockedState { 351 struct ApmCaptureNonLockedState {
351 ApmCaptureNonLockedState(bool beamformer_enabled, 352 ApmCaptureNonLockedState(bool beamformer_enabled,
352 bool intelligibility_enabled) 353 bool intelligibility_enabled)
353 : capture_processing_format(kSampleRate16kHz), 354 : capture_processing_format(kSampleRate16kHz),
354 split_rate(kSampleRate16kHz), 355 split_rate(kSampleRate16kHz),
355 stream_delay_ms(0), 356 stream_delay_ms(0),
356 beamformer_enabled(beamformer_enabled), 357 beamformer_enabled(beamformer_enabled),
357 intelligibility_enabled(intelligibility_enabled) {} 358 intelligibility_enabled(intelligibility_enabled) {}
358 // Only the rate and samples fields of capture_processing_format_ are used 359 // Only the rate and samples fields of capture_processing_format_ are used
359 // because the forward processing number of channels is mutable and is 360 // because the forward processing number of channels is mutable and is
360 // tracked by the capture_audio_. 361 // tracked by the capture_audio_.
361 StreamConfig capture_processing_format; 362 StreamConfig capture_processing_format;
362 int split_rate; 363 int split_rate;
363 int stream_delay_ms; 364 int stream_delay_ms;
364 bool beamformer_enabled; 365 bool beamformer_enabled;
365 bool intelligibility_enabled; 366 bool intelligibility_enabled;
366 bool level_controller_enabled = false; 367 bool level_controller_enabled = false;
367 bool echo_canceller3_enabled = false; 368 bool echo_canceller3_enabled = false;
368 bool gain_controller2_enabled = false; 369 bool gain_controller2_enabled = false;
369 } capture_nonlocked_; 370 } capture_nonlocked_;
370 371
371 struct ApmRenderState { 372 struct ApmRenderState {
372 ApmRenderState(); 373 ApmRenderState();
373 ~ApmRenderState(); 374 ~ApmRenderState();
374 std::unique_ptr<AudioConverter> render_converter; 375 std::unique_ptr<AudioConverter> render_converter;
375 std::unique_ptr<AudioBuffer> render_audio; 376 std::unique_ptr<AudioBuffer> render_audio;
376 } render_ GUARDED_BY(crit_render_); 377 } render_ RTC_GUARDED_BY(crit_render_);
377 378
378 size_t aec_render_queue_element_max_size_ GUARDED_BY(crit_render_) 379 size_t aec_render_queue_element_max_size_ RTC_GUARDED_BY(crit_render_)
379 GUARDED_BY(crit_capture_) = 0; 380 RTC_GUARDED_BY(crit_capture_) = 0;
380 std::vector<float> aec_render_queue_buffer_ GUARDED_BY(crit_render_); 381 std::vector<float> aec_render_queue_buffer_ RTC_GUARDED_BY(crit_render_);
381 std::vector<float> aec_capture_queue_buffer_ GUARDED_BY(crit_capture_); 382 std::vector<float> aec_capture_queue_buffer_ RTC_GUARDED_BY(crit_capture_);
382 383
383 size_t aecm_render_queue_element_max_size_ GUARDED_BY(crit_render_) 384 size_t aecm_render_queue_element_max_size_ RTC_GUARDED_BY(crit_render_)
384 GUARDED_BY(crit_capture_) = 0; 385 RTC_GUARDED_BY(crit_capture_) = 0;
385 std::vector<int16_t> aecm_render_queue_buffer_ GUARDED_BY(crit_render_); 386 std::vector<int16_t> aecm_render_queue_buffer_ RTC_GUARDED_BY(crit_render_);
386 std::vector<int16_t> aecm_capture_queue_buffer_ GUARDED_BY(crit_capture_); 387 std::vector<int16_t> aecm_capture_queue_buffer_ RTC_GUARDED_BY(crit_capture_);
387 388
388 size_t agc_render_queue_element_max_size_ GUARDED_BY(crit_render_) 389 size_t agc_render_queue_element_max_size_ RTC_GUARDED_BY(crit_render_)
389 GUARDED_BY(crit_capture_) = 0; 390 RTC_GUARDED_BY(crit_capture_) = 0;
390 std::vector<int16_t> agc_render_queue_buffer_ GUARDED_BY(crit_render_); 391 std::vector<int16_t> agc_render_queue_buffer_ RTC_GUARDED_BY(crit_render_);
391 std::vector<int16_t> agc_capture_queue_buffer_ GUARDED_BY(crit_capture_); 392 std::vector<int16_t> agc_capture_queue_buffer_ RTC_GUARDED_BY(crit_capture_);
392 393
393 size_t red_render_queue_element_max_size_ GUARDED_BY(crit_render_) 394 size_t red_render_queue_element_max_size_ RTC_GUARDED_BY(crit_render_)
394 GUARDED_BY(crit_capture_) = 0; 395 RTC_GUARDED_BY(crit_capture_) = 0;
395 std::vector<float> red_render_queue_buffer_ GUARDED_BY(crit_render_); 396 std::vector<float> red_render_queue_buffer_ RTC_GUARDED_BY(crit_render_);
396 std::vector<float> red_capture_queue_buffer_ GUARDED_BY(crit_capture_); 397 std::vector<float> red_capture_queue_buffer_ RTC_GUARDED_BY(crit_capture_);
397 398
398 RmsLevel capture_input_rms_ GUARDED_BY(crit_capture_); 399 RmsLevel capture_input_rms_ RTC_GUARDED_BY(crit_capture_);
399 RmsLevel capture_output_rms_ GUARDED_BY(crit_capture_); 400 RmsLevel capture_output_rms_ RTC_GUARDED_BY(crit_capture_);
400 int capture_rms_interval_counter_ GUARDED_BY(crit_capture_) = 0; 401 int capture_rms_interval_counter_ RTC_GUARDED_BY(crit_capture_) = 0;
401 402
402 // Lock protection not needed. 403 // Lock protection not needed.
403 std::unique_ptr<SwapQueue<std::vector<float>, RenderQueueItemVerifier<float>>> 404 std::unique_ptr<SwapQueue<std::vector<float>, RenderQueueItemVerifier<float>>>
404 aec_render_signal_queue_; 405 aec_render_signal_queue_;
405 std::unique_ptr< 406 std::unique_ptr<
406 SwapQueue<std::vector<int16_t>, RenderQueueItemVerifier<int16_t>>> 407 SwapQueue<std::vector<int16_t>, RenderQueueItemVerifier<int16_t>>>
407 aecm_render_signal_queue_; 408 aecm_render_signal_queue_;
408 std::unique_ptr< 409 std::unique_ptr<
409 SwapQueue<std::vector<int16_t>, RenderQueueItemVerifier<int16_t>>> 410 SwapQueue<std::vector<int16_t>, RenderQueueItemVerifier<int16_t>>>
410 agc_render_signal_queue_; 411 agc_render_signal_queue_;
411 std::unique_ptr<SwapQueue<std::vector<float>, RenderQueueItemVerifier<float>>> 412 std::unique_ptr<SwapQueue<std::vector<float>, RenderQueueItemVerifier<float>>>
412 red_render_signal_queue_; 413 red_render_signal_queue_;
413 }; 414 };
414 415
415 } // namespace webrtc 416 } // namespace webrtc
416 417
417 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AUDIO_PROCESSING_IMPL_H_ 418 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AUDIO_PROCESSING_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698