Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc

Issue 1392513002: Disable pacer disabling. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698