OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2009 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2009 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 |
11 #include "webrtc/base/gunit.h" | 11 #include "webrtc/base/gunit.h" |
12 #include "webrtc/media/base/codec.h" | 12 #include "webrtc/media/base/codec.h" |
13 | 13 |
14 using cricket::AudioCodec; | 14 using cricket::AudioCodec; |
15 using cricket::Codec; | 15 using cricket::Codec; |
16 using cricket::DataCodec; | 16 using cricket::DataCodec; |
17 using cricket::FeedbackParam; | 17 using cricket::FeedbackParam; |
18 using cricket::VideoCodec; | 18 using cricket::VideoCodec; |
19 using cricket::kCodecParamAssociatedPayloadType; | 19 using cricket::kCodecParamAssociatedPayloadType; |
20 using cricket::kCodecParamMaxBitrate; | 20 using cricket::kCodecParamMaxBitrate; |
21 using cricket::kCodecParamMinBitrate; | 21 using cricket::kCodecParamMinBitrate; |
22 | 22 |
23 class CodecTest : public testing::Test { | 23 TEST(CodecTest, TestCodecOperators) { |
24 public: | |
25 CodecTest() {} | |
26 }; | |
27 | |
28 TEST_F(CodecTest, TestCodecOperators) { | |
29 Codec c0(96, "D", 1000); | 24 Codec c0(96, "D", 1000); |
30 c0.SetParam("a", 1); | 25 c0.SetParam("a", 1); |
31 | 26 |
32 Codec c1 = c0; | 27 Codec c1 = c0; |
33 EXPECT_TRUE(c1 == c0); | 28 EXPECT_TRUE(c1 == c0); |
34 | 29 |
35 int param_value0; | 30 int param_value0; |
36 int param_value1; | 31 int param_value1; |
37 EXPECT_TRUE(c0.GetParam("a", ¶m_value0)); | 32 EXPECT_TRUE(c0.GetParam("a", ¶m_value0)); |
38 EXPECT_TRUE(c1.GetParam("a", ¶m_value1)); | 33 EXPECT_TRUE(c1.GetParam("a", ¶m_value1)); |
(...skipping 12 matching lines...) Expand all Loading... |
51 | 46 |
52 c1 = c0; | 47 c1 = c0; |
53 c1.SetParam("a", 2); | 48 c1.SetParam("a", 2); |
54 EXPECT_TRUE(c0 != c1); | 49 EXPECT_TRUE(c0 != c1); |
55 | 50 |
56 Codec c5; | 51 Codec c5; |
57 Codec c6(0, "", 0); | 52 Codec c6(0, "", 0); |
58 EXPECT_TRUE(c5 == c6); | 53 EXPECT_TRUE(c5 == c6); |
59 } | 54 } |
60 | 55 |
61 TEST_F(CodecTest, TestAudioCodecOperators) { | 56 TEST(CodecTest, TestAudioCodecOperators) { |
62 AudioCodec c0(96, "A", 44100, 20000, 2); | 57 AudioCodec c0(96, "A", 44100, 20000, 2); |
63 AudioCodec c1(95, "A", 44100, 20000, 2); | 58 AudioCodec c1(95, "A", 44100, 20000, 2); |
64 AudioCodec c2(96, "x", 44100, 20000, 2); | 59 AudioCodec c2(96, "x", 44100, 20000, 2); |
65 AudioCodec c3(96, "A", 48000, 20000, 2); | 60 AudioCodec c3(96, "A", 48000, 20000, 2); |
66 AudioCodec c4(96, "A", 44100, 10000, 2); | 61 AudioCodec c4(96, "A", 44100, 10000, 2); |
67 AudioCodec c5(96, "A", 44100, 20000, 1); | 62 AudioCodec c5(96, "A", 44100, 20000, 1); |
68 EXPECT_TRUE(c0 != c1); | 63 EXPECT_TRUE(c0 != c1); |
69 EXPECT_TRUE(c0 != c2); | 64 EXPECT_TRUE(c0 != c2); |
70 EXPECT_TRUE(c0 != c3); | 65 EXPECT_TRUE(c0 != c3); |
71 EXPECT_TRUE(c0 != c4); | 66 EXPECT_TRUE(c0 != c4); |
(...skipping 16 matching lines...) Expand all Loading... |
88 c13.params["x"] = "abc"; | 83 c13.params["x"] = "abc"; |
89 EXPECT_TRUE(c10 != c0); | 84 EXPECT_TRUE(c10 != c0); |
90 EXPECT_TRUE(c11 != c0); | 85 EXPECT_TRUE(c11 != c0); |
91 EXPECT_TRUE(c11 != c10); | 86 EXPECT_TRUE(c11 != c10); |
92 EXPECT_TRUE(c12 != c0); | 87 EXPECT_TRUE(c12 != c0); |
93 EXPECT_TRUE(c12 != c10); | 88 EXPECT_TRUE(c12 != c10); |
94 EXPECT_TRUE(c12 != c11); | 89 EXPECT_TRUE(c12 != c11); |
95 EXPECT_TRUE(c13 == c10); | 90 EXPECT_TRUE(c13 == c10); |
96 } | 91 } |
97 | 92 |
98 TEST_F(CodecTest, TestAudioCodecMatches) { | 93 TEST(CodecTest, TestAudioCodecMatches) { |
99 // Test a codec with a static payload type. | 94 // Test a codec with a static payload type. |
100 AudioCodec c0(95, "A", 44100, 20000, 1); | 95 AudioCodec c0(95, "A", 44100, 20000, 1); |
101 EXPECT_TRUE(c0.Matches(AudioCodec(95, "", 44100, 20000, 1))); | 96 EXPECT_TRUE(c0.Matches(AudioCodec(95, "", 44100, 20000, 1))); |
102 EXPECT_TRUE(c0.Matches(AudioCodec(95, "", 44100, 20000, 0))); | 97 EXPECT_TRUE(c0.Matches(AudioCodec(95, "", 44100, 20000, 0))); |
103 EXPECT_TRUE(c0.Matches(AudioCodec(95, "", 44100, 0, 0))); | 98 EXPECT_TRUE(c0.Matches(AudioCodec(95, "", 44100, 0, 0))); |
104 EXPECT_TRUE(c0.Matches(AudioCodec(95, "", 0, 0, 0))); | 99 EXPECT_TRUE(c0.Matches(AudioCodec(95, "", 0, 0, 0))); |
105 EXPECT_FALSE(c0.Matches(AudioCodec(96, "", 44100, 20000, 1))); | 100 EXPECT_FALSE(c0.Matches(AudioCodec(96, "", 44100, 20000, 1))); |
106 EXPECT_FALSE(c0.Matches(AudioCodec(95, "", 55100, 20000, 1))); | 101 EXPECT_FALSE(c0.Matches(AudioCodec(95, "", 55100, 20000, 1))); |
107 EXPECT_FALSE(c0.Matches(AudioCodec(95, "", 44100, 30000, 1))); | 102 EXPECT_FALSE(c0.Matches(AudioCodec(95, "", 44100, 30000, 1))); |
108 EXPECT_FALSE(c0.Matches(AudioCodec(95, "", 44100, 20000, 2))); | 103 EXPECT_FALSE(c0.Matches(AudioCodec(95, "", 44100, 20000, 2))); |
(...skipping 19 matching lines...) Expand all Loading... |
128 // Backward compatibility with clients that might send "-1" (for default). | 123 // Backward compatibility with clients that might send "-1" (for default). |
129 EXPECT_TRUE(c2.Matches(AudioCodec(97, "A", 16000, -1, 1))); | 124 EXPECT_TRUE(c2.Matches(AudioCodec(97, "A", 16000, -1, 1))); |
130 | 125 |
131 // Stereo doesn't match channels = 0. | 126 // Stereo doesn't match channels = 0. |
132 AudioCodec c3(96, "A", 44100, 20000, 2); | 127 AudioCodec c3(96, "A", 44100, 20000, 2); |
133 EXPECT_TRUE(c3.Matches(AudioCodec(96, "A", 44100, 20000, 2))); | 128 EXPECT_TRUE(c3.Matches(AudioCodec(96, "A", 44100, 20000, 2))); |
134 EXPECT_FALSE(c3.Matches(AudioCodec(96, "A", 44100, 20000, 1))); | 129 EXPECT_FALSE(c3.Matches(AudioCodec(96, "A", 44100, 20000, 1))); |
135 EXPECT_FALSE(c3.Matches(AudioCodec(96, "A", 44100, 20000, 0))); | 130 EXPECT_FALSE(c3.Matches(AudioCodec(96, "A", 44100, 20000, 0))); |
136 } | 131 } |
137 | 132 |
138 TEST_F(CodecTest, TestVideoCodecOperators) { | 133 TEST(CodecTest, TestVideoCodecOperators) { |
139 VideoCodec c0(96, "V"); | 134 VideoCodec c0(96, "V"); |
140 VideoCodec c1(95, "V"); | 135 VideoCodec c1(95, "V"); |
141 VideoCodec c2(96, "x"); | 136 VideoCodec c2(96, "x"); |
142 | 137 |
143 EXPECT_TRUE(c0 != c1); | 138 EXPECT_TRUE(c0 != c1); |
144 EXPECT_TRUE(c0 != c2); | 139 EXPECT_TRUE(c0 != c2); |
145 | 140 |
146 VideoCodec c7; | 141 VideoCodec c7; |
147 VideoCodec c8(0, ""); | 142 VideoCodec c8(0, ""); |
148 VideoCodec c9 = c0; | 143 VideoCodec c9 = c0; |
(...skipping 11 matching lines...) Expand all Loading... |
160 c13.params["x"] = "abc"; | 155 c13.params["x"] = "abc"; |
161 EXPECT_TRUE(c10 != c0); | 156 EXPECT_TRUE(c10 != c0); |
162 EXPECT_TRUE(c11 != c0); | 157 EXPECT_TRUE(c11 != c0); |
163 EXPECT_TRUE(c11 != c10); | 158 EXPECT_TRUE(c11 != c10); |
164 EXPECT_TRUE(c12 != c0); | 159 EXPECT_TRUE(c12 != c0); |
165 EXPECT_TRUE(c12 != c10); | 160 EXPECT_TRUE(c12 != c10); |
166 EXPECT_TRUE(c12 != c11); | 161 EXPECT_TRUE(c12 != c11); |
167 EXPECT_TRUE(c13 == c10); | 162 EXPECT_TRUE(c13 == c10); |
168 } | 163 } |
169 | 164 |
170 TEST_F(CodecTest, TestVideoCodecMatches) { | 165 TEST(CodecTest, TestVideoCodecMatches) { |
171 // Test a codec with a static payload type. | 166 // Test a codec with a static payload type. |
172 VideoCodec c0(95, "V"); | 167 VideoCodec c0(95, "V"); |
173 EXPECT_TRUE(c0.Matches(VideoCodec(95, ""))); | 168 EXPECT_TRUE(c0.Matches(VideoCodec(95, ""))); |
174 EXPECT_FALSE(c0.Matches(VideoCodec(96, ""))); | 169 EXPECT_FALSE(c0.Matches(VideoCodec(96, ""))); |
175 | 170 |
176 // Test a codec with a dynamic payload type. | 171 // Test a codec with a dynamic payload type. |
177 VideoCodec c1(96, "V"); | 172 VideoCodec c1(96, "V"); |
178 EXPECT_TRUE(c1.Matches(VideoCodec(96, "V"))); | 173 EXPECT_TRUE(c1.Matches(VideoCodec(96, "V"))); |
179 EXPECT_TRUE(c1.Matches(VideoCodec(97, "V"))); | 174 EXPECT_TRUE(c1.Matches(VideoCodec(97, "V"))); |
180 EXPECT_TRUE(c1.Matches(VideoCodec(96, "v"))); | 175 EXPECT_TRUE(c1.Matches(VideoCodec(96, "v"))); |
181 EXPECT_TRUE(c1.Matches(VideoCodec(97, "v"))); | 176 EXPECT_TRUE(c1.Matches(VideoCodec(97, "v"))); |
182 EXPECT_FALSE(c1.Matches(VideoCodec(96, ""))); | 177 EXPECT_FALSE(c1.Matches(VideoCodec(96, ""))); |
183 EXPECT_FALSE(c1.Matches(VideoCodec(95, "V"))); | 178 EXPECT_FALSE(c1.Matches(VideoCodec(95, "V"))); |
184 } | 179 } |
185 | 180 |
186 TEST_F(CodecTest, TestDataCodecMatches) { | 181 TEST(CodecTest, TestDataCodecMatches) { |
187 // Test a codec with a static payload type. | 182 // Test a codec with a static payload type. |
188 DataCodec c0(95, "D"); | 183 DataCodec c0(95, "D"); |
189 EXPECT_TRUE(c0.Matches(DataCodec(95, ""))); | 184 EXPECT_TRUE(c0.Matches(DataCodec(95, ""))); |
190 EXPECT_FALSE(c0.Matches(DataCodec(96, ""))); | 185 EXPECT_FALSE(c0.Matches(DataCodec(96, ""))); |
191 | 186 |
192 // Test a codec with a dynamic payload type. | 187 // Test a codec with a dynamic payload type. |
193 DataCodec c1(96, "D"); | 188 DataCodec c1(96, "D"); |
194 EXPECT_TRUE(c1.Matches(DataCodec(96, "D"))); | 189 EXPECT_TRUE(c1.Matches(DataCodec(96, "D"))); |
195 EXPECT_TRUE(c1.Matches(DataCodec(97, "D"))); | 190 EXPECT_TRUE(c1.Matches(DataCodec(97, "D"))); |
196 EXPECT_TRUE(c1.Matches(DataCodec(96, "d"))); | 191 EXPECT_TRUE(c1.Matches(DataCodec(96, "d"))); |
197 EXPECT_TRUE(c1.Matches(DataCodec(97, "d"))); | 192 EXPECT_TRUE(c1.Matches(DataCodec(97, "d"))); |
198 EXPECT_FALSE(c1.Matches(DataCodec(96, ""))); | 193 EXPECT_FALSE(c1.Matches(DataCodec(96, ""))); |
199 EXPECT_FALSE(c1.Matches(DataCodec(95, "D"))); | 194 EXPECT_FALSE(c1.Matches(DataCodec(95, "D"))); |
200 } | 195 } |
201 | 196 |
202 TEST_F(CodecTest, TestSetParamGetParamAndRemoveParam) { | 197 TEST(CodecTest, TestSetParamGetParamAndRemoveParam) { |
203 AudioCodec codec; | 198 AudioCodec codec; |
204 codec.SetParam("a", "1"); | 199 codec.SetParam("a", "1"); |
205 codec.SetParam("b", "x"); | 200 codec.SetParam("b", "x"); |
206 | 201 |
207 int int_value = 0; | 202 int int_value = 0; |
208 EXPECT_TRUE(codec.GetParam("a", &int_value)); | 203 EXPECT_TRUE(codec.GetParam("a", &int_value)); |
209 EXPECT_EQ(1, int_value); | 204 EXPECT_EQ(1, int_value); |
210 EXPECT_FALSE(codec.GetParam("b", &int_value)); | 205 EXPECT_FALSE(codec.GetParam("b", &int_value)); |
211 EXPECT_FALSE(codec.GetParam("c", &int_value)); | 206 EXPECT_FALSE(codec.GetParam("c", &int_value)); |
212 | 207 |
213 std::string str_value; | 208 std::string str_value; |
214 EXPECT_TRUE(codec.GetParam("a", &str_value)); | 209 EXPECT_TRUE(codec.GetParam("a", &str_value)); |
215 EXPECT_EQ("1", str_value); | 210 EXPECT_EQ("1", str_value); |
216 EXPECT_TRUE(codec.GetParam("b", &str_value)); | 211 EXPECT_TRUE(codec.GetParam("b", &str_value)); |
217 EXPECT_EQ("x", str_value); | 212 EXPECT_EQ("x", str_value); |
218 EXPECT_FALSE(codec.GetParam("c", &str_value)); | 213 EXPECT_FALSE(codec.GetParam("c", &str_value)); |
219 EXPECT_TRUE(codec.RemoveParam("a")); | 214 EXPECT_TRUE(codec.RemoveParam("a")); |
220 EXPECT_FALSE(codec.RemoveParam("c")); | 215 EXPECT_FALSE(codec.RemoveParam("c")); |
221 } | 216 } |
222 | 217 |
223 TEST_F(CodecTest, TestIntersectFeedbackParams) { | 218 TEST(CodecTest, TestIntersectFeedbackParams) { |
224 const FeedbackParam a1("a", "1"); | 219 const FeedbackParam a1("a", "1"); |
225 const FeedbackParam b2("b", "2"); | 220 const FeedbackParam b2("b", "2"); |
226 const FeedbackParam b3("b", "3"); | 221 const FeedbackParam b3("b", "3"); |
227 const FeedbackParam c3("c", "3"); | 222 const FeedbackParam c3("c", "3"); |
228 Codec c1; | 223 Codec c1; |
229 c1.AddFeedbackParam(a1); // Only match with c2. | 224 c1.AddFeedbackParam(a1); // Only match with c2. |
230 c1.AddFeedbackParam(b2); // Same param different values. | 225 c1.AddFeedbackParam(b2); // Same param different values. |
231 c1.AddFeedbackParam(c3); // Not in c2. | 226 c1.AddFeedbackParam(c3); // Not in c2. |
232 Codec c2; | 227 Codec c2; |
233 c2.AddFeedbackParam(a1); | 228 c2.AddFeedbackParam(a1); |
234 c2.AddFeedbackParam(b3); | 229 c2.AddFeedbackParam(b3); |
235 | 230 |
236 c1.IntersectFeedbackParams(c2); | 231 c1.IntersectFeedbackParams(c2); |
237 EXPECT_TRUE(c1.HasFeedbackParam(a1)); | 232 EXPECT_TRUE(c1.HasFeedbackParam(a1)); |
238 EXPECT_FALSE(c1.HasFeedbackParam(b2)); | 233 EXPECT_FALSE(c1.HasFeedbackParam(b2)); |
239 EXPECT_FALSE(c1.HasFeedbackParam(c3)); | 234 EXPECT_FALSE(c1.HasFeedbackParam(c3)); |
240 } | 235 } |
241 | 236 |
242 TEST_F(CodecTest, TestGetCodecType) { | 237 TEST(CodecTest, TestGetCodecType) { |
243 // Codec type comparison should be case insenstive on names. | 238 // Codec type comparison should be case insenstive on names. |
244 const VideoCodec codec(96, "V"); | 239 const VideoCodec codec(96, "V"); |
245 const VideoCodec rtx_codec(96, "rTx"); | 240 const VideoCodec rtx_codec(96, "rTx"); |
246 const VideoCodec ulpfec_codec(96, "ulpFeC"); | 241 const VideoCodec ulpfec_codec(96, "ulpFeC"); |
247 const VideoCodec red_codec(96, "ReD"); | 242 const VideoCodec red_codec(96, "ReD"); |
248 EXPECT_EQ(VideoCodec::CODEC_VIDEO, codec.GetCodecType()); | 243 EXPECT_EQ(VideoCodec::CODEC_VIDEO, codec.GetCodecType()); |
249 EXPECT_EQ(VideoCodec::CODEC_RTX, rtx_codec.GetCodecType()); | 244 EXPECT_EQ(VideoCodec::CODEC_RTX, rtx_codec.GetCodecType()); |
250 EXPECT_EQ(VideoCodec::CODEC_ULPFEC, ulpfec_codec.GetCodecType()); | 245 EXPECT_EQ(VideoCodec::CODEC_ULPFEC, ulpfec_codec.GetCodecType()); |
251 EXPECT_EQ(VideoCodec::CODEC_RED, red_codec.GetCodecType()); | 246 EXPECT_EQ(VideoCodec::CODEC_RED, red_codec.GetCodecType()); |
252 } | 247 } |
253 | 248 |
254 TEST_F(CodecTest, TestCreateRtxCodec) { | 249 TEST(CodecTest, TestCreateRtxCodec) { |
255 VideoCodec rtx_codec = VideoCodec::CreateRtxCodec(96, 120); | 250 VideoCodec rtx_codec = VideoCodec::CreateRtxCodec(96, 120); |
256 EXPECT_EQ(96, rtx_codec.id); | 251 EXPECT_EQ(96, rtx_codec.id); |
257 EXPECT_EQ(VideoCodec::CODEC_RTX, rtx_codec.GetCodecType()); | 252 EXPECT_EQ(VideoCodec::CODEC_RTX, rtx_codec.GetCodecType()); |
258 int associated_payload_type; | 253 int associated_payload_type; |
259 ASSERT_TRUE(rtx_codec.GetParam(kCodecParamAssociatedPayloadType, | 254 ASSERT_TRUE(rtx_codec.GetParam(kCodecParamAssociatedPayloadType, |
260 &associated_payload_type)); | 255 &associated_payload_type)); |
261 EXPECT_EQ(120, associated_payload_type); | 256 EXPECT_EQ(120, associated_payload_type); |
262 } | 257 } |
263 | 258 |
264 TEST_F(CodecTest, TestValidateCodecFormat) { | 259 TEST(CodecTest, TestValidateCodecFormat) { |
265 const VideoCodec codec(96, "V"); | 260 const VideoCodec codec(96, "V"); |
266 ASSERT_TRUE(codec.ValidateCodecFormat()); | 261 ASSERT_TRUE(codec.ValidateCodecFormat()); |
267 | 262 |
268 // Accept 0-127 as payload types. | 263 // Accept 0-127 as payload types. |
269 VideoCodec low_payload_type = codec; | 264 VideoCodec low_payload_type = codec; |
270 low_payload_type.id = 0; | 265 low_payload_type.id = 0; |
271 VideoCodec high_payload_type = codec; | 266 VideoCodec high_payload_type = codec; |
272 high_payload_type.id = 127; | 267 high_payload_type.id = 127; |
273 ASSERT_TRUE(low_payload_type.ValidateCodecFormat()); | 268 ASSERT_TRUE(low_payload_type.ValidateCodecFormat()); |
274 EXPECT_TRUE(high_payload_type.ValidateCodecFormat()); | 269 EXPECT_TRUE(high_payload_type.ValidateCodecFormat()); |
(...skipping 20 matching lines...) Expand all Loading... |
295 equal_bitrates.params[kCodecParamMaxBitrate] = "100"; | 290 equal_bitrates.params[kCodecParamMaxBitrate] = "100"; |
296 EXPECT_TRUE(equal_bitrates.ValidateCodecFormat()); | 291 EXPECT_TRUE(equal_bitrates.ValidateCodecFormat()); |
297 | 292 |
298 // Accept min bitrate < max bitrate. | 293 // Accept min bitrate < max bitrate. |
299 VideoCodec different_bitrates = codec; | 294 VideoCodec different_bitrates = codec; |
300 different_bitrates.params[kCodecParamMinBitrate] = "99"; | 295 different_bitrates.params[kCodecParamMinBitrate] = "99"; |
301 different_bitrates.params[kCodecParamMaxBitrate] = "100"; | 296 different_bitrates.params[kCodecParamMaxBitrate] = "100"; |
302 EXPECT_TRUE(different_bitrates.ValidateCodecFormat()); | 297 EXPECT_TRUE(different_bitrates.ValidateCodecFormat()); |
303 } | 298 } |
304 | 299 |
305 TEST_F(CodecTest, TestToCodecParameters) { | 300 TEST(CodecTest, TestToCodecParameters) { |
306 const VideoCodec v(96, "V"); | 301 const VideoCodec v(96, "V"); |
307 webrtc::RtpCodecParameters codec_params_1 = v.ToCodecParameters(); | 302 webrtc::RtpCodecParameters codec_params_1 = v.ToCodecParameters(); |
308 EXPECT_EQ(96, codec_params_1.payload_type); | 303 EXPECT_EQ(96, codec_params_1.payload_type); |
309 EXPECT_EQ("V", codec_params_1.mime_type); | 304 EXPECT_EQ("V", codec_params_1.mime_type); |
310 EXPECT_EQ(cricket::kVideoCodecClockrate, codec_params_1.clock_rate); | 305 EXPECT_EQ(cricket::kVideoCodecClockrate, codec_params_1.clock_rate); |
311 EXPECT_EQ(1, codec_params_1.channels); | 306 EXPECT_EQ(1, codec_params_1.channels); |
312 | 307 |
313 const AudioCodec a(97, "A", 44100, 20000, 2); | 308 const AudioCodec a(97, "A", 44100, 20000, 2); |
314 webrtc::RtpCodecParameters codec_params_2 = a.ToCodecParameters(); | 309 webrtc::RtpCodecParameters codec_params_2 = a.ToCodecParameters(); |
315 EXPECT_EQ(97, codec_params_2.payload_type); | 310 EXPECT_EQ(97, codec_params_2.payload_type); |
316 EXPECT_EQ("A", codec_params_2.mime_type); | 311 EXPECT_EQ("A", codec_params_2.mime_type); |
317 EXPECT_EQ(44100, codec_params_2.clock_rate); | 312 EXPECT_EQ(44100, codec_params_2.clock_rate); |
318 EXPECT_EQ(2, codec_params_2.channels); | 313 EXPECT_EQ(2, codec_params_2.channels); |
319 } | 314 } |
OLD | NEW |