| 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 488 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 499   // Pull out all data. | 499   // Pull out all data. | 
| 500   for (size_t i = 0; i < num_frames; ++i) { | 500   for (size_t i = 0; i < num_frames; ++i) { | 
| 501     int out_len; | 501     int out_len; | 
| 502     int num_channels; | 502     int num_channels; | 
| 503     NetEqOutputType type; | 503     NetEqOutputType type; | 
| 504     ASSERT_EQ(0, neteq_->GetAudio(kMaxBlockSize, out_data_, &out_len, | 504     ASSERT_EQ(0, neteq_->GetAudio(kMaxBlockSize, out_data_, &out_len, | 
| 505                                   &num_channels, &type)); | 505                                   &num_channels, &type)); | 
| 506     ASSERT_EQ(kBlockSize16kHz, out_len); | 506     ASSERT_EQ(kBlockSize16kHz, out_len); | 
| 507   } | 507   } | 
| 508 | 508 | 
| 509   std::vector<int> waiting_times; | 509   NetEqNetworkStatistics stats; | 
| 510   neteq_->WaitingTimes(&waiting_times); | 510   EXPECT_EQ(0, neteq_->NetworkStatistics(&stats)); | 
| 511   EXPECT_EQ(num_frames, waiting_times.size()); |  | 
| 512   // Since all frames are dumped into NetEQ at once, but pulled out with 10 ms | 511   // Since all frames are dumped into NetEQ at once, but pulled out with 10 ms | 
| 513   // spacing (per definition), we expect the delay to increase with 10 ms for | 512   // spacing (per definition), we expect the delay to increase with 10 ms for | 
| 514   // each packet. | 513   // each packet. Thus, we are calculating the statistics for a series from 10 | 
| 515   for (size_t i = 0; i < waiting_times.size(); ++i) { | 514   // to 300, in steps of 10 ms. | 
| 516     EXPECT_EQ(static_cast<int>(i + 1) * 10, waiting_times[i]); | 515   EXPECT_EQ(155, stats.mean_waiting_time_ms); | 
| 517   } | 516   EXPECT_EQ(155, stats.median_waiting_time_ms); | 
|  | 517   EXPECT_EQ(10, stats.min_waiting_time_ms); | 
|  | 518   EXPECT_EQ(300, stats.max_waiting_time_ms); | 
| 518 | 519 | 
| 519   // Check statistics again and make sure it's been reset. | 520   // Check statistics again and make sure it's been reset. | 
| 520   neteq_->WaitingTimes(&waiting_times); | 521   EXPECT_EQ(0, neteq_->NetworkStatistics(&stats)); | 
| 521   int len = waiting_times.size(); | 522   EXPECT_EQ(-1, stats.mean_waiting_time_ms); | 
| 522   EXPECT_EQ(0, len); | 523   EXPECT_EQ(-1, stats.median_waiting_time_ms); | 
| 523 | 524   EXPECT_EQ(-1, stats.min_waiting_time_ms); | 
| 524   // Process > 100 frames, and make sure that that we get statistics | 525   EXPECT_EQ(-1, stats.max_waiting_time_ms); | 
| 525   // only for 100 frames. Note the new SSRC, causing NetEQ to reset. |  | 
| 526   num_frames = 110; |  | 
| 527   for (size_t i = 0; i < num_frames; ++i) { |  | 
| 528     uint16_t payload[kSamples] = {0}; |  | 
| 529     WebRtcRTPHeader rtp_info; |  | 
| 530     rtp_info.header.sequenceNumber = i; |  | 
| 531     rtp_info.header.timestamp = i * kSamples; |  | 
| 532     rtp_info.header.ssrc = 0x1235;  // Just an arbitrary SSRC. |  | 
| 533     rtp_info.header.payloadType = 94;  // PCM16b WB codec. |  | 
| 534     rtp_info.header.markerBit = 0; |  | 
| 535     ASSERT_EQ(0, neteq_->InsertPacket( |  | 
| 536         rtp_info, |  | 
| 537         reinterpret_cast<uint8_t*>(payload), |  | 
| 538         kPayloadBytes, 0)); |  | 
| 539     int out_len; |  | 
| 540     int num_channels; |  | 
| 541     NetEqOutputType type; |  | 
| 542     ASSERT_EQ(0, neteq_->GetAudio(kMaxBlockSize, out_data_, &out_len, |  | 
| 543                                   &num_channels, &type)); |  | 
| 544     ASSERT_EQ(kBlockSize16kHz, out_len); |  | 
| 545   } |  | 
| 546 |  | 
| 547   neteq_->WaitingTimes(&waiting_times); |  | 
| 548   EXPECT_EQ(100u, waiting_times.size()); |  | 
| 549 } | 526 } | 
| 550 | 527 | 
| 551 TEST_F(NetEqDecodingTest, TestAverageInterArrivalTimeNegative) { | 528 TEST_F(NetEqDecodingTest, TestAverageInterArrivalTimeNegative) { | 
| 552   const int kNumFrames = 3000;  // Needed for convergence. | 529   const int kNumFrames = 3000;  // Needed for convergence. | 
| 553   int frame_index = 0; | 530   int frame_index = 0; | 
| 554   const size_t kSamples = 10 * 16; | 531   const size_t kSamples = 10 * 16; | 
| 555   const size_t kPayloadBytes = kSamples * 2; | 532   const size_t kPayloadBytes = kSamples * 2; | 
| 556   while (frame_index < kNumFrames) { | 533   while (frame_index < kNumFrames) { | 
| 557     // Insert one packet each time, except every 10th time where we insert two | 534     // Insert one packet each time, except every 10th time where we insert two | 
| 558     // packets at once. This will create a negative clock-drift of approx. 10%. | 535     // packets at once. This will create a negative clock-drift of approx. 10%. | 
| (...skipping 974 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1533     // Pull audio once. | 1510     // Pull audio once. | 
| 1534     ASSERT_EQ(0, neteq_->GetAudio(kMaxBlockSize, out_data_, &out_len, | 1511     ASSERT_EQ(0, neteq_->GetAudio(kMaxBlockSize, out_data_, &out_len, | 
| 1535                                   &num_channels, &type)); | 1512                                   &num_channels, &type)); | 
| 1536     ASSERT_EQ(kBlockSize16kHz, out_len); | 1513     ASSERT_EQ(kBlockSize16kHz, out_len); | 
| 1537   } | 1514   } | 
| 1538   // Verify speech output. | 1515   // Verify speech output. | 
| 1539   EXPECT_EQ(kOutputNormal, type); | 1516   EXPECT_EQ(kOutputNormal, type); | 
| 1540 } | 1517 } | 
| 1541 | 1518 | 
| 1542 }  // namespace webrtc | 1519 }  // namespace webrtc | 
| OLD | NEW | 
|---|