| 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 589 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 600   fake_clock_.AdvanceTimeMilliseconds(kStoredTimeInMs); | 600   fake_clock_.AdvanceTimeMilliseconds(kStoredTimeInMs); | 
| 601   rtp_sender_->TimeToSendPacket(kSsrc, seq_num++, capture_time_ms, false, | 601   rtp_sender_->TimeToSendPacket(kSsrc, seq_num++, capture_time_ms, false, | 
| 602                                 PacedPacketInfo()); | 602                                 PacedPacketInfo()); | 
| 603   // Packet should now be sent. This test doesn't verify the regular video | 603   // Packet should now be sent. This test doesn't verify the regular video | 
| 604   // packet, since it is tested in another test. | 604   // packet, since it is tested in another test. | 
| 605   EXPECT_EQ(++total_packets_sent, transport_.packets_sent()); | 605   EXPECT_EQ(++total_packets_sent, transport_.packets_sent()); | 
| 606   timestamp += 90 * kStoredTimeInMs; | 606   timestamp += 90 * kStoredTimeInMs; | 
| 607 | 607 | 
| 608   // Send padding 4 times, waiting 50 ms between each. | 608   // Send padding 4 times, waiting 50 ms between each. | 
| 609   for (int i = 0; i < 4; ++i) { | 609   for (int i = 0; i < 4; ++i) { | 
| 610     const int kPaddingPeriodMs = 50; | 610     constexpr int kPaddingPeriodMs = 50; | 
| 611     const size_t kPaddingBytes = 100; | 611     constexpr size_t kPaddingBytes = 100; | 
| 612     const size_t kMaxPaddingLength = 224;  // Value taken from rtp_sender.cc. | 612     constexpr size_t kMaxPaddingLength = | 
|  | 613         224;  // Value taken from rtp_sender.cc. | 
|  | 614 | 
| 613     // Padding will be forced to full packets. | 615     // Padding will be forced to full packets. | 
| 614     EXPECT_EQ(kMaxPaddingLength, | 616     // If BWE includes overhead, the return value of TimeToSendPadding will also | 
|  | 617     // include overhead. | 
|  | 618     const size_t expected_return = | 
|  | 619         GetParam() ? kMaxPaddingLength + rtp_header_len : kMaxPaddingLength; | 
|  | 620     EXPECT_EQ(expected_return, | 
| 615               rtp_sender_->TimeToSendPadding(kPaddingBytes, PacedPacketInfo())); | 621               rtp_sender_->TimeToSendPadding(kPaddingBytes, PacedPacketInfo())); | 
| 616 | 622 | 
| 617     // Process send bucket. Padding should now be sent. | 623     // Process send bucket. Padding should now be sent. | 
| 618     EXPECT_EQ(++total_packets_sent, transport_.packets_sent()); | 624     EXPECT_EQ(++total_packets_sent, transport_.packets_sent()); | 
| 619     EXPECT_EQ(kMaxPaddingLength + rtp_header_len, | 625     EXPECT_EQ(kMaxPaddingLength + rtp_header_len, | 
| 620               transport_.last_sent_packet().size()); | 626               transport_.last_sent_packet().size()); | 
| 621 | 627 | 
| 622     transport_.last_sent_packet().GetHeader(&rtp_header); | 628     transport_.last_sent_packet().GetHeader(&rtp_header); | 
| 623     EXPECT_EQ(kMaxPaddingLength, rtp_header.paddingLength); | 629     EXPECT_EQ(kMaxPaddingLength, rtp_header.paddingLength); | 
| 624 | 630 | 
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 777     fake_clock_.AdvanceTimeMilliseconds(33); | 783     fake_clock_.AdvanceTimeMilliseconds(33); | 
| 778   } | 784   } | 
| 779 | 785 | 
| 780   EXPECT_CALL(mock_rtc_event_log_, | 786   EXPECT_CALL(mock_rtc_event_log_, | 
| 781               LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _)) | 787               LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _)) | 
| 782       .Times(::testing::AtLeast(4)); | 788       .Times(::testing::AtLeast(4)); | 
| 783 | 789 | 
| 784   // The amount of padding to send it too small to send a payload packet. | 790   // The amount of padding to send it too small to send a payload packet. | 
| 785   EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _)) | 791   EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _)) | 
| 786       .WillOnce(testing::Return(true)); | 792       .WillOnce(testing::Return(true)); | 
| 787   EXPECT_EQ(kMaxPaddingSize, | 793 | 
|  | 794   // If BWE includes overhead, the return value of TimeToSendPadding will also | 
|  | 795   // include overhead. | 
|  | 796   size_t expected_return = | 
|  | 797       GetParam() ? kMaxPaddingSize + rtp_header_len : kMaxPaddingSize; | 
|  | 798   EXPECT_EQ(expected_return, | 
| 788             rtp_sender_->TimeToSendPadding(49, PacedPacketInfo())); | 799             rtp_sender_->TimeToSendPadding(49, PacedPacketInfo())); | 
| 789 | 800 | 
| 790   EXPECT_CALL(transport, | 801   EXPECT_CALL(transport, | 
| 791               SendRtp(_, kPayloadSizes[0] + rtp_header_len + kRtxHeaderSize, _)) | 802               SendRtp(_, kPayloadSizes[0] + rtp_header_len + kRtxHeaderSize, _)) | 
| 792       .WillOnce(testing::Return(true)); | 803       .WillOnce(testing::Return(true)); | 
| 793   EXPECT_EQ(kPayloadSizes[0], | 804 | 
|  | 805   expected_return = | 
|  | 806       GetParam() ? kPayloadSizes[0] + rtp_header_len : kPayloadSizes[0]; | 
|  | 807   EXPECT_EQ(expected_return, | 
| 794             rtp_sender_->TimeToSendPadding(500, PacedPacketInfo())); | 808             rtp_sender_->TimeToSendPadding(500, PacedPacketInfo())); | 
| 795 | 809 | 
| 796   EXPECT_CALL(transport, SendRtp(_, kPayloadSizes[kNumPayloadSizes - 1] + | 810   EXPECT_CALL(transport, SendRtp(_, kPayloadSizes[kNumPayloadSizes - 1] + | 
| 797                                         rtp_header_len + kRtxHeaderSize, | 811                                         rtp_header_len + kRtxHeaderSize, | 
| 798                                  _)) | 812                                  _)) | 
| 799       .WillOnce(testing::Return(true)); | 813       .WillOnce(testing::Return(true)); | 
| 800   EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _)) | 814   EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _)) | 
| 801       .WillOnce(testing::Return(true)); | 815       .WillOnce(testing::Return(true)); | 
| 802   EXPECT_EQ(kPayloadSizes[kNumPayloadSizes - 1] + kMaxPaddingSize, | 816 | 
|  | 817   expected_return = GetParam() | 
|  | 818                         ? kPayloadSizes[kNumPayloadSizes - 1] + | 
|  | 819                               kMaxPaddingSize + rtp_header_len * 2 | 
|  | 820                         : kPayloadSizes[kNumPayloadSizes - 1] + kMaxPaddingSize; | 
|  | 821   EXPECT_EQ(expected_return, | 
| 803             rtp_sender_->TimeToSendPadding(999, PacedPacketInfo())); | 822             rtp_sender_->TimeToSendPadding(999, PacedPacketInfo())); | 
| 804 } | 823 } | 
| 805 | 824 | 
| 806 TEST_P(RtpSenderTestWithoutPacer, SendGenericVideo) { | 825 TEST_P(RtpSenderTestWithoutPacer, SendGenericVideo) { | 
| 807   char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; | 826   char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; | 
| 808   const uint8_t payload_type = 127; | 827   const uint8_t payload_type = 127; | 
| 809   ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, | 828   ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, | 
| 810                                             0, 1500)); | 829                                             0, 1500)); | 
| 811   uint8_t payload[] = {47, 11, 32, 93, 89}; | 830   uint8_t payload[] = {47, 11, 32, 93, 89}; | 
| 812 | 831 | 
| (...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1510       nullptr, nullptr, nullptr, nullptr, nullptr, &mock_rtc_event_log_, | 1529       nullptr, nullptr, nullptr, nullptr, nullptr, &mock_rtc_event_log_, | 
| 1511       nullptr, &retransmission_rate_limiter_, nullptr)); | 1530       nullptr, &retransmission_rate_limiter_, nullptr)); | 
| 1512   rtp_sender_->SetSendPayloadType(kPayload); | 1531   rtp_sender_->SetSendPayloadType(kPayload); | 
| 1513   rtp_sender_->SetSequenceNumber(kSeqNum); | 1532   rtp_sender_->SetSequenceNumber(kSeqNum); | 
| 1514   rtp_sender_->SetTimestampOffset(0); | 1533   rtp_sender_->SetTimestampOffset(0); | 
| 1515   rtp_sender_->SetSSRC(kSsrc); | 1534   rtp_sender_->SetSSRC(kSsrc); | 
| 1516 | 1535 | 
| 1517   const size_t kPaddingSize = 59; | 1536   const size_t kPaddingSize = 59; | 
| 1518   EXPECT_CALL(transport, SendRtp(_, kPaddingSize + kRtpHeaderSize, _)) | 1537   EXPECT_CALL(transport, SendRtp(_, kPaddingSize + kRtpHeaderSize, _)) | 
| 1519       .WillOnce(testing::Return(true)); | 1538       .WillOnce(testing::Return(true)); | 
| 1520   EXPECT_EQ(kPaddingSize, | 1539 | 
| 1521             rtp_sender_->TimeToSendPadding(kPaddingSize, PacedPacketInfo())); | 1540   // If BWE includes overhead, the input value to TimeToSendPadding should also | 
|  | 1541   // include overhead. | 
|  | 1542   size_t budget = GetParam() ? kPaddingSize + kRtpHeaderSize : kPaddingSize; | 
|  | 1543   EXPECT_EQ(budget, rtp_sender_->TimeToSendPadding(budget, PacedPacketInfo())); | 
| 1522 | 1544 | 
| 1523   // Requested padding size is too small, will send a larger one. | 1545   // Requested padding size is too small, will send a larger one. | 
| 1524   const size_t kMinPaddingSize = 50; | 1546   const size_t kMinPaddingSize = 50; | 
| 1525   EXPECT_CALL(transport, SendRtp(_, kMinPaddingSize + kRtpHeaderSize, _)) | 1547   EXPECT_CALL(transport, SendRtp(_, kMinPaddingSize + kRtpHeaderSize, _)) | 
| 1526       .WillOnce(testing::Return(true)); | 1548       .WillOnce(testing::Return(true)); | 
| 1527   EXPECT_EQ( | 1549 | 
| 1528       kMinPaddingSize, | 1550   budget = | 
| 1529       rtp_sender_->TimeToSendPadding(kMinPaddingSize - 5, PacedPacketInfo())); | 1551       GetParam() ? kMinPaddingSize - 5 + kRtpHeaderSize : kMinPaddingSize - 5; | 
|  | 1552   const size_t expected_return = | 
|  | 1553       GetParam() ? kMinPaddingSize + kRtpHeaderSize : kMinPaddingSize; | 
|  | 1554   EXPECT_EQ(expected_return, | 
|  | 1555             rtp_sender_->TimeToSendPadding(budget, PacedPacketInfo())); | 
| 1530 } | 1556 } | 
| 1531 | 1557 | 
| 1532 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 1558 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 
| 1533                         RtpSenderTest, | 1559                         RtpSenderTest, | 
| 1534                         ::testing::Bool()); | 1560                         ::testing::Bool()); | 
| 1535 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 1561 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 
| 1536                         RtpSenderTestWithoutPacer, | 1562                         RtpSenderTestWithoutPacer, | 
| 1537                         ::testing::Bool()); | 1563                         ::testing::Bool()); | 
| 1538 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 1564 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 
| 1539                         RtpSenderVideoTest, | 1565                         RtpSenderVideoTest, | 
| 1540                         ::testing::Bool()); | 1566                         ::testing::Bool()); | 
| 1541 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 1567 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 
| 1542                         RtpSenderAudioTest, | 1568                         RtpSenderAudioTest, | 
| 1543                         ::testing::Bool()); | 1569                         ::testing::Bool()); | 
| 1544 }  // namespace webrtc | 1570 }  // namespace webrtc | 
| OLD | NEW | 
|---|