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

Side by Side Diff: webrtc/modules/audio_processing/agc/pole_zero_filter_unittest.cc

Issue 1181933002: Pull the Voice Activity Detector out from the AGC (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Remove unused files from isolate Created 5 years, 6 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
(Empty)
1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #include "webrtc/modules/audio_processing/agc/pole_zero_filter.h"
12
13 #include <math.h>
14 #include <stdio.h>
15
16 #include "gtest/gtest.h"
17 #include "webrtc/base/scoped_ptr.h"
18 #include "webrtc/modules/audio_processing/agc/agc_audio_proc_internal.h"
19 #include "webrtc/test/testsupport/fileutils.h"
20
21 namespace webrtc {
22
23 static const int kInputSamples = 50;
24
25 static const int16_t kInput[kInputSamples] = {-2136, -7116, 10715, 2464, 3164,
26 8139, 11393, 24013, -32117, -5544, -27740, 10181, 14190, -24055, -15912,
27 17393, 6359, -9950, -13894, 32432, -23944, 3437, -8381, 19768, 3087, -19795,
28 -5920, 13310, 1407, 3876, 4059, 3524, -23130, 19121, -27900, -24840, 4089,
29 21422, -3625, 3015, -11236, 28856, 13424, 6571, -19761, -6361, 15821, -9469,
30 29727, 32229};
31
32 static const float kReferenceOutput[kInputSamples] = {-2082.230472f,
33 -6878.572941f, 10697.090871f, 2358.373952f, 2973.936512f, 7738.580650f,
34 10690.803213f, 22687.091576f, -32676.684717f, -5879.621684f, -27359.297432f,
35 10368.735888f, 13994.584604f, -23676.126249f, -15078.250390f, 17818.253338f,
36 6577.743123f, -9498.369315f, -13073.651079f, 32460.026588f, -23391.849347f,
37 3953.805667f, -7667.761363f, 19995.153447f, 3185.575477f, -19207.365160f,
38 -5143.103201f, 13756.317237f, 1779.654794f, 4142.269755f, 4209.475034f,
39 3572.991789f, -22509.089546f, 19307.878964f, -27060.439759f, -23319.042810f,
40 5547.685267f, 22312.718676f, -2707.309027f, 3852.358490f, -10135.510093f,
41 29241.509970f, 13394.397233f, 6340.721417f, -19510.207905f, -5908.442086f,
42 15882.301634f, -9211.335255f, 29253.056735f, 30874.443046f};
43
44 class PoleZeroFilterTest : public ::testing::Test {
45 protected:
46 PoleZeroFilterTest()
47 : my_filter_(PoleZeroFilter::Create(
48 kCoeffNumerator, kFilterOrder, kCoeffDenominator, kFilterOrder)) {}
49
50 ~PoleZeroFilterTest() {}
51
52 void FilterSubframes(int num_subframes);
53
54 private:
55 void TestClean();
56 rtc::scoped_ptr<PoleZeroFilter> my_filter_;
57 };
58
59 void PoleZeroFilterTest::FilterSubframes(int num_subframes) {
60 float output[kInputSamples];
61 const int num_subframe_samples = kInputSamples / num_subframes;
62 EXPECT_EQ(num_subframe_samples * num_subframes, kInputSamples);
63
64 for (int n = 0; n < num_subframes; n++) {
65 my_filter_->Filter(&kInput[n * num_subframe_samples], num_subframe_samples,
66 &output[n * num_subframe_samples]);
67 }
68 for (int n = 0; n < kInputSamples; n++) {
69 EXPECT_NEAR(output[n], kReferenceOutput[n], 1);
70 }
71 }
72
73 TEST_F(PoleZeroFilterTest, OneSubframe) {
74 FilterSubframes(1);
75 }
76
77 TEST_F(PoleZeroFilterTest, TwoSubframes) {
78 FilterSubframes(2);
79 }
80
81 TEST_F(PoleZeroFilterTest, FiveSubframes) {
82 FilterSubframes(5);
83 }
84
85 TEST_F(PoleZeroFilterTest, TenSubframes) {
86 FilterSubframes(10);
87 }
88
89 TEST_F(PoleZeroFilterTest, TwentyFiveSubframes) {
90 FilterSubframes(25);
91 }
92
93 TEST_F(PoleZeroFilterTest, FiftySubframes) {
94 FilterSubframes(50);
95 }
96
97 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/audio_processing/agc/pole_zero_filter.cc ('k') | webrtc/modules/audio_processing/agc/standalone_vad.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698