 Chromium Code Reviews
 Chromium Code Reviews Issue 1392513002:
  Disable pacer disabling.  (Closed) 
  Base URL: https://chromium.googlesource.com/external/webrtc.git@master
    
  
    Issue 1392513002:
  Disable pacer disabling.  (Closed) 
  Base URL: https://chromium.googlesource.com/external/webrtc.git@master| 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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 100 std::vector<rtc::Buffer*> sent_packets_; | 100 std::vector<rtc::Buffer*> sent_packets_; | 
| 101 }; | 101 }; | 
| 102 | 102 | 
| 103 } // namespace | 103 } // namespace | 
| 104 | 104 | 
| 105 class MockRtpPacketSender : public RtpPacketSender { | 105 class MockRtpPacketSender : public RtpPacketSender { | 
| 106 public: | 106 public: | 
| 107 MockRtpPacketSender() {} | 107 MockRtpPacketSender() {} | 
| 108 virtual ~MockRtpPacketSender() {} | 108 virtual ~MockRtpPacketSender() {} | 
| 109 | 109 | 
| 110 MOCK_METHOD6(SendPacket, | 110 MOCK_METHOD6(InsertPacket, | 
| 111 bool(Priority priority, | 111 void(Priority priority, | 
| 112 uint32_t ssrc, | 112 uint32_t ssrc, | 
| 113 uint16_t sequence_number, | 113 uint16_t sequence_number, | 
| 114 int64_t capture_time_ms, | 114 int64_t capture_time_ms, | 
| 115 size_t bytes, | 115 size_t bytes, | 
| 116 bool retransmission)); | 116 bool retransmission)); | 
| 117 }; | 117 }; | 
| 118 | 118 | 
| 119 class RtpSenderTest : public ::testing::Test { | 119 class RtpSenderTest : public ::testing::Test { | 
| 120 protected: | 120 protected: | 
| 121 RtpSenderTest() | 121 RtpSenderTest() | 
| 122 : fake_clock_(kStartTime), | 122 : fake_clock_(kStartTime), | 
| 123 mock_paced_sender_(), | 123 mock_paced_sender_(), | 
| 124 rtp_sender_(), | 124 rtp_sender_(), | 
| 125 payload_(kPayload), | 125 payload_(kPayload), | 
| 126 transport_(), | 126 transport_(), | 
| 127 kMarkerBit(true) { | 127 kMarkerBit(true) { | 
| 128 EXPECT_CALL(mock_paced_sender_, | 128 EXPECT_CALL(mock_paced_sender_, InsertPacket(_, _, _, _, _, _)) | 
| 129 SendPacket(_, _, _, _, _, _)).WillRepeatedly(testing::Return(true)); | 129 .WillRepeatedly(testing::Return()); | 
| 130 } | 130 } | 
| 131 | 131 | 
| 132 void SetUp() override { | 132 void SetUp() override { SetUpRtpSender(false); } | 
| 133 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, | 133 void SetUpWithPacer() { SetUpRtpSender(true); } | 
| 
stefan-webrtc
2015/10/06 14:32:33
A nicer way would be to inherit from RtpSenderTest
 
pbos-webrtc
2015/10/06 14:58:26
Done.
 | |
| 134 &mock_paced_sender_, nullptr, nullptr, | |
| 135 nullptr, nullptr, nullptr)); | |
| 136 rtp_sender_->SetSequenceNumber(kSeqNum); | |
| 137 } | |
| 138 | 134 | 
| 139 SimulatedClock fake_clock_; | 135 SimulatedClock fake_clock_; | 
| 140 MockRtpPacketSender mock_paced_sender_; | 136 MockRtpPacketSender mock_paced_sender_; | 
| 141 rtc::scoped_ptr<RTPSender> rtp_sender_; | 137 rtc::scoped_ptr<RTPSender> rtp_sender_; | 
| 142 int payload_; | 138 int payload_; | 
| 143 LoopbackTransportTest transport_; | 139 LoopbackTransportTest transport_; | 
| 144 const bool kMarkerBit; | 140 const bool kMarkerBit; | 
| 145 uint8_t packet_[kMaxPacketLength]; | 141 uint8_t packet_[kMaxPacketLength]; | 
| 146 | 142 | 
| 147 void VerifyRTPHeaderCommon(const RTPHeader& rtp_header) { | 143 void VerifyRTPHeaderCommon(const RTPHeader& rtp_header) { | 
| (...skipping 17 matching lines...) Expand all Loading... | |
| 165 kMarkerBit, | 161 kMarkerBit, | 
| 166 timestamp, | 162 timestamp, | 
| 167 capture_time_ms); | 163 capture_time_ms); | 
| 168 ASSERT_GE(rtp_length, 0); | 164 ASSERT_GE(rtp_length, 0); | 
| 169 | 165 | 
| 170 // Packet should be stored in a send bucket. | 166 // Packet should be stored in a send bucket. | 
| 171 EXPECT_EQ(0, rtp_sender_->SendToNetwork( | 167 EXPECT_EQ(0, rtp_sender_->SendToNetwork( | 
| 172 packet_, payload_length, rtp_length, capture_time_ms, | 168 packet_, payload_length, rtp_length, capture_time_ms, | 
| 173 kAllowRetransmission, RtpPacketSender::kNormalPriority)); | 169 kAllowRetransmission, RtpPacketSender::kNormalPriority)); | 
| 174 } | 170 } | 
| 171 private: | |
| 172 void SetUpRtpSender(bool pacer) { | |
| 173 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, | |
| 174 pacer ? &mock_paced_sender_ : nullptr, | |
| 175 nullptr, nullptr, nullptr, nullptr, | |
| 176 nullptr)); | |
| 177 rtp_sender_->SetSequenceNumber(kSeqNum); | |
| 178 } | |
| 175 }; | 179 }; | 
| 176 | 180 | 
| 177 class RtpSenderVideoTest : public RtpSenderTest { | 181 class RtpSenderVideoTest : public RtpSenderTest { | 
| 178 protected: | 182 protected: | 
| 179 virtual void SetUp() override { | 183 virtual void SetUp() override { | 
| 180 RtpSenderTest::SetUp(); | 184 RtpSenderTest::SetUp(); | 
| 181 rtp_sender_video_.reset( | 185 rtp_sender_video_.reset( | 
| 182 new RTPSenderVideo(&fake_clock_, rtp_sender_.get())); | 186 new RTPSenderVideo(&fake_clock_, rtp_sender_.get())); | 
| 183 } | 187 } | 
| 184 rtc::scoped_ptr<RTPSenderVideo> rtp_sender_video_; | 188 rtc::scoped_ptr<RTPSenderVideo> rtp_sender_video_; | 
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 598 EXPECT_FALSE(rtp_header2.extension.hasTransportSequenceNumber); | 602 EXPECT_FALSE(rtp_header2.extension.hasTransportSequenceNumber); | 
| 599 | 603 | 
| 600 EXPECT_EQ(0, rtp_header2.extension.transmissionTimeOffset); | 604 EXPECT_EQ(0, rtp_header2.extension.transmissionTimeOffset); | 
| 601 EXPECT_EQ(0u, rtp_header2.extension.absoluteSendTime); | 605 EXPECT_EQ(0u, rtp_header2.extension.absoluteSendTime); | 
| 602 EXPECT_FALSE(rtp_header2.extension.voiceActivity); | 606 EXPECT_FALSE(rtp_header2.extension.voiceActivity); | 
| 603 EXPECT_EQ(0u, rtp_header2.extension.audioLevel); | 607 EXPECT_EQ(0u, rtp_header2.extension.audioLevel); | 
| 604 EXPECT_EQ(0u, rtp_header2.extension.transportSequenceNumber); | 608 EXPECT_EQ(0u, rtp_header2.extension.transportSequenceNumber); | 
| 605 } | 609 } | 
| 606 | 610 | 
| 607 TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) { | 611 TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) { | 
| 608 EXPECT_CALL(mock_paced_sender_, | 612 SetUpWithPacer(); | 
| 609 SendPacket(RtpPacketSender::kNormalPriority, _, kSeqNum, _, _, _)) | 613 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, | 
| 610 .WillOnce(testing::Return(false)); | 614 _, kSeqNum, _, _, _)) | 
| 615 .WillRepeatedly(testing::Return()); | |
| 611 | 616 | 
| 612 rtp_sender_->SetStorePacketsStatus(true, 10); | 617 rtp_sender_->SetStorePacketsStatus(true, 10); | 
| 613 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 618 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 
| 614 kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId)); | 619 kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId)); | 
| 615 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 620 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 
| 616 kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId)); | 621 kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId)); | 
| 617 rtp_sender_->SetTargetBitrate(300000); | 622 rtp_sender_->SetTargetBitrate(300000); | 
| 618 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); | 623 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); | 
| 619 int rtp_length_int = rtp_sender_->BuildRTPheader( | 624 int rtp_length_int = rtp_sender_->BuildRTPheader( | 
| 620 packet_, kPayload, kMarkerBit, kTimestamp, capture_time_ms); | 625 packet_, kPayload, kMarkerBit, kTimestamp, capture_time_ms); | 
| (...skipping 27 matching lines...) Expand all Loading... | |
| 648 ASSERT_TRUE(valid_rtp_header); | 653 ASSERT_TRUE(valid_rtp_header); | 
| 649 | 654 | 
| 650 // Verify transmission time offset. | 655 // Verify transmission time offset. | 
| 651 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); | 656 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); | 
| 652 uint64_t expected_send_time = | 657 uint64_t expected_send_time = | 
| 653 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); | 658 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); | 
| 654 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); | 659 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); | 
| 655 } | 660 } | 
| 656 | 661 | 
| 657 TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) { | 662 TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) { | 
| 658 EXPECT_CALL(mock_paced_sender_, | 663 SetUpWithPacer(); | 
| 659 SendPacket(RtpPacketSender::kNormalPriority, _, kSeqNum, _, _, _)) | 664 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, | 
| 660 .WillOnce(testing::Return(false)); | 665 _, kSeqNum, _, _, _)) | 
| 666 .WillRepeatedly(testing::Return()); | |
| 661 | 667 | 
| 662 rtp_sender_->SetStorePacketsStatus(true, 10); | 668 rtp_sender_->SetStorePacketsStatus(true, 10); | 
| 663 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 669 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 
| 664 kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId)); | 670 kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId)); | 
| 665 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 671 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 
| 666 kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId)); | 672 kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId)); | 
| 667 rtp_sender_->SetTargetBitrate(300000); | 673 rtp_sender_->SetTargetBitrate(300000); | 
| 668 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); | 674 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); | 
| 669 int rtp_length_int = rtp_sender_->BuildRTPheader( | 675 int rtp_length_int = rtp_sender_->BuildRTPheader( | 
| 670 packet_, kPayload, kMarkerBit, kTimestamp, capture_time_ms); | 676 packet_, kPayload, kMarkerBit, kTimestamp, capture_time_ms); | 
| 671 ASSERT_NE(-1, rtp_length_int); | 677 ASSERT_NE(-1, rtp_length_int); | 
| 672 size_t rtp_length = static_cast<size_t>(rtp_length_int); | 678 size_t rtp_length = static_cast<size_t>(rtp_length_int); | 
| 673 | 679 | 
| 674 // Packet should be stored in a send bucket. | 680 // Packet should be stored in a send bucket. | 
| 675 EXPECT_EQ(0, rtp_sender_->SendToNetwork(packet_, 0, rtp_length, | 681 EXPECT_EQ(0, rtp_sender_->SendToNetwork(packet_, 0, rtp_length, | 
| 676 capture_time_ms, kAllowRetransmission, | 682 capture_time_ms, kAllowRetransmission, | 
| 677 RtpPacketSender::kNormalPriority)); | 683 RtpPacketSender::kNormalPriority)); | 
| 678 | 684 | 
| 679 EXPECT_EQ(0, transport_.packets_sent_); | 685 EXPECT_EQ(0, transport_.packets_sent_); | 
| 680 | 686 | 
| 681 EXPECT_CALL(mock_paced_sender_, | 687 EXPECT_CALL(mock_paced_sender_, | 
| 682 SendPacket(RtpPacketSender::kHighPriority, _, kSeqNum, _, _, _)) | 688 InsertPacket(RtpPacketSender::kHighPriority, _, kSeqNum, _, _, _)) | 
| 683 .WillOnce(testing::Return(false)); | 689 .WillRepeatedly(testing::Return()); | 
| 684 | 690 | 
| 685 const int kStoredTimeInMs = 100; | 691 const int kStoredTimeInMs = 100; | 
| 686 fake_clock_.AdvanceTimeMilliseconds(kStoredTimeInMs); | 692 fake_clock_.AdvanceTimeMilliseconds(kStoredTimeInMs); | 
| 687 | 693 | 
| 688 EXPECT_EQ(rtp_length_int, rtp_sender_->ReSendPacket(kSeqNum)); | 694 EXPECT_EQ(rtp_length_int, rtp_sender_->ReSendPacket(kSeqNum)); | 
| 689 EXPECT_EQ(0, transport_.packets_sent_); | 695 EXPECT_EQ(0, transport_.packets_sent_); | 
| 690 | 696 | 
| 691 rtp_sender_->TimeToSendPacket(kSeqNum, capture_time_ms, false); | 697 rtp_sender_->TimeToSendPacket(kSeqNum, capture_time_ms, false); | 
| 692 | 698 | 
| 693 // Process send bucket. Packet should now be sent. | 699 // Process send bucket. Packet should now be sent. | 
| (...skipping 15 matching lines...) Expand all Loading... | |
| 709 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); | 715 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); | 
| 710 uint64_t expected_send_time = | 716 uint64_t expected_send_time = | 
| 711 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); | 717 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); | 
| 712 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); | 718 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); | 
| 713 } | 719 } | 
| 714 | 720 | 
| 715 // This test sends 1 regular video packet, then 4 padding packets, and then | 721 // This test sends 1 regular video packet, then 4 padding packets, and then | 
| 716 // 1 more regular packet. | 722 // 1 more regular packet. | 
| 717 TEST_F(RtpSenderTest, SendPadding) { | 723 TEST_F(RtpSenderTest, SendPadding) { | 
| 718 // Make all (non-padding) packets go to send queue. | 724 // Make all (non-padding) packets go to send queue. | 
| 725 SetUpWithPacer(); | |
| 719 EXPECT_CALL(mock_paced_sender_, | 726 EXPECT_CALL(mock_paced_sender_, | 
| 720 SendPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _)) | 727 InsertPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _)) | 
| 721 .WillRepeatedly(testing::Return(false)); | 728 .WillRepeatedly(testing::Return()); | 
| 722 | 729 | 
| 723 uint16_t seq_num = kSeqNum; | 730 uint16_t seq_num = kSeqNum; | 
| 724 uint32_t timestamp = kTimestamp; | 731 uint32_t timestamp = kTimestamp; | 
| 725 rtp_sender_->SetStorePacketsStatus(true, 10); | 732 rtp_sender_->SetStorePacketsStatus(true, 10); | 
| 726 size_t rtp_header_len = kRtpHeaderSize; | 733 size_t rtp_header_len = kRtpHeaderSize; | 
| 727 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 734 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 
| 728 kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId)); | 735 kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId)); | 
| 729 rtp_header_len += 4; // 4 bytes extension. | 736 rtp_header_len += 4; // 4 bytes extension. | 
| 730 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 737 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 
| 731 kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId)); | 738 kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId)); | 
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 830 | 837 | 
| 831 TEST_F(RtpSenderTest, SendRedundantPayloads) { | 838 TEST_F(RtpSenderTest, SendRedundantPayloads) { | 
| 832 MockTransport transport; | 839 MockTransport transport; | 
| 833 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport, nullptr, | 840 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport, nullptr, | 
| 834 &mock_paced_sender_, nullptr, nullptr, | 841 &mock_paced_sender_, nullptr, nullptr, | 
| 835 nullptr, nullptr, nullptr)); | 842 nullptr, nullptr, nullptr)); | 
| 836 rtp_sender_->SetSequenceNumber(kSeqNum); | 843 rtp_sender_->SetSequenceNumber(kSeqNum); | 
| 837 rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload); | 844 rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload); | 
| 838 // Make all packets go through the pacer. | 845 // Make all packets go through the pacer. | 
| 839 EXPECT_CALL(mock_paced_sender_, | 846 EXPECT_CALL(mock_paced_sender_, | 
| 840 SendPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _)) | 847 InsertPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _)) | 
| 841 .WillRepeatedly(testing::Return(false)); | 848 .WillRepeatedly(testing::Return()); | 
| 842 | 849 | 
| 843 uint16_t seq_num = kSeqNum; | 850 uint16_t seq_num = kSeqNum; | 
| 844 rtp_sender_->SetStorePacketsStatus(true, 10); | 851 rtp_sender_->SetStorePacketsStatus(true, 10); | 
| 845 int32_t rtp_header_len = kRtpHeaderSize; | 852 int32_t rtp_header_len = kRtpHeaderSize; | 
| 846 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 853 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 
| 847 kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId)); | 854 kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId)); | 
| 848 rtp_header_len += 4; // 4 bytes extension. | 855 rtp_header_len += 4; // 4 bytes extension. | 
| 849 rtp_header_len += 4; // 4 extra bytes common to all extension headers. | 856 rtp_header_len += 4; // 4 extra bytes common to all extension headers. | 
| 850 | 857 | 
| 851 rtp_sender_->SetRtxStatus(kRtxRetransmitted | kRtxRedundantPayloads); | 858 rtp_sender_->SetRtxStatus(kRtxRetransmitted | kRtxRedundantPayloads); | 
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1010 total_stats_ = total_stats; | 1017 total_stats_ = total_stats; | 
| 1011 retransmit_stats_ = retransmit_stats; | 1018 retransmit_stats_ = retransmit_stats; | 
| 1012 } | 1019 } | 
| 1013 | 1020 | 
| 1014 uint32_t num_calls_; | 1021 uint32_t num_calls_; | 
| 1015 uint32_t ssrc_; | 1022 uint32_t ssrc_; | 
| 1016 BitrateStatistics total_stats_; | 1023 BitrateStatistics total_stats_; | 
| 1017 BitrateStatistics retransmit_stats_; | 1024 BitrateStatistics retransmit_stats_; | 
| 1018 } callback; | 1025 } callback; | 
| 1019 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, | 1026 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, | 
| 1020 &mock_paced_sender_, nullptr, nullptr, | 1027 nullptr, nullptr, nullptr, &callback, nullptr, | 
| 1021 &callback, nullptr, nullptr)); | 1028 nullptr)); | 
| 1022 | 1029 | 
| 1023 // Simulate kNumPackets sent with kPacketInterval ms intervals. | 1030 // Simulate kNumPackets sent with kPacketInterval ms intervals. | 
| 1024 const uint32_t kNumPackets = 15; | 1031 const uint32_t kNumPackets = 15; | 
| 1025 const uint32_t kPacketInterval = 20; | 1032 const uint32_t kPacketInterval = 20; | 
| 1026 // Overhead = 12 bytes RTP header + 1 byte generic header. | 1033 // Overhead = 12 bytes RTP header + 1 byte generic header. | 
| 1027 const uint32_t kPacketOverhead = 13; | 1034 const uint32_t kPacketOverhead = 13; | 
| 1028 | 1035 | 
| 1029 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; | 1036 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; | 
| 1030 const uint8_t payload_type = 127; | 1037 const uint8_t payload_type = 127; | 
| 1031 ASSERT_EQ( | 1038 ASSERT_EQ( | 
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1069 rtp_sender_.reset(); | 1076 rtp_sender_.reset(); | 
| 1070 } | 1077 } | 
| 1071 | 1078 | 
| 1072 class RtpSenderAudioTest : public RtpSenderTest { | 1079 class RtpSenderAudioTest : public RtpSenderTest { | 
| 1073 protected: | 1080 protected: | 
| 1074 RtpSenderAudioTest() {} | 1081 RtpSenderAudioTest() {} | 
| 1075 | 1082 | 
| 1076 void SetUp() override { | 1083 void SetUp() override { | 
| 1077 payload_ = kAudioPayload; | 1084 payload_ = kAudioPayload; | 
| 1078 rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr, | 1085 rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr, | 
| 1079 &mock_paced_sender_, nullptr, nullptr, | 1086 nullptr, nullptr, nullptr, nullptr, nullptr, | 
| 1080 nullptr, nullptr, nullptr)); | 1087 nullptr)); | 
| 1081 rtp_sender_->SetSequenceNumber(kSeqNum); | 1088 rtp_sender_->SetSequenceNumber(kSeqNum); | 
| 1082 } | 1089 } | 
| 1083 }; | 1090 }; | 
| 1084 | 1091 | 
| 1085 TEST_F(RtpSenderTest, StreamDataCountersCallbacks) { | 1092 TEST_F(RtpSenderTest, StreamDataCountersCallbacks) { | 
| 1086 class TestCallback : public StreamDataCountersCallback { | 1093 class TestCallback : public StreamDataCountersCallback { | 
| 1087 public: | 1094 public: | 
| 1088 TestCallback() | 1095 TestCallback() | 
| 1089 : StreamDataCountersCallback(), ssrc_(0), counters_() {} | 1096 : StreamDataCountersCallback(), ssrc_(0), counters_() {} | 
| 1090 virtual ~TestCallback() {} | 1097 virtual ~TestCallback() {} | 
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1405 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), | 1412 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), | 
| 1406 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); | 1413 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); | 
| 1407 | 1414 | 
| 1408 // Verify that this packet does have CVO byte. | 1415 // Verify that this packet does have CVO byte. | 
| 1409 VerifyCVOPacket( | 1416 VerifyCVOPacket( | 
| 1410 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), | 1417 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), | 
| 1411 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, | 1418 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, | 
| 1412 hdr.rotation); | 1419 hdr.rotation); | 
| 1413 } | 1420 } | 
| 1414 } // namespace webrtc | 1421 } // namespace webrtc | 
| OLD | NEW |