| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2011 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 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 297 ASSERT_TRUE(neteq_); | 297 ASSERT_TRUE(neteq_); |
| 298 LoadDecoders(); | 298 LoadDecoders(); |
| 299 } | 299 } |
| 300 | 300 |
| 301 void NetEqDecodingTest::TearDown() { | 301 void NetEqDecodingTest::TearDown() { |
| 302 delete neteq_; | 302 delete neteq_; |
| 303 } | 303 } |
| 304 | 304 |
| 305 void NetEqDecodingTest::LoadDecoders() { | 305 void NetEqDecodingTest::LoadDecoders() { |
| 306 // Load PCMu. | 306 // Load PCMu. |
| 307 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCMu, 0)); | 307 ASSERT_EQ(0, |
| 308 neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCMu, "pcmu", 0)); |
| 308 // Load PCMa. | 309 // Load PCMa. |
| 309 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCMa, 8)); | 310 ASSERT_EQ(0, |
| 311 neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCMa, "pcma", 8)); |
| 310 #ifdef WEBRTC_CODEC_ILBC | 312 #ifdef WEBRTC_CODEC_ILBC |
| 311 // Load iLBC. | 313 // Load iLBC. |
| 312 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderILBC, 102)); | 314 ASSERT_EQ( |
| 315 0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderILBC, "ilbc", 102)); |
| 313 #endif | 316 #endif |
| 314 #if defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX) | 317 #if defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX) |
| 315 // Load iSAC. | 318 // Load iSAC. |
| 316 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderISAC, 103)); | 319 ASSERT_EQ( |
| 320 0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderISAC, "isac", 103)); |
| 317 #endif | 321 #endif |
| 318 #ifdef WEBRTC_CODEC_ISAC | 322 #ifdef WEBRTC_CODEC_ISAC |
| 319 // Load iSAC SWB. | 323 // Load iSAC SWB. |
| 320 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderISACswb, 104)); | 324 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderISACswb, |
| 325 "isac-swb", 104)); |
| 321 #endif | 326 #endif |
| 322 // Load PCM16B nb. | 327 // Load PCM16B nb. |
| 323 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCM16B, 93)); | 328 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCM16B, |
| 329 "pcm16-nb", 93)); |
| 324 // Load PCM16B wb. | 330 // Load PCM16B wb. |
| 325 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCM16Bwb, 94)); | 331 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCM16Bwb, |
| 332 "pcm16-wb", 94)); |
| 326 // Load PCM16B swb32. | 333 // Load PCM16B swb32. |
| 327 ASSERT_EQ( | 334 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCM16Bswb32kHz, |
| 328 0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCM16Bswb32kHz, 95)); | 335 "pcm16-swb32", 95)); |
| 329 // Load CNG 8 kHz. | 336 // Load CNG 8 kHz. |
| 330 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGnb, 13)); | 337 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGnb, |
| 338 "cng-nb", 13)); |
| 331 // Load CNG 16 kHz. | 339 // Load CNG 16 kHz. |
| 332 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGwb, 98)); | 340 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGwb, |
| 341 "cng-wb", 98)); |
| 333 } | 342 } |
| 334 | 343 |
| 335 void NetEqDecodingTest::OpenInputFile(const std::string &rtp_file) { | 344 void NetEqDecodingTest::OpenInputFile(const std::string &rtp_file) { |
| 336 rtp_source_.reset(test::RtpFileSource::Create(rtp_file)); | 345 rtp_source_.reset(test::RtpFileSource::Create(rtp_file)); |
| 337 } | 346 } |
| 338 | 347 |
| 339 void NetEqDecodingTest::Process(size_t* out_len) { | 348 void NetEqDecodingTest::Process(size_t* out_len) { |
| 340 // Check if time to receive. | 349 // Check if time to receive. |
| 341 while (packet_ && sim_clock_ >= packet_->time_ms()) { | 350 while (packet_ && sim_clock_ >= packet_->time_ms()) { |
| 342 if (packet_->payload_length_bytes() > 0) { | 351 if (packet_->payload_length_bytes() > 0) { |
| (...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1080 uint8_t kCngNbPayloadType = 2; | 1089 uint8_t kCngNbPayloadType = 2; |
| 1081 uint8_t kCngWbPayloadType = 3; | 1090 uint8_t kCngWbPayloadType = 3; |
| 1082 uint8_t kCngSwb32PayloadType = 4; | 1091 uint8_t kCngSwb32PayloadType = 4; |
| 1083 uint8_t kCngSwb48PayloadType = 5; | 1092 uint8_t kCngSwb48PayloadType = 5; |
| 1084 uint8_t kAvtPayloadType = 6; | 1093 uint8_t kAvtPayloadType = 6; |
| 1085 uint8_t kRedPayloadType = 7; | 1094 uint8_t kRedPayloadType = 7; |
| 1086 uint8_t kIsacPayloadType = 9; // Payload type 8 is already registered. | 1095 uint8_t kIsacPayloadType = 9; // Payload type 8 is already registered. |
| 1087 | 1096 |
| 1088 // Register decoders. | 1097 // Register decoders. |
| 1089 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCM16Bwb, | 1098 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderPCM16Bwb, |
| 1090 kPcm16WbPayloadType)); | 1099 "pcm16-wb", kPcm16WbPayloadType)); |
| 1091 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGnb, | 1100 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGnb, |
| 1092 kCngNbPayloadType)); | 1101 "cng-nb", kCngNbPayloadType)); |
| 1093 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGwb, | 1102 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGwb, |
| 1094 kCngWbPayloadType)); | 1103 "cng-wb", kCngWbPayloadType)); |
| 1095 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGswb32kHz, | 1104 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGswb32kHz, |
| 1096 kCngSwb32PayloadType)); | 1105 "cng-swb32", kCngSwb32PayloadType)); |
| 1097 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGswb48kHz, | 1106 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderCNGswb48kHz, |
| 1098 kCngSwb48PayloadType)); | 1107 "cng-swb48", kCngSwb48PayloadType)); |
| 1099 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderAVT, | 1108 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderAVT, "avt", |
| 1100 kAvtPayloadType)); | 1109 kAvtPayloadType)); |
| 1101 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderRED, | 1110 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderRED, "red", |
| 1102 kRedPayloadType)); | 1111 kRedPayloadType)); |
| 1103 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderISAC, | 1112 ASSERT_EQ(0, neteq_->RegisterPayloadType(NetEqDecoder::kDecoderISAC, "isac", |
| 1104 kIsacPayloadType)); | 1113 kIsacPayloadType)); |
| 1105 | 1114 |
| 1106 PopulateRtpInfo(0, 0, &rtp_info); | 1115 PopulateRtpInfo(0, 0, &rtp_info); |
| 1107 rtp_info.header.payloadType = kPcm16WbPayloadType; | 1116 rtp_info.header.payloadType = kPcm16WbPayloadType; |
| 1108 | 1117 |
| 1109 // The first packet injected cannot be sync-packet. | 1118 // The first packet injected cannot be sync-packet. |
| 1110 EXPECT_EQ(-1, neteq_->InsertSyncPacket(rtp_info, receive_timestamp)); | 1119 EXPECT_EQ(-1, neteq_->InsertSyncPacket(rtp_info, receive_timestamp)); |
| 1111 | 1120 |
| 1112 // Payload length of 10 ms PCM16 16 kHz. | 1121 // Payload length of 10 ms PCM16 16 kHz. |
| 1113 const size_t kPayloadBytes = kBlockSize16kHz * sizeof(int16_t); | 1122 const size_t kPayloadBytes = kBlockSize16kHz * sizeof(int16_t); |
| (...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1537 // Pull audio once. | 1546 // Pull audio once. |
| 1538 ASSERT_EQ(0, neteq_->GetAudio(kMaxBlockSize, out_data_, &out_len, | 1547 ASSERT_EQ(0, neteq_->GetAudio(kMaxBlockSize, out_data_, &out_len, |
| 1539 &num_channels, &type)); | 1548 &num_channels, &type)); |
| 1540 ASSERT_EQ(kBlockSize16kHz, out_len); | 1549 ASSERT_EQ(kBlockSize16kHz, out_len); |
| 1541 } | 1550 } |
| 1542 // Verify speech output. | 1551 // Verify speech output. |
| 1543 EXPECT_EQ(kOutputNormal, type); | 1552 EXPECT_EQ(kOutputNormal, type); |
| 1544 } | 1553 } |
| 1545 | 1554 |
| 1546 } // namespace webrtc | 1555 } // namespace webrtc |
| OLD | NEW |