Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <ctime> | 5 #include <ctime> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/files/file_enumerator.h" | 8 #include "base/files/file_enumerator.h" |
| 9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 165 // getUserMedia-derived media streams in this test like the other tests. | 165 // getUserMedia-derived media streams in this test like the other tests. |
| 166 EXPECT_EQ("ok-peerconnection-created", | 166 EXPECT_EQ("ok-peerconnection-created", |
| 167 ExecuteJavascript("preparePeerConnection()", tab)); | 167 ExecuteJavascript("preparePeerConnection()", tab)); |
| 168 return tab; | 168 return tab; |
| 169 } | 169 } |
| 170 | 170 |
| 171 protected: | 171 protected: |
| 172 void TestAutoGainControl(const base::FilePath::StringType& reference_filename, | 172 void TestAutoGainControl(const base::FilePath::StringType& reference_filename, |
| 173 const std::string& constraints, | 173 const std::string& constraints, |
| 174 const std::string& perf_modifier); | 174 const std::string& perf_modifier); |
| 175 void SetupAndRecordAudioCall(const base::FilePath& reference_file, | |
| 176 const base::FilePath& recording, | |
| 177 const std::string& constraints, | |
| 178 const base::TimeDelta recording_time); | |
| 175 }; | 179 }; |
| 176 | 180 |
| 177 namespace { | 181 namespace { |
| 178 | 182 |
| 179 class AudioRecorder { | 183 class AudioRecorder { |
| 180 public: | 184 public: |
| 181 AudioRecorder() {} | 185 AudioRecorder() {} |
| 182 ~AudioRecorder() {} | 186 ~AudioRecorder() {} |
| 183 | 187 |
| 184 // Starts the recording program for the specified duration. Returns true | 188 // Starts the recording program for the specified duration. Returns true |
| 185 // on success. We record in 44.1 kHz 16-bit format unless |record_cd| is | 189 // on success. We record in 44.1 kHz 16-bit format unless |record_cd| is |
| 186 // false, in which case we record in 48 kHz 16-bit format. We record in stereo | 190 // false, in which case we record in 48 kHz 16-bit format. We record in stereo |
| 187 // unless |mono| is true. | 191 // unless |mono| is true. |
| 188 // TODO(phoglund): make win and mac also support the record_cd parameter. Or, | 192 // TODO(phoglund): make win and mac also support the record_cd parameter. Or, |
| 189 // even better, make everybody use the CD format rather than DAT. | 193 // even better, make everybody use the CD format rather than DAT. |
| 190 bool StartRecording(int duration_sec, const base::FilePath& output_file, | 194 bool StartRecording(base::TimeDelta recording_time, |
| 191 bool mono, bool record_cd) { | 195 const base::FilePath& output_file, bool mono, |
| 196 bool record_cd) { | |
| 192 EXPECT_FALSE(recording_application_.IsValid()) | 197 EXPECT_FALSE(recording_application_.IsValid()) |
| 193 << "Tried to record, but is already recording."; | 198 << "Tried to record, but is already recording."; |
| 194 | 199 |
| 200 int duration_sec = static_cast<int>(recording_time.InSeconds()); | |
| 195 base::CommandLine command_line(base::CommandLine::NO_PROGRAM); | 201 base::CommandLine command_line(base::CommandLine::NO_PROGRAM); |
| 202 | |
| 196 #if defined(OS_WIN) | 203 #if defined(OS_WIN) |
| 197 // This disable is required to run SoundRecorder.exe on 64-bit Windows | 204 // This disable is required to run SoundRecorder.exe on 64-bit Windows |
| 198 // from a 32-bit binary. We need to load the wow64 disable function from | 205 // from a 32-bit binary. We need to load the wow64 disable function from |
| 199 // the DLL since it doesn't exist on Windows XP. | 206 // the DLL since it doesn't exist on Windows XP. |
| 200 // TODO(phoglund): find some cleaner solution than using SoundRecorder.exe. | |
| 201 base::ScopedNativeLibrary kernel32_lib(base::FilePath(L"kernel32")); | 207 base::ScopedNativeLibrary kernel32_lib(base::FilePath(L"kernel32")); |
| 202 if (kernel32_lib.is_valid()) { | 208 if (kernel32_lib.is_valid()) { |
| 203 typedef BOOL (WINAPI* Wow64DisableWow64FSRedirection)(PVOID*); | 209 typedef BOOL (WINAPI* Wow64DisableWow64FSRedirection)(PVOID*); |
| 204 Wow64DisableWow64FSRedirection wow_64_disable_wow_64_fs_redirection; | 210 Wow64DisableWow64FSRedirection wow_64_disable_wow_64_fs_redirection; |
| 205 wow_64_disable_wow_64_fs_redirection = | 211 wow_64_disable_wow_64_fs_redirection = |
| 206 reinterpret_cast<Wow64DisableWow64FSRedirection>( | 212 reinterpret_cast<Wow64DisableWow64FSRedirection>( |
| 207 kernel32_lib.GetFunctionPointer( | 213 kernel32_lib.GetFunctionPointer( |
| 208 "Wow64DisableWow64FsRedirection")); | 214 "Wow64DisableWow64FsRedirection")); |
| 209 if (wow_64_disable_wow_64_fs_redirection != NULL) { | 215 if (wow_64_disable_wow_64_fs_redirection != NULL) { |
| 210 PVOID* ignored = NULL; | 216 PVOID* ignored = NULL; |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 554 float difference_in_decibel = AnalyzeOneSegment(ref_segments[i], | 560 float difference_in_decibel = AnalyzeOneSegment(ref_segments[i], |
| 555 actual_segments[i], | 561 actual_segments[i], |
| 556 i); | 562 i); |
| 557 std::string trace_name = base::StringPrintf( | 563 std::string trace_name = base::StringPrintf( |
| 558 "%s_segment_%zu", reference_file.BaseName().value().c_str(), i); | 564 "%s_segment_%zu", reference_file.BaseName().value().c_str(), i); |
| 559 perf_test::PrintResult("agc_energy_diff", perf_modifier, trace_name, | 565 perf_test::PrintResult("agc_energy_diff", perf_modifier, trace_name, |
| 560 difference_in_decibel, "dB", false); | 566 difference_in_decibel, "dB", false); |
| 561 } | 567 } |
| 562 } | 568 } |
| 563 | 569 |
| 570 void ComputeAndPrintPesqResults(const base::FilePath& reference_file, | |
| 571 const base::FilePath& recording, | |
| 572 const std::string& perf_modifier) { | |
| 573 base::FilePath trimmed_reference = CreateTemporaryWaveFile(); | |
| 574 base::FilePath trimmed_recording = CreateTemporaryWaveFile(); | |
| 575 | |
| 576 ASSERT_TRUE(RemoveSilence(recording, trimmed_reference)); | |
| 577 ASSERT_TRUE(RemoveSilence(recording, trimmed_recording)); | |
| 578 | |
| 579 std::string raw_mos; | |
| 580 std::string mos_lqo; | |
| 581 ASSERT_TRUE(RunPesq(trimmed_reference, trimmed_recording, 16000, | |
| 582 &raw_mos, &mos_lqo)); | |
| 583 | |
| 584 perf_test::PrintResult( | |
| 585 "audio_pesq", perf_modifier, "raw_mos", raw_mos, "score", true); | |
| 586 perf_test::PrintResult( | |
| 587 "audio_pesq", perf_modifier, "mos_lqo", mos_lqo, "score", true); | |
| 588 | |
| 589 EXPECT_TRUE(base::DeleteFile(trimmed_reference, false)); | |
| 590 EXPECT_TRUE(base::DeleteFile(trimmed_recording, false)); | |
| 591 } | |
| 592 | |
| 564 } // namespace | 593 } // namespace |
| 565 | 594 |
| 595 // Sets up a one-way WebRTC call and records its output to |recording|, using | |
| 596 // getUserMedia. | |
| 597 // | |
| 598 // |reference_file| should have at least two seconds of silence in the | |
| 599 // beginning: otherwise all the reference audio will not be picked up by the | |
| 600 // recording. Note that the reference file will start playing as soon as the | |
| 601 // audio device is up following the getUserMedia call in the left tab. The time | |
| 602 // it takes to negotiate a call isn't deterministic, but two seconds should be | |
| 603 // plenty of time. Similarly, the recording time should be enough to catch the | |
| 604 // whole reference file. If you then silence-trim the reference file and actual | |
| 605 // file, you should end up with two time-synchronized files. | |
| 606 void MAYBE_WebRtcAudioQualityBrowserTest::SetupAndRecordAudioCall( | |
| 607 const base::FilePath& reference_file, | |
| 608 const base::FilePath& recording, | |
| 609 const std::string& constraints, | |
| 610 const base::TimeDelta recording_time) { | |
| 611 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | |
| 612 ASSERT_TRUE(test::HasReferenceFilesInCheckout()); | |
| 613 ASSERT_TRUE(ForceMicrophoneVolumeTo100Percent()); | |
| 614 | |
| 615 ConfigureFakeDeviceToPlayFile(reference_file); | |
| 616 | |
| 617 // Create a one-way call. | |
| 618 GURL test_page = embedded_test_server()->GetURL(kWebRtcAudioTestHtmlPage); | |
| 619 content::WebContents* left_tab = | |
| 620 OpenPageAndGetUserMediaInNewTabWithConstraints(test_page, constraints); | |
| 621 SetupPeerconnectionWithLocalStream(left_tab); | |
| 622 | |
| 623 content::WebContents* right_tab = | |
| 624 OpenPageWithoutGetUserMedia(kWebRtcAudioTestHtmlPage); | |
| 625 | |
| 626 AudioRecorder recorder; | |
| 627 ASSERT_TRUE(recorder.StartRecording(recording_time, recording, false, true)); | |
| 628 | |
| 629 NegotiateCall(left_tab, right_tab); | |
| 630 | |
| 631 ASSERT_TRUE(recorder.WaitForRecordingToEnd()); | |
| 632 DVLOG(0) << "Done recording to " << recording.value() << std::endl; | |
| 633 | |
| 634 HangUp(left_tab); | |
| 635 } | |
| 636 | |
| 566 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcAudioQualityBrowserTest, | 637 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcAudioQualityBrowserTest, |
| 567 MANUAL_TestAudioQuality) { | 638 MANUAL_TestCallQualityWithAudioFromFakeDevice) { |
| 568 if (OnWinXp()) { | 639 if (OnWinXp() || OnWin8()) { |
| 569 LOG(ERROR) << "This test is not implemented for Windows XP."; | 640 // http://crbug.com/379798. |
| 641 LOG(ERROR) << "This test is not implemented for Windows XP/Win8."; | |
| 570 return; | 642 return; |
| 571 } | 643 } |
| 572 if (OnWin8()) { | 644 |
| 645 base::FilePath reference_file = | |
| 646 test::GetReferenceFilesDir().Append(kReferenceFile); | |
| 647 base::FilePath recording = CreateTemporaryWaveFile(); | |
| 648 | |
| 649 ASSERT_NO_FATAL_FAILURE(SetupAndRecordAudioCall( | |
| 650 reference_file, recording, kAudioOnlyCallConstraints, | |
| 651 base::TimeDelta::FromSeconds(25))); | |
| 652 ComputeAndPrintPesqResults(reference_file, recording, "_getusermedia"); | |
| 653 | |
| 654 EXPECT_TRUE(base::DeleteFile(recording, false)); | |
| 655 } | |
| 656 | |
| 657 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcAudioQualityBrowserTest, | |
| 658 MANUAL_TestCallQualityWithAudioFromWebAudio) { | |
| 659 if (OnWinXp() || OnWin8()) { | |
| 573 // http://crbug.com/379798. | 660 // http://crbug.com/379798. |
| 574 LOG(ERROR) << "Temporarily disabled for Win 8."; | 661 LOG(ERROR) << "This test is not implemented for Windows XP/Win8."; |
| 575 return; | 662 return; |
| 576 } | 663 } |
| 577 ASSERT_TRUE(test::HasReferenceFilesInCheckout()); | 664 ASSERT_TRUE(test::HasReferenceFilesInCheckout()); |
| 578 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 665 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 579 | 666 |
| 580 ASSERT_TRUE(ForceMicrophoneVolumeTo100Percent()); | 667 ASSERT_TRUE(ForceMicrophoneVolumeTo100Percent()); |
| 581 | 668 |
| 582 content::WebContents* left_tab = | 669 content::WebContents* left_tab = |
| 583 OpenPageWithoutGetUserMedia(kWebRtcAudioTestHtmlPage); | 670 OpenPageWithoutGetUserMedia(kWebRtcAudioTestHtmlPage); |
| 584 content::WebContents* right_tab = | 671 content::WebContents* right_tab = |
| 585 OpenPageWithoutGetUserMedia(kWebRtcAudioTestHtmlPage); | 672 OpenPageWithoutGetUserMedia(kWebRtcAudioTestHtmlPage); |
| 586 | 673 |
| 587 AddAudioFileToWebAudio(kReferenceFileRelativeUrl, left_tab); | 674 AddAudioFileToWebAudio(kReferenceFileRelativeUrl, left_tab); |
| 588 | 675 |
| 589 NegotiateCall(left_tab, right_tab); | 676 NegotiateCall(left_tab, right_tab); |
| 590 | 677 |
| 591 // Note: the media flow isn't necessarily established on the connection just | |
| 592 // because the ready state is ok on both sides. We sleep a bit between call | |
| 593 // establishment and playing to avoid cutting off the beginning of the stream. | |
| 594 test::SleepInJavascript(left_tab, 2000); | |
| 595 | |
| 596 base::FilePath recording = CreateTemporaryWaveFile(); | 678 base::FilePath recording = CreateTemporaryWaveFile(); |
| 597 | 679 |
| 598 // Note: the sound clip is about 10 seconds: record for 15 seconds to get some | 680 // Note: the sound clip is about 13 seconds: record for 20 seconds to get some |
|
phoglund_chromium
2015/01/07 15:16:26
This is because I added 3 seconds of silence to th
| |
| 599 // safety margins on each side. | 681 // safety margins on each side. |
| 600 AudioRecorder recorder; | 682 AudioRecorder recorder; |
| 601 static int kRecordingTimeSeconds = 15; | 683 ASSERT_TRUE(recorder.StartRecording(base::TimeDelta::FromSeconds(20), |
| 602 ASSERT_TRUE(recorder.StartRecording(kRecordingTimeSeconds, recording, | 684 recording, true, false)); |
| 603 true, false)); | |
| 604 | 685 |
| 605 PlayAudioFileThroughWebAudio(left_tab); | 686 PlayAudioFileThroughWebAudio(left_tab); |
| 606 | 687 |
| 607 ASSERT_TRUE(recorder.WaitForRecordingToEnd()); | 688 ASSERT_TRUE(recorder.WaitForRecordingToEnd()); |
| 608 DVLOG(0) << "Done recording to " << recording.value() << std::endl; | 689 DVLOG(0) << "Done recording to " << recording.value() << std::endl; |
| 609 | 690 |
| 610 HangUp(left_tab); | 691 HangUp(left_tab); |
| 611 | 692 |
| 612 base::FilePath trimmed_recording = CreateTemporaryWaveFile(); | 693 // Compare with the reference file on disk (this is the same file we played |
| 613 | 694 // through WebAudio earlier). |
| 614 ASSERT_TRUE(RemoveSilence(recording, trimmed_recording)); | 695 base::FilePath reference_file = |
| 615 DVLOG(0) << "Trimmed silence: " << trimmed_recording.value() << std::endl; | |
| 616 | |
| 617 std::string raw_mos; | |
| 618 std::string mos_lqo; | |
| 619 base::FilePath reference_file_in_test_dir = | |
| 620 test::GetReferenceFilesDir().Append(kReferenceFile); | 696 test::GetReferenceFilesDir().Append(kReferenceFile); |
| 621 ASSERT_TRUE(RunPesq(reference_file_in_test_dir, trimmed_recording, 16000, | 697 ComputeAndPrintPesqResults(reference_file, recording, "_webaudio"); |
| 622 &raw_mos, &mos_lqo)); | |
| 623 | |
| 624 perf_test::PrintResult("audio_pesq", "", "raw_mos", raw_mos, "score", true); | |
| 625 perf_test::PrintResult("audio_pesq", "", "mos_lqo", mos_lqo, "score", true); | |
| 626 | |
| 627 EXPECT_TRUE(base::DeleteFile(recording, false)); | |
| 628 EXPECT_TRUE(base::DeleteFile(trimmed_recording, false)); | |
| 629 } | 698 } |
| 630 | 699 |
| 631 /** | 700 /** |
| 632 * The auto gain control test plays a file into the fake microphone. Then it | 701 * The auto gain control test plays a file into the fake microphone. Then it |
| 633 * sets up a one-way WebRTC call with audio only and records Chrome's output on | 702 * sets up a one-way WebRTC call with audio only and records Chrome's output on |
| 634 * the receiving side using the audio loopback provided by the quality test | 703 * the receiving side using the audio loopback provided by the quality test |
| 635 * (see the class comments for more details). | 704 * (see the class comments for more details). |
| 636 * | 705 * |
| 637 * Then both the recording and reference file are split on silence. This creates | 706 * Then both the recording and reference file are split on silence. This creates |
| 638 * a number of segments with speech in them. The reason for this is to provide | 707 * a number of segments with speech in them. The reason for this is to provide |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 655 * The test only exercises digital AGC for now. | 724 * The test only exercises digital AGC for now. |
| 656 * | 725 * |
| 657 * We record in CD format here (44.1 kHz) because that's what the fake input | 726 * We record in CD format here (44.1 kHz) because that's what the fake input |
| 658 * device currently supports, and we want to be able to compare directly. See | 727 * device currently supports, and we want to be able to compare directly. See |
| 659 * http://crbug.com/421054. | 728 * http://crbug.com/421054. |
| 660 */ | 729 */ |
| 661 void MAYBE_WebRtcAudioQualityBrowserTest::TestAutoGainControl( | 730 void MAYBE_WebRtcAudioQualityBrowserTest::TestAutoGainControl( |
| 662 const base::FilePath::StringType& reference_filename, | 731 const base::FilePath::StringType& reference_filename, |
| 663 const std::string& constraints, | 732 const std::string& constraints, |
| 664 const std::string& perf_modifier) { | 733 const std::string& perf_modifier) { |
| 665 if (OnWinXp()) { | 734 if (OnWinXp() || OnWin8()) { |
| 666 LOG(ERROR) << "This test is not implemented for Windows XP."; | 735 // http://crbug.com/379798. |
| 736 LOG(ERROR) << "This test is not implemented for Windows XP/Win8."; | |
| 667 return; | 737 return; |
| 668 } | 738 } |
| 669 if (OnWin8()) { | |
| 670 // http://crbug.com/379798. | |
| 671 LOG(ERROR) << "Temporarily disabled for Win 8."; | |
| 672 return; | |
| 673 } | |
| 674 ASSERT_TRUE(test::HasReferenceFilesInCheckout()); | |
| 675 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | |
| 676 | |
| 677 ASSERT_TRUE(ForceMicrophoneVolumeTo100Percent()); | |
| 678 | |
| 679 base::FilePath reference_file = | 739 base::FilePath reference_file = |
| 680 test::GetReferenceFilesDir().Append(reference_filename); | 740 test::GetReferenceFilesDir().Append(reference_filename); |
| 681 ConfigureFakeDeviceToPlayFile(reference_file); | |
| 682 | |
| 683 // Create a one-way call. | |
| 684 GURL test_page = embedded_test_server()->GetURL(kWebRtcAudioTestHtmlPage); | |
| 685 content::WebContents* left_tab = | |
| 686 OpenPageAndGetUserMediaInNewTabWithConstraints(test_page, constraints); | |
| 687 SetupPeerconnectionWithLocalStream(left_tab); | |
| 688 | |
| 689 content::WebContents* right_tab = | |
| 690 OpenPageWithoutGetUserMedia(kWebRtcAudioTestHtmlPage); | |
| 691 | |
| 692 base::FilePath recording = CreateTemporaryWaveFile(); | 741 base::FilePath recording = CreateTemporaryWaveFile(); |
| 693 | 742 |
| 694 AudioRecorder recorder; | 743 ASSERT_NO_FATAL_FAILURE(SetupAndRecordAudioCall( |
| 695 static int kRecordingTimeSeconds = 25; | 744 reference_file, recording, constraints, |
| 696 ASSERT_TRUE(recorder.StartRecording(kRecordingTimeSeconds, recording, false, | 745 base::TimeDelta::FromSeconds(25))); |
| 697 true)); | |
| 698 | |
| 699 NegotiateCall(left_tab, right_tab); | |
| 700 | |
| 701 ASSERT_TRUE(recorder.WaitForRecordingToEnd()); | |
| 702 DVLOG(0) << "Done recording to " << recording.value() << std::endl; | |
| 703 | |
| 704 HangUp(left_tab); | |
| 705 | 746 |
| 706 // Call Take() on the scoped temp dirs if you want to look at the files after | 747 // Call Take() on the scoped temp dirs if you want to look at the files after |
| 707 // the test exits (the default is to delete the files). | 748 // the test exits (the default is to delete the files). |
| 708 base::ScopedTempDir split_ref_files; | 749 base::ScopedTempDir split_ref_files; |
| 709 ASSERT_TRUE(split_ref_files.CreateUniqueTempDir()); | 750 ASSERT_TRUE(split_ref_files.CreateUniqueTempDir()); |
| 710 ASSERT_NO_FATAL_FAILURE( | 751 ASSERT_NO_FATAL_FAILURE( |
| 711 SplitFileOnSilenceIntoDir(reference_file, split_ref_files.path())); | 752 SplitFileOnSilenceIntoDir(reference_file, split_ref_files.path())); |
| 712 std::vector<base::FilePath> ref_segments = | 753 std::vector<base::FilePath> ref_segments = |
| 713 ListWavFilesInDir(split_ref_files.path()); | 754 ListWavFilesInDir(split_ref_files.path()); |
| 714 | 755 |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 736 | 777 |
| 737 // The AGC should apply non-zero gain here. | 778 // The AGC should apply non-zero gain here. |
| 738 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcAudioQualityBrowserTest, | 779 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcAudioQualityBrowserTest, |
| 739 MAYBE_MANUAL_TestAutoGainControlOnLowAudio) { | 780 MAYBE_MANUAL_TestAutoGainControlOnLowAudio) { |
| 740 ASSERT_NO_FATAL_FAILURE(TestAutoGainControl( | 781 ASSERT_NO_FATAL_FAILURE(TestAutoGainControl( |
| 741 kAgcTestReferenceFile, kAudioOnlyCallConstraints, "_with_agc")); | 782 kAgcTestReferenceFile, kAudioOnlyCallConstraints, "_with_agc")); |
| 742 } | 783 } |
| 743 | 784 |
| 744 // Only implemented for Linux for now. | 785 // Only implemented for Linux for now. |
| 745 #if defined(OS_LINUX) | 786 #if defined(OS_LINUX) |
| 746 #define MAYBE_MANUAL_TestComputeGainWithAudioProcessingOff \ | 787 #define MAYBE_MANUAL_TestAutoGainIsOffWithAudioProcessingOff \ |
| 747 MANUAL_TestComputeGainWithAudioProcessingOff | 788 MANUAL_TestAutoGainIsOffWithAudioProcessingOff |
| 748 #else | 789 #else |
| 749 #define MAYBE_MANUAL_TestComputeGainWithAudioProcessingOff \ | 790 #define MAYBE_MANUAL_TestAutoGainIsOffWithAudioProcessingOff \ |
| 750 DISABLED_MANUAL_TestComputeGainWithAudioProcessingOff | 791 DISABLED_MANUAL_TestAutoGainIsOffWithAudioProcessingOff |
| 751 #endif | 792 #endif |
| 752 | 793 |
| 753 // Since the AGC is off here there should be no gain at all. | 794 // Since the AGC is off here there should be no gain at all. |
| 754 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcAudioQualityBrowserTest, | 795 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcAudioQualityBrowserTest, |
| 755 MAYBE_MANUAL_TestComputeGainWithAudioProcessingOff) { | 796 MAYBE_MANUAL_TestAutoGainIsOffWithAudioProcessingOff) { |
| 756 const char* kAudioCallWithoutAudioProcessing = | 797 const char* kAudioCallWithoutAudioProcessing = |
| 757 "{audio: { mandatory: { echoCancellation: false } } }"; | 798 "{audio: { mandatory: { echoCancellation: false } } }"; |
| 758 ASSERT_NO_FATAL_FAILURE(TestAutoGainControl( | 799 ASSERT_NO_FATAL_FAILURE(TestAutoGainControl( |
| 759 kAgcTestReferenceFile, kAudioCallWithoutAudioProcessing, "_no_agc")); | 800 kAgcTestReferenceFile, kAudioCallWithoutAudioProcessing, "_no_agc")); |
| 760 } | 801 } |
| 761 | |
| OLD | NEW |