OLD | NEW |
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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 dec->reset(decoder); | 72 dec->reset(decoder); |
73 })); | 73 })); |
74 DecoderDatabase db(factory); | 74 DecoderDatabase db(factory); |
75 const uint8_t kPayloadType = 0; | 75 const uint8_t kPayloadType = 0; |
76 const std::string kCodecName = "Robert\'); DROP TABLE Students;"; | 76 const std::string kCodecName = "Robert\'); DROP TABLE Students;"; |
77 EXPECT_EQ( | 77 EXPECT_EQ( |
78 DecoderDatabase::kOK, | 78 DecoderDatabase::kOK, |
79 db.RegisterPayload(kPayloadType, NetEqDecoder::kDecoderPCMu, kCodecName)); | 79 db.RegisterPayload(kPayloadType, NetEqDecoder::kDecoderPCMu, kCodecName)); |
80 const DecoderDatabase::DecoderInfo* info; | 80 const DecoderDatabase::DecoderInfo* info; |
81 info = db.GetDecoderInfo(kPayloadType); | 81 info = db.GetDecoderInfo(kPayloadType); |
82 ASSERT_TRUE(info != NULL); | 82 ASSERT_TRUE(info != nullptr); |
83 EXPECT_TRUE(info->IsType("pcmu")); | 83 EXPECT_TRUE(info->IsType("pcmu")); |
84 EXPECT_EQ(kCodecName, info->get_name()); | 84 EXPECT_EQ(kCodecName, info->get_name()); |
85 EXPECT_EQ(decoder, db.GetDecoder(kPayloadType)); | 85 EXPECT_EQ(decoder, db.GetDecoder(kPayloadType)); |
86 info = db.GetDecoderInfo(kPayloadType + 1); // Other payload type. | 86 info = db.GetDecoderInfo(kPayloadType + 1); // Other payload type. |
87 EXPECT_TRUE(info == NULL); // Should not be found. | 87 EXPECT_TRUE(info == nullptr); // Should not be found. |
88 } | 88 } |
89 | 89 |
90 TEST(DecoderDatabase, GetDecoder) { | 90 TEST(DecoderDatabase, GetDecoder) { |
91 DecoderDatabase db(CreateBuiltinAudioDecoderFactory()); | 91 DecoderDatabase db(CreateBuiltinAudioDecoderFactory()); |
92 const uint8_t kPayloadType = 0; | 92 const uint8_t kPayloadType = 0; |
93 const std::string kCodecName = "Robert\'); DROP TABLE Students;"; | 93 const std::string kCodecName = "Robert\'); DROP TABLE Students;"; |
94 EXPECT_EQ(DecoderDatabase::kOK, | 94 EXPECT_EQ(DecoderDatabase::kOK, |
95 db.RegisterPayload(kPayloadType, NetEqDecoder::kDecoderPCM16B, | 95 db.RegisterPayload(kPayloadType, NetEqDecoder::kDecoderPCM16B, |
96 kCodecName)); | 96 kCodecName)); |
97 AudioDecoder* dec = db.GetDecoder(kPayloadType); | 97 AudioDecoder* dec = db.GetDecoder(kPayloadType); |
98 ASSERT_TRUE(dec != NULL); | 98 ASSERT_TRUE(dec != nullptr); |
99 } | 99 } |
100 | 100 |
101 TEST(DecoderDatabase, TypeTests) { | 101 TEST(DecoderDatabase, TypeTests) { |
102 DecoderDatabase db(new rtc::RefCountedObject<MockAudioDecoderFactory>); | 102 DecoderDatabase db(new rtc::RefCountedObject<MockAudioDecoderFactory>); |
103 const uint8_t kPayloadTypePcmU = 0; | 103 const uint8_t kPayloadTypePcmU = 0; |
104 const uint8_t kPayloadTypeCng = 13; | 104 const uint8_t kPayloadTypeCng = 13; |
105 const uint8_t kPayloadTypeDtmf = 100; | 105 const uint8_t kPayloadTypeDtmf = 100; |
106 const uint8_t kPayloadTypeRed = 101; | 106 const uint8_t kPayloadTypeRed = 101; |
107 const uint8_t kPayloadNotUsed = 102; | 107 const uint8_t kPayloadNotUsed = 102; |
108 // Load into database. | 108 // Load into database. |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 // Load into database. | 141 // Load into database. |
142 EXPECT_EQ(DecoderDatabase::kOK, | 142 EXPECT_EQ(DecoderDatabase::kOK, |
143 db.InsertExternal(kPayloadType, NetEqDecoder::kDecoderPCMu, | 143 db.InsertExternal(kPayloadType, NetEqDecoder::kDecoderPCMu, |
144 kCodecName, &decoder)); | 144 kCodecName, &decoder)); |
145 EXPECT_EQ(1, db.Size()); | 145 EXPECT_EQ(1, db.Size()); |
146 // Get decoder and make sure we get the external one. | 146 // Get decoder and make sure we get the external one. |
147 EXPECT_EQ(&decoder, db.GetDecoder(kPayloadType)); | 147 EXPECT_EQ(&decoder, db.GetDecoder(kPayloadType)); |
148 // Get the decoder info struct and check it too. | 148 // Get the decoder info struct and check it too. |
149 const DecoderDatabase::DecoderInfo* info; | 149 const DecoderDatabase::DecoderInfo* info; |
150 info = db.GetDecoderInfo(kPayloadType); | 150 info = db.GetDecoderInfo(kPayloadType); |
151 ASSERT_TRUE(info != NULL); | 151 ASSERT_TRUE(info != nullptr); |
152 EXPECT_TRUE(info->IsType("pcmu")); | 152 EXPECT_TRUE(info->IsType("pcmu")); |
153 EXPECT_EQ(info->get_name(), kCodecName); | 153 EXPECT_EQ(info->get_name(), kCodecName); |
154 EXPECT_EQ(kCodecName, info->get_name()); | 154 EXPECT_EQ(kCodecName, info->get_name()); |
155 // Expect not to delete the decoder when removing it from the database, since | 155 // Expect not to delete the decoder when removing it from the database, since |
156 // it was declared externally. | 156 // it was declared externally. |
157 EXPECT_CALL(decoder, Die()).Times(0); | 157 EXPECT_CALL(decoder, Die()).Times(0); |
158 EXPECT_EQ(DecoderDatabase::kOK, db.Remove(kPayloadType)); | 158 EXPECT_EQ(DecoderDatabase::kOK, db.Remove(kPayloadType)); |
159 EXPECT_TRUE(db.Empty()); | 159 EXPECT_TRUE(db.Empty()); |
160 | 160 |
161 EXPECT_CALL(decoder, Die()).Times(1); // Will be called when |db| is deleted. | 161 EXPECT_CALL(decoder, Die()).Times(1); // Will be called when |db| is deleted. |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 TEST(DecoderDatabase, IF_ISAC(ActiveDecoders)) { | 205 TEST(DecoderDatabase, IF_ISAC(ActiveDecoders)) { |
206 DecoderDatabase db(CreateBuiltinAudioDecoderFactory()); | 206 DecoderDatabase db(CreateBuiltinAudioDecoderFactory()); |
207 // Load payload types. | 207 // Load payload types. |
208 ASSERT_EQ(DecoderDatabase::kOK, | 208 ASSERT_EQ(DecoderDatabase::kOK, |
209 db.RegisterPayload(0, NetEqDecoder::kDecoderPCMu, "pcmu")); | 209 db.RegisterPayload(0, NetEqDecoder::kDecoderPCMu, "pcmu")); |
210 ASSERT_EQ(DecoderDatabase::kOK, | 210 ASSERT_EQ(DecoderDatabase::kOK, |
211 db.RegisterPayload(103, NetEqDecoder::kDecoderISAC, "isac")); | 211 db.RegisterPayload(103, NetEqDecoder::kDecoderISAC, "isac")); |
212 ASSERT_EQ(DecoderDatabase::kOK, | 212 ASSERT_EQ(DecoderDatabase::kOK, |
213 db.RegisterPayload(13, NetEqDecoder::kDecoderCNGnb, "cng-nb")); | 213 db.RegisterPayload(13, NetEqDecoder::kDecoderCNGnb, "cng-nb")); |
214 // Verify that no decoders are active from the start. | 214 // Verify that no decoders are active from the start. |
215 EXPECT_EQ(NULL, db.GetActiveDecoder()); | 215 EXPECT_EQ(nullptr, db.GetActiveDecoder()); |
216 EXPECT_EQ(NULL, db.GetActiveCngDecoder()); | 216 EXPECT_EQ(nullptr, db.GetActiveCngDecoder()); |
217 | 217 |
218 // Set active speech codec. | 218 // Set active speech codec. |
219 bool changed; // Should be true when the active decoder changed. | 219 bool changed; // Should be true when the active decoder changed. |
220 EXPECT_EQ(DecoderDatabase::kOK, db.SetActiveDecoder(0, &changed)); | 220 EXPECT_EQ(DecoderDatabase::kOK, db.SetActiveDecoder(0, &changed)); |
221 EXPECT_TRUE(changed); | 221 EXPECT_TRUE(changed); |
222 AudioDecoder* decoder = db.GetActiveDecoder(); | 222 AudioDecoder* decoder = db.GetActiveDecoder(); |
223 ASSERT_FALSE(decoder == NULL); // Should get a decoder here. | 223 ASSERT_FALSE(decoder == nullptr); // Should get a decoder here. |
224 | 224 |
225 // Set the same again. Expect no change. | 225 // Set the same again. Expect no change. |
226 EXPECT_EQ(DecoderDatabase::kOK, db.SetActiveDecoder(0, &changed)); | 226 EXPECT_EQ(DecoderDatabase::kOK, db.SetActiveDecoder(0, &changed)); |
227 EXPECT_FALSE(changed); | 227 EXPECT_FALSE(changed); |
228 decoder = db.GetActiveDecoder(); | 228 decoder = db.GetActiveDecoder(); |
229 ASSERT_FALSE(decoder == NULL); // Should get a decoder here. | 229 ASSERT_FALSE(decoder == nullptr); // Should get a decoder here. |
230 | 230 |
231 // Change active decoder. | 231 // Change active decoder. |
232 EXPECT_EQ(DecoderDatabase::kOK, db.SetActiveDecoder(103, &changed)); | 232 EXPECT_EQ(DecoderDatabase::kOK, db.SetActiveDecoder(103, &changed)); |
233 EXPECT_TRUE(changed); | 233 EXPECT_TRUE(changed); |
234 decoder = db.GetActiveDecoder(); | 234 decoder = db.GetActiveDecoder(); |
235 ASSERT_FALSE(decoder == NULL); // Should get a decoder here. | 235 ASSERT_FALSE(decoder == nullptr); // Should get a decoder here. |
236 | 236 |
237 // Remove the active decoder, and verify that the active becomes NULL. | 237 // Remove the active decoder, and verify that the active becomes null. |
238 EXPECT_EQ(DecoderDatabase::kOK, db.Remove(103)); | 238 EXPECT_EQ(DecoderDatabase::kOK, db.Remove(103)); |
239 EXPECT_EQ(NULL, db.GetActiveDecoder()); | 239 EXPECT_EQ(nullptr, db.GetActiveDecoder()); |
240 | 240 |
241 // Set active CNG codec. | 241 // Set active CNG codec. |
242 EXPECT_EQ(DecoderDatabase::kOK, db.SetActiveCngDecoder(13)); | 242 EXPECT_EQ(DecoderDatabase::kOK, db.SetActiveCngDecoder(13)); |
243 ComfortNoiseDecoder* cng = db.GetActiveCngDecoder(); | 243 ComfortNoiseDecoder* cng = db.GetActiveCngDecoder(); |
244 ASSERT_FALSE(cng == NULL); // Should get a decoder here. | 244 ASSERT_FALSE(cng == nullptr); // Should get a decoder here. |
245 | 245 |
246 // Remove the active CNG decoder, and verify that the active becomes NULL. | 246 // Remove the active CNG decoder, and verify that the active becomes null. |
247 EXPECT_EQ(DecoderDatabase::kOK, db.Remove(13)); | 247 EXPECT_EQ(DecoderDatabase::kOK, db.Remove(13)); |
248 EXPECT_EQ(NULL, db.GetActiveCngDecoder()); | 248 EXPECT_EQ(nullptr, db.GetActiveCngDecoder()); |
249 | 249 |
250 // Try to set non-existing codecs as active. | 250 // Try to set non-existing codecs as active. |
251 EXPECT_EQ(DecoderDatabase::kDecoderNotFound, | 251 EXPECT_EQ(DecoderDatabase::kDecoderNotFound, |
252 db.SetActiveDecoder(17, &changed)); | 252 db.SetActiveDecoder(17, &changed)); |
253 EXPECT_EQ(DecoderDatabase::kDecoderNotFound, | 253 EXPECT_EQ(DecoderDatabase::kDecoderNotFound, |
254 db.SetActiveCngDecoder(17)); | 254 db.SetActiveCngDecoder(17)); |
255 } | 255 } |
256 } // namespace webrtc | 256 } // namespace webrtc |
OLD | NEW |