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

Side by Side Diff: webrtc/media/engine/fakewebrtcvoiceengine.h

Issue 2446143002: Start using APM directly in WVoMC (not VoEAudioProcessing) (Closed)
Patch Set: android build error Created 4 years, 1 month 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
« no previous file with comments | « no previous file | webrtc/media/engine/webrtcvoiceengine.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2010 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 27 matching lines...) Expand all
38 38
39 #define WEBRTC_STUB(method, args) \ 39 #define WEBRTC_STUB(method, args) \
40 int method args override { return 0; } 40 int method args override { return 0; }
41 41
42 #define WEBRTC_STUB_CONST(method, args) \ 42 #define WEBRTC_STUB_CONST(method, args) \
43 int method args const override { return 0; } 43 int method args const override { return 0; }
44 44
45 #define WEBRTC_BOOL_STUB(method, args) \ 45 #define WEBRTC_BOOL_STUB(method, args) \
46 bool method args override { return true; } 46 bool method args override { return true; }
47 47
48 #define WEBRTC_BOOL_STUB_CONST(method, args) \
49 bool method args const override { return true; }
50
51 #define WEBRTC_VOID_STUB(method, args) \ 48 #define WEBRTC_VOID_STUB(method, args) \
52 void method args override {} 49 void method args override {}
53 50
54 #define WEBRTC_FUNC(method, args) int method args override 51 #define WEBRTC_FUNC(method, args) int method args override
55 52
56 #define WEBRTC_VOID_FUNC(method, args) void method args override
57
58 class FakeAudioProcessing : public webrtc::AudioProcessing {
59 public:
60 FakeAudioProcessing() : experimental_ns_enabled_(false) {}
61
62 WEBRTC_STUB(Initialize, ())
63 WEBRTC_STUB(Initialize, (
64 int input_sample_rate_hz,
65 int output_sample_rate_hz,
66 int reverse_sample_rate_hz,
67 webrtc::AudioProcessing::ChannelLayout input_layout,
68 webrtc::AudioProcessing::ChannelLayout output_layout,
69 webrtc::AudioProcessing::ChannelLayout reverse_layout));
70 WEBRTC_STUB(Initialize, (
71 const webrtc::ProcessingConfig& processing_config));
72
73 WEBRTC_VOID_STUB(ApplyConfig, (const AudioProcessing::Config& config));
74 WEBRTC_VOID_FUNC(SetExtraOptions, (const webrtc::Config& config)) {
75 experimental_ns_enabled_ = config.Get<webrtc::ExperimentalNs>().enabled;
76 }
77
78 WEBRTC_STUB_CONST(proc_sample_rate_hz, ());
79 WEBRTC_STUB_CONST(proc_split_sample_rate_hz, ());
80 size_t num_input_channels() const override { return 0; }
81 size_t num_proc_channels() const override { return 0; }
82 size_t num_output_channels() const override { return 0; }
83 size_t num_reverse_channels() const override { return 0; }
84 WEBRTC_VOID_STUB(set_output_will_be_muted, (bool muted));
85 WEBRTC_STUB(ProcessStream, (webrtc::AudioFrame* frame));
86 WEBRTC_STUB(ProcessStream, (
87 const float* const* src,
88 size_t samples_per_channel,
89 int input_sample_rate_hz,
90 webrtc::AudioProcessing::ChannelLayout input_layout,
91 int output_sample_rate_hz,
92 webrtc::AudioProcessing::ChannelLayout output_layout,
93 float* const* dest));
94 WEBRTC_STUB(ProcessStream,
95 (const float* const* src,
96 const webrtc::StreamConfig& input_config,
97 const webrtc::StreamConfig& output_config,
98 float* const* dest));
99 WEBRTC_STUB(ProcessReverseStream, (webrtc::AudioFrame * frame));
100 WEBRTC_STUB(AnalyzeReverseStream, (
101 const float* const* data,
102 size_t samples_per_channel,
103 int sample_rate_hz,
104 webrtc::AudioProcessing::ChannelLayout layout));
105 WEBRTC_STUB(ProcessReverseStream,
106 (const float* const* src,
107 const webrtc::StreamConfig& reverse_input_config,
108 const webrtc::StreamConfig& reverse_output_config,
109 float* const* dest));
110 WEBRTC_STUB(set_stream_delay_ms, (int delay));
111 WEBRTC_STUB_CONST(stream_delay_ms, ());
112 WEBRTC_BOOL_STUB_CONST(was_stream_delay_set, ());
113 WEBRTC_VOID_STUB(set_stream_key_pressed, (bool key_pressed));
114 WEBRTC_VOID_STUB(set_delay_offset_ms, (int offset));
115 WEBRTC_STUB_CONST(delay_offset_ms, ());
116 WEBRTC_STUB(StartDebugRecording,
117 (const char filename[kMaxFilenameSize], int64_t max_size_bytes));
118 WEBRTC_STUB(StartDebugRecording, (FILE * handle, int64_t max_size_bytes));
119 WEBRTC_STUB(StartDebugRecording, (FILE * handle));
120 WEBRTC_STUB(StartDebugRecordingForPlatformFile, (rtc::PlatformFile handle));
121 WEBRTC_STUB(StopDebugRecording, ());
122 WEBRTC_VOID_STUB(UpdateHistogramsOnCallEnd, ());
123 webrtc::EchoCancellation* echo_cancellation() const override { return NULL; }
124 webrtc::EchoControlMobile* echo_control_mobile() const override {
125 return NULL;
126 }
127 webrtc::GainControl* gain_control() const override { return NULL; }
128 webrtc::HighPassFilter* high_pass_filter() const override { return NULL; }
129 webrtc::LevelEstimator* level_estimator() const override { return NULL; }
130 webrtc::NoiseSuppression* noise_suppression() const override { return NULL; }
131 webrtc::VoiceDetection* voice_detection() const override { return NULL; }
132
133 bool experimental_ns_enabled() {
134 return experimental_ns_enabled_;
135 }
136
137 private:
138 bool experimental_ns_enabled_;
139 };
140
141 class FakeWebRtcVoiceEngine 53 class FakeWebRtcVoiceEngine
142 : public webrtc::VoEAudioProcessing, 54 : public webrtc::VoEAudioProcessing,
143 public webrtc::VoEBase, public webrtc::VoECodec, 55 public webrtc::VoEBase, public webrtc::VoECodec,
144 public webrtc::VoEHardware, 56 public webrtc::VoEHardware,
145 public webrtc::VoEVolumeControl { 57 public webrtc::VoEVolumeControl {
146 public: 58 public:
147 struct Channel { 59 struct Channel {
148 int associate_send_channel = -1; 60 int associate_send_channel = -1;
149 std::vector<webrtc::CodecInst> recv_codecs; 61 std::vector<webrtc::CodecInst> recv_codecs;
150 size_t neteq_capacity = 0; 62 size_t neteq_capacity = 0;
151 bool neteq_fast_accelerate = false; 63 bool neteq_fast_accelerate = false;
152 }; 64 };
153 65
154 FakeWebRtcVoiceEngine() { 66 explicit FakeWebRtcVoiceEngine(webrtc::AudioProcessing* apm) : apm_(apm) {
155 memset(&agc_config_, 0, sizeof(agc_config_)); 67 memset(&agc_config_, 0, sizeof(agc_config_));
156 } 68 }
157 ~FakeWebRtcVoiceEngine() override { 69 ~FakeWebRtcVoiceEngine() override {
158 RTC_CHECK(channels_.empty()); 70 RTC_CHECK(channels_.empty());
159 } 71 }
160 72
161 bool ec_metrics_enabled() const { return ec_metrics_enabled_; } 73 bool ec_metrics_enabled() const { return ec_metrics_enabled_; }
162 74
163 bool IsInited() const { return inited_; } 75 bool IsInited() const { return inited_; }
164 int GetLastChannel() const { return last_channel_; } 76 int GetLastChannel() const { return last_channel_; }
(...skipping 18 matching lines...) Expand all
183 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& 95 const rtc::scoped_refptr<webrtc::AudioDecoderFactory>&
184 decoder_factory)) { 96 decoder_factory)) {
185 inited_ = true; 97 inited_ = true;
186 return 0; 98 return 0;
187 } 99 }
188 WEBRTC_FUNC(Terminate, ()) { 100 WEBRTC_FUNC(Terminate, ()) {
189 inited_ = false; 101 inited_ = false;
190 return 0; 102 return 0;
191 } 103 }
192 webrtc::AudioProcessing* audio_processing() override { 104 webrtc::AudioProcessing* audio_processing() override {
193 return &audio_processing_; 105 return apm_;
194 } 106 }
195 webrtc::AudioDeviceModule* audio_device_module() override { 107 webrtc::AudioDeviceModule* audio_device_module() override {
196 return nullptr; 108 return nullptr;
197 } 109 }
198 WEBRTC_FUNC(CreateChannel, ()) { 110 WEBRTC_FUNC(CreateChannel, ()) {
199 return CreateChannel(webrtc::VoEBase::ChannelConfig()); 111 return CreateChannel(webrtc::VoEBase::ChannelConfig());
200 } 112 }
201 WEBRTC_FUNC(CreateChannel, (const webrtc::VoEBase::ChannelConfig& config)) { 113 WEBRTC_FUNC(CreateChannel, (const webrtc::VoEBase::ChannelConfig& config)) {
202 if (fail_create_channel_) { 114 if (fail_create_channel_) {
203 return -1; 115 return -1;
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 WEBRTC_FUNC(SetNsStatus, (bool enable, webrtc::NsModes mode)) { 249 WEBRTC_FUNC(SetNsStatus, (bool enable, webrtc::NsModes mode)) {
338 ns_enabled_ = enable; 250 ns_enabled_ = enable;
339 ns_mode_ = mode; 251 ns_mode_ = mode;
340 return 0; 252 return 0;
341 } 253 }
342 WEBRTC_FUNC(GetNsStatus, (bool& enabled, webrtc::NsModes& mode)) { 254 WEBRTC_FUNC(GetNsStatus, (bool& enabled, webrtc::NsModes& mode)) {
343 enabled = ns_enabled_; 255 enabled = ns_enabled_;
344 mode = ns_mode_; 256 mode = ns_mode_;
345 return 0; 257 return 0;
346 } 258 }
347
348 WEBRTC_FUNC(SetAgcStatus, (bool enable, webrtc::AgcModes mode)) { 259 WEBRTC_FUNC(SetAgcStatus, (bool enable, webrtc::AgcModes mode)) {
349 agc_enabled_ = enable; 260 agc_enabled_ = enable;
350 agc_mode_ = mode; 261 agc_mode_ = mode;
351 return 0; 262 return 0;
352 } 263 }
353 WEBRTC_FUNC(GetAgcStatus, (bool& enabled, webrtc::AgcModes& mode)) { 264 WEBRTC_FUNC(GetAgcStatus, (bool& enabled, webrtc::AgcModes& mode)) {
354 enabled = agc_enabled_; 265 enabled = agc_enabled_;
355 mode = agc_mode_; 266 mode = agc_mode_;
356 return 0; 267 return 0;
357 } 268 }
358
359 WEBRTC_FUNC(SetAgcConfig, (webrtc::AgcConfig config)) { 269 WEBRTC_FUNC(SetAgcConfig, (webrtc::AgcConfig config)) {
360 agc_config_ = config; 270 agc_config_ = config;
361 return 0; 271 return 0;
362 } 272 }
363 WEBRTC_FUNC(GetAgcConfig, (webrtc::AgcConfig& config)) { 273 WEBRTC_FUNC(GetAgcConfig, (webrtc::AgcConfig& config)) {
364 config = agc_config_; 274 config = agc_config_;
365 return 0; 275 return 0;
366 } 276 }
367 WEBRTC_FUNC(SetEcStatus, (bool enable, webrtc::EcModes mode)) { 277 WEBRTC_FUNC(SetEcStatus, (bool enable, webrtc::EcModes mode)) {
368 ec_enabled_ = enable; 278 ec_enabled_ = enable;
(...skipping 21 matching lines...) Expand all
390 } 300 }
391 WEBRTC_STUB(VoiceActivityIndicator, (int channel)); 301 WEBRTC_STUB(VoiceActivityIndicator, (int channel));
392 WEBRTC_FUNC(SetEcMetricsStatus, (bool enable)) { 302 WEBRTC_FUNC(SetEcMetricsStatus, (bool enable)) {
393 ec_metrics_enabled_ = enable; 303 ec_metrics_enabled_ = enable;
394 return 0; 304 return 0;
395 } 305 }
396 WEBRTC_STUB(GetEcMetricsStatus, (bool& enabled)); 306 WEBRTC_STUB(GetEcMetricsStatus, (bool& enabled));
397 WEBRTC_STUB(GetEchoMetrics, (int& ERL, int& ERLE, int& RERL, int& A_NLP)); 307 WEBRTC_STUB(GetEchoMetrics, (int& ERL, int& ERLE, int& RERL, int& A_NLP));
398 WEBRTC_STUB(GetEcDelayMetrics, (int& delay_median, int& delay_std, 308 WEBRTC_STUB(GetEcDelayMetrics, (int& delay_median, int& delay_std,
399 float& fraction_poor_delays)); 309 float& fraction_poor_delays));
400
401 WEBRTC_STUB(StartDebugRecording, (const char* fileNameUTF8)); 310 WEBRTC_STUB(StartDebugRecording, (const char* fileNameUTF8));
402 WEBRTC_STUB(StartDebugRecording, (FILE* handle)); 311 WEBRTC_STUB(StartDebugRecording, (FILE* handle));
403 WEBRTC_STUB(StopDebugRecording, ()); 312 WEBRTC_STUB(StopDebugRecording, ());
404
405 WEBRTC_FUNC(SetTypingDetectionStatus, (bool enable)) { 313 WEBRTC_FUNC(SetTypingDetectionStatus, (bool enable)) {
406 typing_detection_enabled_ = enable; 314 typing_detection_enabled_ = enable;
407 return 0; 315 return 0;
408 } 316 }
409 WEBRTC_FUNC(GetTypingDetectionStatus, (bool& enabled)) { 317 WEBRTC_FUNC(GetTypingDetectionStatus, (bool& enabled)) {
410 enabled = typing_detection_enabled_; 318 enabled = typing_detection_enabled_;
411 return 0; 319 return 0;
412 } 320 }
413
414 WEBRTC_STUB(TimeSinceLastTyping, (int& seconds)); 321 WEBRTC_STUB(TimeSinceLastTyping, (int& seconds));
415 WEBRTC_STUB(SetTypingDetectionParameters, (int timeWindow, 322 WEBRTC_STUB(SetTypingDetectionParameters, (int timeWindow,
416 int costPerTyping, 323 int costPerTyping,
417 int reportingThreshold, 324 int reportingThreshold,
418 int penaltyDecay, 325 int penaltyDecay,
419 int typeEventDelay)); 326 int typeEventDelay));
420 int EnableHighPassFilter(bool enable) override { 327 int EnableHighPassFilter(bool enable) override {
421 highpass_filter_enabled_ = enable; 328 highpass_filter_enabled_ = enable;
422 return 0; 329 return 0;
423 } 330 }
(...skipping 28 matching lines...) Expand all
452 bool ns_enabled_ = false; 359 bool ns_enabled_ = false;
453 bool agc_enabled_ = false; 360 bool agc_enabled_ = false;
454 bool highpass_filter_enabled_ = false; 361 bool highpass_filter_enabled_ = false;
455 bool stereo_swapping_enabled_ = false; 362 bool stereo_swapping_enabled_ = false;
456 bool typing_detection_enabled_ = false; 363 bool typing_detection_enabled_ = false;
457 webrtc::EcModes ec_mode_ = webrtc::kEcDefault; 364 webrtc::EcModes ec_mode_ = webrtc::kEcDefault;
458 webrtc::AecmModes aecm_mode_ = webrtc::kAecmSpeakerphone; 365 webrtc::AecmModes aecm_mode_ = webrtc::kAecmSpeakerphone;
459 webrtc::NsModes ns_mode_ = webrtc::kNsDefault; 366 webrtc::NsModes ns_mode_ = webrtc::kNsDefault;
460 webrtc::AgcModes agc_mode_ = webrtc::kAgcDefault; 367 webrtc::AgcModes agc_mode_ = webrtc::kAgcDefault;
461 webrtc::AgcConfig agc_config_; 368 webrtc::AgcConfig agc_config_;
462 FakeAudioProcessing audio_processing_; 369 webrtc::AudioProcessing* apm_ = nullptr;
370
371 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(FakeWebRtcVoiceEngine);
463 }; 372 };
464 373
465 } // namespace cricket 374 } // namespace cricket
466 375
467 #endif // WEBRTC_MEDIA_ENGINE_FAKEWEBRTCVOICEENGINE_H_ 376 #endif // WEBRTC_MEDIA_ENGINE_FAKEWEBRTCVOICEENGINE_H_
OLDNEW
« no previous file with comments | « no previous file | webrtc/media/engine/webrtcvoiceengine.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698