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

Side by Side Diff: webrtc/modules/audio_processing/test/debug_dump_test.cc

Issue 2292863002: Introduced new scheme for controlling the functionality inside the audio processing module (Closed)
Patch Set: Fixed bad merge Created 4 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) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 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 30 matching lines...) Expand all
41 DebugDumpGenerator(const std::string& input_file_name, 41 DebugDumpGenerator(const std::string& input_file_name,
42 int input_file_rate_hz, 42 int input_file_rate_hz,
43 int input_channels, 43 int input_channels,
44 const std::string& reverse_file_name, 44 const std::string& reverse_file_name,
45 int reverse_file_rate_hz, 45 int reverse_file_rate_hz,
46 int reverse_channels, 46 int reverse_channels,
47 const Config& config, 47 const Config& config,
48 const std::string& dump_file_name); 48 const std::string& dump_file_name);
49 49
50 // Constructor that uses default input files. 50 // Constructor that uses default input files.
51 explicit DebugDumpGenerator(const Config& config); 51 explicit DebugDumpGenerator(const Config& config,
52 const AudioProcessing::Config& apm_config);
52 53
53 ~DebugDumpGenerator(); 54 ~DebugDumpGenerator();
54 55
55 // Changes the sample rate of the input audio to the APM. 56 // Changes the sample rate of the input audio to the APM.
56 void SetInputRate(int rate_hz); 57 void SetInputRate(int rate_hz);
57 58
58 // Sets if converts stereo input signal to mono by discarding other channels. 59 // Sets if converts stereo input signal to mono by discarding other channels.
59 void ForceInputMono(bool mono); 60 void ForceInputMono(bool mono);
60 61
61 // Changes the sample rate of the reverse audio to the APM. 62 // Changes the sample rate of the reverse audio to the APM.
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 input_(new ChannelBuffer<float>(input_config_.num_frames(), 127 input_(new ChannelBuffer<float>(input_config_.num_frames(),
127 input_config_.num_channels())), 128 input_config_.num_channels())),
128 reverse_(new ChannelBuffer<float>(reverse_config_.num_frames(), 129 reverse_(new ChannelBuffer<float>(reverse_config_.num_frames(),
129 reverse_config_.num_channels())), 130 reverse_config_.num_channels())),
130 output_(new ChannelBuffer<float>(output_config_.num_frames(), 131 output_(new ChannelBuffer<float>(output_config_.num_frames(),
131 output_config_.num_channels())), 132 output_config_.num_channels())),
132 apm_(AudioProcessing::Create(config)), 133 apm_(AudioProcessing::Create(config)),
133 dump_file_name_(dump_file_name) { 134 dump_file_name_(dump_file_name) {
134 } 135 }
135 136
136 DebugDumpGenerator::DebugDumpGenerator(const Config& config) 137 DebugDumpGenerator::DebugDumpGenerator(
137 : DebugDumpGenerator(ResourcePath("near32_stereo", "pcm"), 32000, 2, 138 const Config& config,
138 ResourcePath("far32_stereo", "pcm"), 32000, 2, 139 const AudioProcessing::Config& apm_config)
139 config, 140 : DebugDumpGenerator(ResourcePath("near32_stereo", "pcm"),
140 TempFilename(OutputPath(), "debug_aec")) { 141 32000,
142 2,
143 ResourcePath("far32_stereo", "pcm"),
144 32000,
145 2,
146 config,
147 TempFilename(OutputPath(), "debug_aec")) {
148 apm_->ApplyConfig(apm_config);
141 } 149 }
142 150
143 DebugDumpGenerator::~DebugDumpGenerator() { 151 DebugDumpGenerator::~DebugDumpGenerator() {
144 remove(dump_file_name_.c_str()); 152 remove(dump_file_name_.c_str());
145 } 153 }
146 154
147 void DebugDumpGenerator::SetInputRate(int rate_hz) { 155 void DebugDumpGenerator::SetInputRate(int rate_hz) {
148 input_audio_.set_output_rate_hz(rate_hz); 156 input_audio_.set_output_rate_hz(rate_hz);
149 input_config_.set_sample_rate_hz(rate_hz); 157 input_config_.set_sample_rate_hz(rate_hz);
150 MaybeResetBuffer(&input_, input_config_); 158 MaybeResetBuffer(&input_, input_config_);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 ASSERT_EQ(0, memcmp(output->channels()[i], 266 ASSERT_EQ(0, memcmp(output->channels()[i],
259 msg->output_channel(i).data(), 267 msg->output_channel(i).data(),
260 msg->output_channel(i).size())); 268 msg->output_channel(i).size()));
261 } 269 }
262 } 270 }
263 } 271 }
264 } 272 }
265 273
266 TEST_F(DebugDumpTest, SimpleCase) { 274 TEST_F(DebugDumpTest, SimpleCase) {
267 Config config; 275 Config config;
268 DebugDumpGenerator generator(config); 276 DebugDumpGenerator generator(config, AudioProcessing::Config());
269 generator.StartRecording(); 277 generator.StartRecording();
270 generator.Process(100); 278 generator.Process(100);
271 generator.StopRecording(); 279 generator.StopRecording();
272 VerifyDebugDump(generator.dump_file_name()); 280 VerifyDebugDump(generator.dump_file_name());
273 } 281 }
274 282
275 TEST_F(DebugDumpTest, ChangeInputFormat) { 283 TEST_F(DebugDumpTest, ChangeInputFormat) {
276 Config config; 284 Config config;
277 DebugDumpGenerator generator(config); 285 DebugDumpGenerator generator(config, AudioProcessing::Config());
286
278 generator.StartRecording(); 287 generator.StartRecording();
279 generator.Process(100); 288 generator.Process(100);
280 generator.SetInputRate(48000); 289 generator.SetInputRate(48000);
281 290
282 generator.ForceInputMono(true); 291 generator.ForceInputMono(true);
283 // Number of output channel should not be larger than that of input. APM will 292 // Number of output channel should not be larger than that of input. APM will
284 // fail otherwise. 293 // fail otherwise.
285 generator.SetOutputChannels(1); 294 generator.SetOutputChannels(1);
286 295
287 generator.Process(100); 296 generator.Process(100);
288 generator.StopRecording(); 297 generator.StopRecording();
289 VerifyDebugDump(generator.dump_file_name()); 298 VerifyDebugDump(generator.dump_file_name());
290 } 299 }
291 300
292 TEST_F(DebugDumpTest, ChangeReverseFormat) { 301 TEST_F(DebugDumpTest, ChangeReverseFormat) {
293 Config config; 302 Config config;
294 DebugDumpGenerator generator(config); 303 DebugDumpGenerator generator(config, AudioProcessing::Config());
295 generator.StartRecording(); 304 generator.StartRecording();
296 generator.Process(100); 305 generator.Process(100);
297 generator.SetReverseRate(48000); 306 generator.SetReverseRate(48000);
298 generator.ForceReverseMono(true); 307 generator.ForceReverseMono(true);
299 generator.Process(100); 308 generator.Process(100);
300 generator.StopRecording(); 309 generator.StopRecording();
301 VerifyDebugDump(generator.dump_file_name()); 310 VerifyDebugDump(generator.dump_file_name());
302 } 311 }
303 312
304 TEST_F(DebugDumpTest, ChangeOutputFormat) { 313 TEST_F(DebugDumpTest, ChangeOutputFormat) {
305 Config config; 314 Config config;
306 DebugDumpGenerator generator(config); 315 DebugDumpGenerator generator(config, AudioProcessing::Config());
307 generator.StartRecording(); 316 generator.StartRecording();
308 generator.Process(100); 317 generator.Process(100);
309 generator.SetOutputRate(48000); 318 generator.SetOutputRate(48000);
310 generator.SetOutputChannels(1); 319 generator.SetOutputChannels(1);
311 generator.Process(100); 320 generator.Process(100);
312 generator.StopRecording(); 321 generator.StopRecording();
313 VerifyDebugDump(generator.dump_file_name()); 322 VerifyDebugDump(generator.dump_file_name());
314 } 323 }
315 324
316 TEST_F(DebugDumpTest, ToggleAec) { 325 TEST_F(DebugDumpTest, ToggleAec) {
317 Config config; 326 Config config;
318 DebugDumpGenerator generator(config); 327 DebugDumpGenerator generator(config, AudioProcessing::Config());
319 generator.StartRecording(); 328 generator.StartRecording();
320 generator.Process(100); 329 generator.Process(100);
321 330
322 EchoCancellation* aec = generator.apm()->echo_cancellation(); 331 EchoCancellation* aec = generator.apm()->echo_cancellation();
323 EXPECT_EQ(AudioProcessing::kNoError, aec->Enable(!aec->is_enabled())); 332 EXPECT_EQ(AudioProcessing::kNoError, aec->Enable(!aec->is_enabled()));
324 333
325 generator.Process(100); 334 generator.Process(100);
326 generator.StopRecording(); 335 generator.StopRecording();
327 VerifyDebugDump(generator.dump_file_name()); 336 VerifyDebugDump(generator.dump_file_name());
328 } 337 }
329 338
330 TEST_F(DebugDumpTest, ToggleDelayAgnosticAec) { 339 TEST_F(DebugDumpTest, ToggleDelayAgnosticAec) {
331 Config config; 340 Config config;
332 config.Set<DelayAgnostic>(new DelayAgnostic(true)); 341 config.Set<DelayAgnostic>(new DelayAgnostic(true));
333 DebugDumpGenerator generator(config); 342 DebugDumpGenerator generator(config, AudioProcessing::Config());
334 generator.StartRecording(); 343 generator.StartRecording();
335 generator.Process(100); 344 generator.Process(100);
336 345
337 EchoCancellation* aec = generator.apm()->echo_cancellation(); 346 EchoCancellation* aec = generator.apm()->echo_cancellation();
338 EXPECT_EQ(AudioProcessing::kNoError, aec->Enable(!aec->is_enabled())); 347 EXPECT_EQ(AudioProcessing::kNoError, aec->Enable(!aec->is_enabled()));
339 348
340 generator.Process(100); 349 generator.Process(100);
341 generator.StopRecording(); 350 generator.StopRecording();
342 VerifyDebugDump(generator.dump_file_name()); 351 VerifyDebugDump(generator.dump_file_name());
343 } 352 }
344 353
345 TEST_F(DebugDumpTest, VerifyRefinedAdaptiveFilterExperimentalString) { 354 TEST_F(DebugDumpTest, VerifyRefinedAdaptiveFilterExperimentalString) {
346 Config config; 355 Config config;
347 config.Set<RefinedAdaptiveFilter>(new RefinedAdaptiveFilter(true)); 356 config.Set<RefinedAdaptiveFilter>(new RefinedAdaptiveFilter(true));
348 DebugDumpGenerator generator(config); 357 DebugDumpGenerator generator(config, AudioProcessing::Config());
349 generator.StartRecording(); 358 generator.StartRecording();
350 generator.Process(100); 359 generator.Process(100);
351 generator.StopRecording(); 360 generator.StopRecording();
352 361
353 DebugDumpReplayer debug_dump_replayer_; 362 DebugDumpReplayer debug_dump_replayer_;
354 363
355 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name())); 364 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name()));
356 365
357 while (const rtc::Optional<audioproc::Event> event = 366 while (const rtc::Optional<audioproc::Event> event =
358 debug_dump_replayer_.GetNextEvent()) { 367 debug_dump_replayer_.GetNextEvent()) {
359 debug_dump_replayer_.RunNextEvent(); 368 debug_dump_replayer_.RunNextEvent();
360 if (event->type() == audioproc::Event::CONFIG) { 369 if (event->type() == audioproc::Event::CONFIG) {
361 const audioproc::Config* msg = &event->config(); 370 const audioproc::Config* msg = &event->config();
362 ASSERT_TRUE(msg->has_experiments_description()); 371 ASSERT_TRUE(msg->has_experiments_description());
363 EXPECT_PRED_FORMAT2(testing::IsSubstring, "RefinedAdaptiveFilter", 372 EXPECT_PRED_FORMAT2(testing::IsSubstring, "RefinedAdaptiveFilter",
364 msg->experiments_description().c_str()); 373 msg->experiments_description().c_str());
365 } 374 }
366 } 375 }
367 } 376 }
368 377
369 TEST_F(DebugDumpTest, VerifyCombinedExperimentalStringInclusive) { 378 TEST_F(DebugDumpTest, VerifyCombinedExperimentalStringInclusive) {
370 Config config; 379 Config config;
371 config.Set<RefinedAdaptiveFilter>(new RefinedAdaptiveFilter(true)); 380 config.Set<RefinedAdaptiveFilter>(new RefinedAdaptiveFilter(true));
372 config.Set<EchoCanceller3>(new EchoCanceller3(true)); 381 config.Set<EchoCanceller3>(new EchoCanceller3(true));
373 DebugDumpGenerator generator(config); 382 DebugDumpGenerator generator(config, AudioProcessing::Config());
374 generator.StartRecording(); 383 generator.StartRecording();
375 generator.Process(100); 384 generator.Process(100);
376 generator.StopRecording(); 385 generator.StopRecording();
377 386
378 DebugDumpReplayer debug_dump_replayer_; 387 DebugDumpReplayer debug_dump_replayer_;
379 388
380 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name())); 389 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name()));
381 390
382 while (const rtc::Optional<audioproc::Event> event = 391 while (const rtc::Optional<audioproc::Event> event =
383 debug_dump_replayer_.GetNextEvent()) { 392 debug_dump_replayer_.GetNextEvent()) {
384 debug_dump_replayer_.RunNextEvent(); 393 debug_dump_replayer_.RunNextEvent();
385 if (event->type() == audioproc::Event::CONFIG) { 394 if (event->type() == audioproc::Event::CONFIG) {
386 const audioproc::Config* msg = &event->config(); 395 const audioproc::Config* msg = &event->config();
387 ASSERT_TRUE(msg->has_experiments_description()); 396 ASSERT_TRUE(msg->has_experiments_description());
388 EXPECT_PRED_FORMAT2(testing::IsSubstring, "RefinedAdaptiveFilter", 397 EXPECT_PRED_FORMAT2(testing::IsSubstring, "RefinedAdaptiveFilter",
389 msg->experiments_description().c_str()); 398 msg->experiments_description().c_str());
390 EXPECT_PRED_FORMAT2(testing::IsSubstring, "AEC3", 399 EXPECT_PRED_FORMAT2(testing::IsSubstring, "AEC3",
391 msg->experiments_description().c_str()); 400 msg->experiments_description().c_str());
392 } 401 }
393 } 402 }
394 } 403 }
395 404
396 TEST_F(DebugDumpTest, VerifyCombinedExperimentalStringExclusive) { 405 TEST_F(DebugDumpTest, VerifyCombinedExperimentalStringExclusive) {
397 Config config; 406 Config config;
398 config.Set<RefinedAdaptiveFilter>(new RefinedAdaptiveFilter(true)); 407 config.Set<RefinedAdaptiveFilter>(new RefinedAdaptiveFilter(true));
399 DebugDumpGenerator generator(config); 408 DebugDumpGenerator generator(config, AudioProcessing::Config());
400 generator.StartRecording(); 409 generator.StartRecording();
401 generator.Process(100); 410 generator.Process(100);
402 generator.StopRecording(); 411 generator.StopRecording();
403 412
404 DebugDumpReplayer debug_dump_replayer_; 413 DebugDumpReplayer debug_dump_replayer_;
405 414
406 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name())); 415 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name()));
407 416
408 while (const rtc::Optional<audioproc::Event> event = 417 while (const rtc::Optional<audioproc::Event> event =
409 debug_dump_replayer_.GetNextEvent()) { 418 debug_dump_replayer_.GetNextEvent()) {
410 debug_dump_replayer_.RunNextEvent(); 419 debug_dump_replayer_.RunNextEvent();
411 if (event->type() == audioproc::Event::CONFIG) { 420 if (event->type() == audioproc::Event::CONFIG) {
412 const audioproc::Config* msg = &event->config(); 421 const audioproc::Config* msg = &event->config();
413 ASSERT_TRUE(msg->has_experiments_description()); 422 ASSERT_TRUE(msg->has_experiments_description());
414 EXPECT_PRED_FORMAT2(testing::IsSubstring, "RefinedAdaptiveFilter", 423 EXPECT_PRED_FORMAT2(testing::IsSubstring, "RefinedAdaptiveFilter",
415 msg->experiments_description().c_str()); 424 msg->experiments_description().c_str());
416 EXPECT_PRED_FORMAT2(testing::IsNotSubstring, "AEC3", 425 EXPECT_PRED_FORMAT2(testing::IsNotSubstring, "AEC3",
417 msg->experiments_description().c_str()); 426 msg->experiments_description().c_str());
418 } 427 }
419 } 428 }
420 } 429 }
421 430
422 TEST_F(DebugDumpTest, VerifyAec3ExperimentalString) { 431 TEST_F(DebugDumpTest, VerifyAec3ExperimentalString) {
423 Config config; 432 Config config;
424 config.Set<EchoCanceller3>(new EchoCanceller3(true)); 433 config.Set<EchoCanceller3>(new EchoCanceller3(true));
425 DebugDumpGenerator generator(config); 434 DebugDumpGenerator generator(config, AudioProcessing::Config());
426 generator.StartRecording(); 435 generator.StartRecording();
427 generator.Process(100); 436 generator.Process(100);
428 generator.StopRecording(); 437 generator.StopRecording();
429 438
430 DebugDumpReplayer debug_dump_replayer_; 439 DebugDumpReplayer debug_dump_replayer_;
431 440
432 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name())); 441 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name()));
433 442
434 while (const rtc::Optional<audioproc::Event> event = 443 while (const rtc::Optional<audioproc::Event> event =
435 debug_dump_replayer_.GetNextEvent()) { 444 debug_dump_replayer_.GetNextEvent()) {
436 debug_dump_replayer_.RunNextEvent(); 445 debug_dump_replayer_.RunNextEvent();
437 if (event->type() == audioproc::Event::CONFIG) { 446 if (event->type() == audioproc::Event::CONFIG) {
438 const audioproc::Config* msg = &event->config(); 447 const audioproc::Config* msg = &event->config();
439 ASSERT_TRUE(msg->has_experiments_description()); 448 ASSERT_TRUE(msg->has_experiments_description());
440 EXPECT_PRED_FORMAT2(testing::IsSubstring, "AEC3", 449 EXPECT_PRED_FORMAT2(testing::IsSubstring, "AEC3",
441 msg->experiments_description().c_str()); 450 msg->experiments_description().c_str());
442 } 451 }
443 } 452 }
444 } 453 }
445 454
446 TEST_F(DebugDumpTest, VerifyLevelControllerExperimentalString) { 455 TEST_F(DebugDumpTest, VerifyLevelControllerExperimentalString) {
447 Config config; 456 Config config;
448 config.Set<LevelControl>(new LevelControl(true)); 457 AudioProcessing::Config apm_config;
449 DebugDumpGenerator generator(config); 458 apm_config.level_controller.enabled = true;
459 DebugDumpGenerator generator(config, apm_config);
450 generator.StartRecording(); 460 generator.StartRecording();
451 generator.Process(100); 461 generator.Process(100);
452 generator.StopRecording(); 462 generator.StopRecording();
453 463
454 DebugDumpReplayer debug_dump_replayer_; 464 DebugDumpReplayer debug_dump_replayer_;
455 465
456 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name())); 466 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name()));
457 467
458 while (const rtc::Optional<audioproc::Event> event = 468 while (const rtc::Optional<audioproc::Event> event =
459 debug_dump_replayer_.GetNextEvent()) { 469 debug_dump_replayer_.GetNextEvent()) {
460 debug_dump_replayer_.RunNextEvent(); 470 debug_dump_replayer_.RunNextEvent();
461 if (event->type() == audioproc::Event::CONFIG) { 471 if (event->type() == audioproc::Event::CONFIG) {
462 const audioproc::Config* msg = &event->config(); 472 const audioproc::Config* msg = &event->config();
463 ASSERT_TRUE(msg->has_experiments_description()); 473 ASSERT_TRUE(msg->has_experiments_description());
464 EXPECT_PRED_FORMAT2(testing::IsSubstring, "LevelController", 474 EXPECT_PRED_FORMAT2(testing::IsSubstring, "LevelController",
465 msg->experiments_description().c_str()); 475 msg->experiments_description().c_str());
466 } 476 }
467 } 477 }
468 } 478 }
469 479
470 TEST_F(DebugDumpTest, VerifyEmptyExperimentalString) { 480 TEST_F(DebugDumpTest, VerifyEmptyExperimentalString) {
471 Config config; 481 Config config;
472 DebugDumpGenerator generator(config); 482 DebugDumpGenerator generator(config, AudioProcessing::Config());
473 generator.StartRecording(); 483 generator.StartRecording();
474 generator.Process(100); 484 generator.Process(100);
475 generator.StopRecording(); 485 generator.StopRecording();
476 486
477 DebugDumpReplayer debug_dump_replayer_; 487 DebugDumpReplayer debug_dump_replayer_;
478 488
479 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name())); 489 ASSERT_TRUE(debug_dump_replayer_.SetDumpFile(generator.dump_file_name()));
480 490
481 while (const rtc::Optional<audioproc::Event> event = 491 while (const rtc::Optional<audioproc::Event> event =
482 debug_dump_replayer_.GetNextEvent()) { 492 debug_dump_replayer_.GetNextEvent()) {
483 debug_dump_replayer_.RunNextEvent(); 493 debug_dump_replayer_.RunNextEvent();
484 if (event->type() == audioproc::Event::CONFIG) { 494 if (event->type() == audioproc::Event::CONFIG) {
485 const audioproc::Config* msg = &event->config(); 495 const audioproc::Config* msg = &event->config();
486 ASSERT_TRUE(msg->has_experiments_description()); 496 ASSERT_TRUE(msg->has_experiments_description());
487 EXPECT_EQ(0u, msg->experiments_description().size()); 497 EXPECT_EQ(0u, msg->experiments_description().size());
488 } 498 }
489 } 499 }
490 } 500 }
491 501
492 TEST_F(DebugDumpTest, ToggleAecLevel) { 502 TEST_F(DebugDumpTest, ToggleAecLevel) {
493 Config config; 503 Config config;
494 DebugDumpGenerator generator(config); 504 DebugDumpGenerator generator(config, AudioProcessing::Config());
495 EchoCancellation* aec = generator.apm()->echo_cancellation(); 505 EchoCancellation* aec = generator.apm()->echo_cancellation();
496 EXPECT_EQ(AudioProcessing::kNoError, aec->Enable(true)); 506 EXPECT_EQ(AudioProcessing::kNoError, aec->Enable(true));
497 EXPECT_EQ(AudioProcessing::kNoError, 507 EXPECT_EQ(AudioProcessing::kNoError,
498 aec->set_suppression_level(EchoCancellation::kLowSuppression)); 508 aec->set_suppression_level(EchoCancellation::kLowSuppression));
499 generator.StartRecording(); 509 generator.StartRecording();
500 generator.Process(100); 510 generator.Process(100);
501 511
502 EXPECT_EQ(AudioProcessing::kNoError, 512 EXPECT_EQ(AudioProcessing::kNoError,
503 aec->set_suppression_level(EchoCancellation::kHighSuppression)); 513 aec->set_suppression_level(EchoCancellation::kHighSuppression));
504 generator.Process(100); 514 generator.Process(100);
505 generator.StopRecording(); 515 generator.StopRecording();
506 VerifyDebugDump(generator.dump_file_name()); 516 VerifyDebugDump(generator.dump_file_name());
507 } 517 }
508 518
509 #if defined(WEBRTC_ANDROID) 519 #if defined(WEBRTC_ANDROID)
510 // AGC may not be supported on Android. 520 // AGC may not be supported on Android.
511 #define MAYBE_ToggleAgc DISABLED_ToggleAgc 521 #define MAYBE_ToggleAgc DISABLED_ToggleAgc
512 #else 522 #else
513 #define MAYBE_ToggleAgc ToggleAgc 523 #define MAYBE_ToggleAgc ToggleAgc
514 #endif 524 #endif
515 TEST_F(DebugDumpTest, MAYBE_ToggleAgc) { 525 TEST_F(DebugDumpTest, MAYBE_ToggleAgc) {
516 Config config; 526 Config config;
517 DebugDumpGenerator generator(config); 527 DebugDumpGenerator generator(config, AudioProcessing::Config());
518 generator.StartRecording(); 528 generator.StartRecording();
519 generator.Process(100); 529 generator.Process(100);
520 530
521 GainControl* agc = generator.apm()->gain_control(); 531 GainControl* agc = generator.apm()->gain_control();
522 EXPECT_EQ(AudioProcessing::kNoError, agc->Enable(!agc->is_enabled())); 532 EXPECT_EQ(AudioProcessing::kNoError, agc->Enable(!agc->is_enabled()));
523 533
524 generator.Process(100); 534 generator.Process(100);
525 generator.StopRecording(); 535 generator.StopRecording();
526 VerifyDebugDump(generator.dump_file_name()); 536 VerifyDebugDump(generator.dump_file_name());
527 } 537 }
528 538
529 TEST_F(DebugDumpTest, ToggleNs) { 539 TEST_F(DebugDumpTest, ToggleNs) {
530 Config config; 540 Config config;
531 DebugDumpGenerator generator(config); 541 DebugDumpGenerator generator(config, AudioProcessing::Config());
532 generator.StartRecording(); 542 generator.StartRecording();
533 generator.Process(100); 543 generator.Process(100);
534 544
535 NoiseSuppression* ns = generator.apm()->noise_suppression(); 545 NoiseSuppression* ns = generator.apm()->noise_suppression();
536 EXPECT_EQ(AudioProcessing::kNoError, ns->Enable(!ns->is_enabled())); 546 EXPECT_EQ(AudioProcessing::kNoError, ns->Enable(!ns->is_enabled()));
537 547
538 generator.Process(100); 548 generator.Process(100);
539 generator.StopRecording(); 549 generator.StopRecording();
540 VerifyDebugDump(generator.dump_file_name()); 550 VerifyDebugDump(generator.dump_file_name());
541 } 551 }
542 552
543 TEST_F(DebugDumpTest, TransientSuppressionOn) { 553 TEST_F(DebugDumpTest, TransientSuppressionOn) {
544 Config config; 554 Config config;
545 config.Set<ExperimentalNs>(new ExperimentalNs(true)); 555 config.Set<ExperimentalNs>(new ExperimentalNs(true));
546 DebugDumpGenerator generator(config); 556 DebugDumpGenerator generator(config, AudioProcessing::Config());
547 generator.StartRecording(); 557 generator.StartRecording();
548 generator.Process(100); 558 generator.Process(100);
549 generator.StopRecording(); 559 generator.StopRecording();
550 VerifyDebugDump(generator.dump_file_name()); 560 VerifyDebugDump(generator.dump_file_name());
551 } 561 }
552 562
553 } // namespace test 563 } // namespace test
554 } // namespace webrtc 564 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698