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

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

Issue 1348903004: Adding APM configuration in AEC dump. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: fixing an issue and let unittest pass Created 5 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 1726 matching lines...) Expand 10 before | Expand all | Expand 10 after
1737 msg.num_output_channels(), 1737 msg.num_output_channels(),
1738 msg.num_reverse_channels(), 1738 msg.num_reverse_channels(),
1739 false); 1739 false);
1740 if (first_init) { 1740 if (first_init) {
1741 // StartDebugRecording() writes an additional init message. Don't start 1741 // StartDebugRecording() writes an additional init message. Don't start
1742 // recording until after the first init to avoid the extra message. 1742 // recording until after the first init to avoid the extra message.
1743 EXPECT_NOERR(apm_->StartDebugRecording(out_filename.c_str())); 1743 EXPECT_NOERR(apm_->StartDebugRecording(out_filename.c_str()));
1744 first_init = false; 1744 first_init = false;
1745 } 1745 }
1746 1746
1747 } else if (event_msg.type() == audioproc::Event::CONFIG) {
Andrew MacDonald 2015/09/26 02:36:20 Correct me if I'm wrong, but because the ref03.aec
minyue-webrtc 2015/09/26 16:26:44 ref03.aecdump doesn't contain Config message. But
Andrew MacDonald 2015/09/28 06:22:33 OK, thanks. Still not totally convinced this is a
minyue-webrtc 2015/09/29 04:51:49 True, it does not test all combination of configs,
1748 const audioproc::Config msg = event_msg.config();
1749 Config config;
1750 // AEC (5)
1751 if (msg.has_aec_enabled()) {
1752 apm_->echo_cancellation()->Enable(msg.aec_enabled());
1753 }
1754 if (msg.has_aec_delay_agnostic()) {
1755 config.Set<DelayAgnostic>(new DelayAgnostic(msg.aec_delay_agnostic()));
1756 }
1757 if (msg.has_aec_drift_compensation()) {
1758 apm_->echo_cancellation()->enable_drift_compensation(
1759 msg.aec_drift_compensation());
1760 }
1761 if (msg.has_aec_extended_filter()) {
1762 config.Set<ExtendedFilter>(new ExtendedFilter(
1763 msg.aec_extended_filter()));
1764 }
1765 if (msg.has_aec_suppression_level()) {
1766 apm_->echo_cancellation()->set_suppression_level(
1767 static_cast<webrtc::EchoCancellation::SuppressionLevel>(
1768 msg.aec_suppression_level()));
1769 }
1770 // AEC-M (3)
1771 if (msg.has_aecm_enabled()) {
1772 apm_->echo_control_mobile()->Enable(msg.aecm_enabled());
1773 }
1774 if (msg.has_aecm_comfort_noise()) {
1775 apm_->echo_control_mobile()->enable_comfort_noise(
1776 msg.aecm_comfort_noise());
1777 }
1778 if (msg.has_aecm_routing_mode()) {
1779 apm_->echo_control_mobile()->set_routing_mode(
1780 static_cast<webrtc::EchoControlMobile::RoutingMode>(
1781 msg.aecm_routing_mode()));
1782 }
1783 // AGC (4)
1784 if (msg.has_agc_enabled()) {
1785 apm_->gain_control()->Enable(msg.agc_enabled());
1786 }
1787 if (msg.has_agc_experiment()) {
1788 // agc_experiment can only be set in the ctor of APM. So there should be
1789 // nothing to do, unless the |apm_| is wrongly initialized.
1790 }
1791 if (msg.has_agc_mode()) {
1792 apm_->gain_control()->set_mode(
1793 static_cast<webrtc::GainControl::Mode>(msg.agc_mode()));
1794 }
1795 if (msg.has_agc_limiter()) {
1796 apm_->gain_control()->enable_limiter(msg.agc_limiter());
1797 }
1798 // HPF (1)
1799 if (msg.has_hpf_enabled()) {
1800 apm_->high_pass_filter()->Enable(msg.hpf_enabled());
1801 }
1802 // NS (3)
1803 if (msg.has_ns_enabled()) {
1804 apm_->noise_suppression()->Enable(msg.ns_enabled());
1805 }
1806 if (msg.has_ns_experiment()) {
1807 config.Set<ExperimentalNs>(new ExperimentalNs(msg.ns_experiment()));
1808 }
1809 if (msg.has_ns_level()) {
1810 apm_->noise_suppression()->set_level(
1811 static_cast<webrtc::NoiseSuppression::Level>(msg.ns_level()));
1812 }
1813 apm_->SetExtraOptions(config);
Andrew MacDonald 2015/09/26 02:36:20 This API is deprecated. Don't add more calls to it
minyue-webrtc 2015/09/26 16:26:44 Ok, thanks for the info. But how should one set ns
Andrew MacDonald 2015/09/28 06:22:33 Through Create().
minyue-webrtc 2015/09/29 04:51:49 Yes I see, do you suggest recreate APM here?
Andrew MacDonald 2015/09/29 05:05:17 No, I suggest not testing this feature here, as in
minyue-webrtc 2015/09/29 21:05:05 Ok. I'd remove these changes. I will try to add s
Andrew MacDonald 2015/09/29 23:38:49 Why in a separate CL? If you're going to add a uni
1747 } else if (event_msg.type() == audioproc::Event::REVERSE_STREAM) { 1814 } else if (event_msg.type() == audioproc::Event::REVERSE_STREAM) {
1748 const audioproc::ReverseStream msg = event_msg.reverse_stream(); 1815 const audioproc::ReverseStream msg = event_msg.reverse_stream();
1749 1816
1750 if (msg.channel_size() > 0) { 1817 if (msg.channel_size() > 0) {
1751 ASSERT_EQ(revframe_->num_channels_, msg.channel_size()); 1818 ASSERT_EQ(revframe_->num_channels_, msg.channel_size());
1752 for (int i = 0; i < msg.channel_size(); ++i) { 1819 for (int i = 0; i < msg.channel_size(); ++i) {
1753 memcpy(revfloat_cb_->channels()[i], 1820 memcpy(revfloat_cb_->channels()[i],
1754 msg.channel(i).data(), 1821 msg.channel(i).data(),
1755 msg.channel(i).size()); 1822 msg.channel(i).size());
1756 } 1823 }
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1832 EXPECT_EQ(ref_size, out_size); 1899 EXPECT_EQ(ref_size, out_size);
1833 EXPECT_EQ(0, memcmp(ref_bytes.get(), out_bytes.get(), ref_size)); 1900 EXPECT_EQ(0, memcmp(ref_bytes.get(), out_bytes.get(), ref_size));
1834 ref_size = ReadMessageBytesFromFile(ref_file, &ref_bytes); 1901 ref_size = ReadMessageBytesFromFile(ref_file, &ref_bytes);
1835 out_size = ReadMessageBytesFromFile(out_file, &out_bytes); 1902 out_size = ReadMessageBytesFromFile(out_file, &out_bytes);
1836 } 1903 }
1837 EXPECT_GT(bytes_read, 0u); 1904 EXPECT_GT(bytes_read, 0u);
1838 EXPECT_NE(0, feof(ref_file)); 1905 EXPECT_NE(0, feof(ref_file));
1839 EXPECT_NE(0, feof(out_file)); 1906 EXPECT_NE(0, feof(out_file));
1840 ASSERT_EQ(0, fclose(ref_file)); 1907 ASSERT_EQ(0, fclose(ref_file));
1841 ASSERT_EQ(0, fclose(out_file)); 1908 ASSERT_EQ(0, fclose(out_file));
1842 remove(ref_filename.c_str()); 1909 // remove(ref_filename.c_str());
ivoc 2015/09/25 09:24:21 Why is this commented out? I think it's needed, is
minyue-webrtc 2015/09/25 09:49:09 sorry sorry, I needed they to help debugging.
1843 remove(out_filename.c_str()); 1910 // remove(out_filename.c_str());
1844 } 1911 }
1845 1912
1846 TEST_F(ApmTest, VerifyDebugDumpInt) { 1913 TEST_F(ApmTest, VerifyDebugDumpInt) {
1847 VerifyDebugDumpTest(kIntFormat); 1914 VerifyDebugDumpTest(kIntFormat);
1848 } 1915 }
1849 1916
1850 TEST_F(ApmTest, VerifyDebugDumpFloat) { 1917 TEST_F(ApmTest, VerifyDebugDumpFloat) {
1851 VerifyDebugDumpTest(kFloatFormat); 1918 VerifyDebugDumpTest(kFloatFormat);
1852 } 1919 }
1853 #endif 1920 #endif
(...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after
2748 std::tr1::make_tuple(16000, 16000, 32000, 16000, 40, 20), 2815 std::tr1::make_tuple(16000, 16000, 32000, 16000, 40, 20),
2749 std::tr1::make_tuple(16000, 16000, 16000, 16000, 0, 0))); 2816 std::tr1::make_tuple(16000, 16000, 16000, 16000, 0, 0)));
2750 #endif 2817 #endif
2751 2818
2752 // TODO(henrike): re-implement functionality lost when removing the old main 2819 // TODO(henrike): re-implement functionality lost when removing the old main
2753 // function. See 2820 // function. See
2754 // https://code.google.com/p/webrtc/issues/detail?id=1981 2821 // https://code.google.com/p/webrtc/issues/detail?id=1981
2755 2822
2756 } // namespace 2823 } // namespace
2757 } // namespace webrtc 2824 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698