OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/string_number_conversions.h" | 6 #include "base/string_number_conversions.h" |
7 #include "media/audio/audio_parameters.h" | 7 #include "media/audio/audio_parameters.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 | 9 |
10 TEST(AudioParameters, Constructor_Default) { | 10 TEST(AudioParameters, Constructor_Default) { |
(...skipping 16 matching lines...) Expand all Loading... |
27 | 27 |
28 TEST(AudioParameters, Constructor_ParameterValues) { | 28 TEST(AudioParameters, Constructor_ParameterValues) { |
29 AudioParameters::Format expected_format = | 29 AudioParameters::Format expected_format = |
30 AudioParameters::AUDIO_PCM_LOW_LATENCY; | 30 AudioParameters::AUDIO_PCM_LOW_LATENCY; |
31 int expected_bits = 16; | 31 int expected_bits = 16; |
32 int expected_channels = 6; | 32 int expected_channels = 6; |
33 ChannelLayout expected_channel_layout = CHANNEL_LAYOUT_5_1; | 33 ChannelLayout expected_channel_layout = CHANNEL_LAYOUT_5_1; |
34 int expected_rate = 44100; | 34 int expected_rate = 44100; |
35 int expected_samples = 880; | 35 int expected_samples = 880; |
36 | 36 |
37 AudioParameters params(expected_format, expected_channel_layout, | 37 AudioParameters params(expected_format, false, expected_channel_layout, |
38 expected_rate, expected_bits, expected_samples); | 38 expected_rate, expected_bits, expected_samples); |
39 | 39 |
40 EXPECT_EQ(expected_format, params.format()); | 40 EXPECT_EQ(expected_format, params.format()); |
41 EXPECT_EQ(expected_bits, params.bits_per_sample()); | 41 EXPECT_EQ(expected_bits, params.bits_per_sample()); |
42 EXPECT_EQ(expected_channels, params.channels()); | 42 EXPECT_EQ(expected_channels, params.channels()); |
43 EXPECT_EQ(expected_channel_layout, params.channel_layout()); | 43 EXPECT_EQ(expected_channel_layout, params.channel_layout()); |
44 EXPECT_EQ(expected_rate, params.sample_rate()); | 44 EXPECT_EQ(expected_rate, params.sample_rate()); |
45 EXPECT_EQ(expected_samples, params.frames_per_buffer()); | 45 EXPECT_EQ(expected_samples, params.frames_per_buffer()); |
46 } | 46 } |
47 | 47 |
48 TEST(AudioParameters, GetBytesPerBuffer) { | 48 TEST(AudioParameters, GetBytesPerBuffer) { |
49 EXPECT_EQ(100, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, | 49 EXPECT_EQ(100, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
50 CHANNEL_LAYOUT_MONO, 1000, 8, 100) | 50 CHANNEL_LAYOUT_MONO, 1000, 8, 100) |
51 .GetBytesPerBuffer()); | 51 .GetBytesPerBuffer()); |
52 EXPECT_EQ(200, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, | 52 EXPECT_EQ(200, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
53 CHANNEL_LAYOUT_MONO, 1000, 16, 100) | 53 CHANNEL_LAYOUT_MONO, 1000, 16, 100) |
54 .GetBytesPerBuffer()); | 54 .GetBytesPerBuffer()); |
55 EXPECT_EQ(200, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, | 55 EXPECT_EQ(200, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
56 CHANNEL_LAYOUT_STEREO, 1000, 8, 100) | 56 CHANNEL_LAYOUT_STEREO, 1000, 8, 100) |
57 .GetBytesPerBuffer()); | 57 .GetBytesPerBuffer()); |
58 EXPECT_EQ(200, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, | 58 EXPECT_EQ(200, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
59 CHANNEL_LAYOUT_MONO, 1000, 8, 200) | 59 CHANNEL_LAYOUT_MONO, 1000, 8, 200) |
60 .GetBytesPerBuffer()); | 60 .GetBytesPerBuffer()); |
61 EXPECT_EQ(800, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, | 61 EXPECT_EQ(800, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
62 CHANNEL_LAYOUT_STEREO, 1000, 16, 200) | 62 CHANNEL_LAYOUT_STEREO, 1000, 16, 200) |
63 .GetBytesPerBuffer()); | 63 .GetBytesPerBuffer()); |
64 } | 64 } |
65 | 65 |
66 TEST(AudioParameters, GetBytesPerSecond) { | 66 TEST(AudioParameters, GetBytesPerSecond) { |
67 EXPECT_EQ(0, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, | 67 EXPECT_EQ(0, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
68 CHANNEL_LAYOUT_NONE, 0, 0, 0) | 68 CHANNEL_LAYOUT_NONE, 0, 0, 0) |
69 .GetBytesPerSecond()); | 69 .GetBytesPerSecond()); |
70 EXPECT_EQ(0, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, | 70 EXPECT_EQ(0, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
71 CHANNEL_LAYOUT_STEREO, 0, 0, 0) | 71 CHANNEL_LAYOUT_STEREO, 0, 0, 0) |
72 .GetBytesPerSecond()); | 72 .GetBytesPerSecond()); |
73 EXPECT_EQ(0, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, | 73 EXPECT_EQ(0, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
74 CHANNEL_LAYOUT_NONE, 100, 0, 0) | 74 CHANNEL_LAYOUT_NONE, 100, 0, 0) |
75 .GetBytesPerSecond()); | 75 .GetBytesPerSecond()); |
76 EXPECT_EQ(0, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, | 76 EXPECT_EQ(0, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
77 CHANNEL_LAYOUT_NONE, 0, 8, 0) | 77 CHANNEL_LAYOUT_NONE, 0, 8, 0) |
78 .GetBytesPerSecond()); | 78 .GetBytesPerSecond()); |
79 EXPECT_EQ(200, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, | 79 EXPECT_EQ(200, AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
80 CHANNEL_LAYOUT_STEREO, 100, 8, 0) | 80 CHANNEL_LAYOUT_STEREO, 100, 8, 0) |
81 .GetBytesPerSecond()); | 81 .GetBytesPerSecond()); |
82 } | 82 } |
83 | 83 |
84 TEST(AudioParameters, Compare) { | 84 TEST(AudioParameters, Compare) { |
85 AudioParameters values[] = { | 85 AudioParameters values[] = { |
86 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_MONO, | 86 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
87 1000, 8, 100), | 87 CHANNEL_LAYOUT_MONO, 1000, 8, 100), |
88 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_MONO, | 88 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
89 1000, 8, 200), | 89 CHANNEL_LAYOUT_MONO, 1000, 8, 200), |
90 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_MONO, | 90 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
91 1000, 16, 100), | 91 CHANNEL_LAYOUT_MONO, 1000, 16, 100), |
92 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_MONO, | 92 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
93 1000, 16, 200), | 93 CHANNEL_LAYOUT_MONO, 1000, 16, 200), |
94 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_MONO, | 94 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
95 2000, 8, 100), | 95 CHANNEL_LAYOUT_MONO, 2000, 8, 100), |
96 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_MONO, | 96 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
97 2000, 8, 200), | 97 CHANNEL_LAYOUT_MONO, 2000, 8, 200), |
98 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_MONO, | 98 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
99 2000, 16, 100), | 99 CHANNEL_LAYOUT_MONO, 2000, 16, 100), |
100 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_MONO, | 100 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
101 2000, 16, 200), | 101 CHANNEL_LAYOUT_MONO, 2000, 16, 200), |
102 | 102 |
103 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_STEREO, | 103 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
104 1000, 8, 100), | 104 CHANNEL_LAYOUT_STEREO, 1000, 8, 100), |
105 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_STEREO, | 105 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
106 1000, 8, 200), | 106 CHANNEL_LAYOUT_STEREO, 1000, 8, 200), |
107 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_STEREO, | 107 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
108 1000, 16, 100), | 108 CHANNEL_LAYOUT_STEREO, 1000, 16, 100), |
109 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_STEREO, | 109 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
110 1000, 16, 200), | 110 CHANNEL_LAYOUT_STEREO, 1000, 16, 200), |
111 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_STEREO, | 111 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
112 2000, 8, 100), | 112 CHANNEL_LAYOUT_STEREO, 2000, 8, 100), |
113 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_STEREO, | 113 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
114 2000, 8, 200), | 114 CHANNEL_LAYOUT_STEREO, 2000, 8, 200), |
115 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_STEREO, | 115 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
116 2000, 16, 100), | 116 CHANNEL_LAYOUT_STEREO, 2000, 16, 100), |
117 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_STEREO, | 117 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, false, |
118 2000, 16, 200), | 118 CHANNEL_LAYOUT_STEREO, 2000, 16, 200), |
119 | 119 |
120 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_MONO, | 120 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
121 1000, 8, 100), | 121 CHANNEL_LAYOUT_MONO, 1000, 8, 100), |
122 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_MONO, | 122 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
123 1000, 8, 200), | 123 CHANNEL_LAYOUT_MONO, 1000, 8, 200), |
124 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_MONO, | 124 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
125 1000, 16, 100), | 125 CHANNEL_LAYOUT_MONO, 1000, 16, 100), |
126 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_MONO, | 126 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
127 1000, 16, 200), | 127 CHANNEL_LAYOUT_MONO, 1000, 16, 200), |
128 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_MONO, | 128 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
129 2000, 8, 100), | 129 CHANNEL_LAYOUT_MONO, 2000, 8, 100), |
130 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_MONO, | 130 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
131 2000, 8, 200), | 131 CHANNEL_LAYOUT_MONO, 2000, 8, 200), |
132 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_MONO, | 132 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
133 2000, 16, 100), | 133 CHANNEL_LAYOUT_MONO, 2000, 16, 100), |
134 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_MONO, | 134 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
135 2000, 16, 200), | 135 CHANNEL_LAYOUT_MONO, 2000, 16, 200), |
136 | 136 |
137 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, | 137 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
138 CHANNEL_LAYOUT_STEREO, 1000, 8, 100), | 138 CHANNEL_LAYOUT_STEREO, 1000, 8, 100), |
139 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, | 139 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
140 CHANNEL_LAYOUT_STEREO, 1000, 8, 200), | 140 CHANNEL_LAYOUT_STEREO, 1000, 8, 200), |
141 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, | 141 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
142 CHANNEL_LAYOUT_STEREO, 1000, 16, 100), | 142 CHANNEL_LAYOUT_STEREO, 1000, 16, 100), |
143 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, | 143 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
144 CHANNEL_LAYOUT_STEREO, 1000, 16, 200), | 144 CHANNEL_LAYOUT_STEREO, 1000, 16, 200), |
145 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, | 145 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
146 CHANNEL_LAYOUT_STEREO, 2000, 8, 100), | 146 CHANNEL_LAYOUT_STEREO, 2000, 8, 100), |
147 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, | 147 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
148 CHANNEL_LAYOUT_STEREO, 2000, 8, 200), | 148 CHANNEL_LAYOUT_STEREO, 2000, 8, 200), |
149 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, | 149 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
150 CHANNEL_LAYOUT_STEREO, 2000, 16, 100), | 150 CHANNEL_LAYOUT_STEREO, 2000, 16, 100), |
151 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, | 151 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, false, |
152 CHANNEL_LAYOUT_STEREO, 2000, 16, 200), | 152 CHANNEL_LAYOUT_STEREO, 2000, 16, 200), |
153 }; | 153 }; |
154 | 154 |
155 AudioParameters::Compare target; | 155 AudioParameters::Compare target; |
156 for (size_t i = 0; i < arraysize(values); ++i) { | 156 for (size_t i = 0; i < arraysize(values); ++i) { |
157 for (size_t j = 0; j < arraysize(values); ++j) { | 157 for (size_t j = 0; j < arraysize(values); ++j) { |
158 SCOPED_TRACE("i=" + base::IntToString(i) + " j=" + base::IntToString(j)); | 158 SCOPED_TRACE("i=" + base::IntToString(i) + " j=" + base::IntToString(j)); |
159 EXPECT_EQ(i < j, target(values[i], values[j])); | 159 EXPECT_EQ(i < j, target(values[i], values[j])); |
160 } | 160 } |
161 | 161 |
162 // Verify that a value is never less than itself. | 162 // Verify that a value is never less than itself. |
163 EXPECT_FALSE(target(values[i], values[i])); | 163 EXPECT_FALSE(target(values[i], values[i])); |
164 } | 164 } |
165 } | 165 } |
OLD | NEW |