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

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

Issue 1478253002: Add histogram stats for send delay for a sent video stream. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years 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 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 kMarkerBit(true) { 127 kMarkerBit(true) {
128 EXPECT_CALL(mock_paced_sender_, InsertPacket(_, _, _, _, _, _)) 128 EXPECT_CALL(mock_paced_sender_, InsertPacket(_, _, _, _, _, _))
129 .WillRepeatedly(testing::Return()); 129 .WillRepeatedly(testing::Return());
130 } 130 }
131 131
132 void SetUp() override { SetUpRtpSender(true); } 132 void SetUp() override { SetUpRtpSender(true); }
133 133
134 void SetUpRtpSender(bool pacer) { 134 void SetUpRtpSender(bool pacer) {
135 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, 135 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
136 pacer ? &mock_paced_sender_ : nullptr, 136 pacer ? &mock_paced_sender_ : nullptr,
137 nullptr, nullptr, nullptr, nullptr, 137 nullptr, nullptr, nullptr, nullptr, nullptr,
138 nullptr)); 138 nullptr));
139 rtp_sender_->SetSequenceNumber(kSeqNum); 139 rtp_sender_->SetSequenceNumber(kSeqNum);
140 } 140 }
141 141
142 SimulatedClock fake_clock_; 142 SimulatedClock fake_clock_;
143 MockRtpPacketSender mock_paced_sender_; 143 MockRtpPacketSender mock_paced_sender_;
144 rtc::scoped_ptr<RTPSender> rtp_sender_; 144 rtc::scoped_ptr<RTPSender> rtp_sender_;
145 int payload_; 145 int payload_;
146 LoopbackTransportTest transport_; 146 LoopbackTransportTest transport_;
147 const bool kMarkerBit; 147 const bool kMarkerBit;
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset); 840 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset);
841 uint64_t expected_send_time = 841 uint64_t expected_send_time =
842 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); 842 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds());
843 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); 843 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime);
844 } 844 }
845 845
846 TEST_F(RtpSenderTest, SendRedundantPayloads) { 846 TEST_F(RtpSenderTest, SendRedundantPayloads) {
847 MockTransport transport; 847 MockTransport transport;
848 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport, nullptr, 848 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport, nullptr,
849 &mock_paced_sender_, nullptr, nullptr, 849 &mock_paced_sender_, nullptr, nullptr,
850 nullptr, nullptr, nullptr)); 850 nullptr, nullptr, nullptr, nullptr));
851 rtp_sender_->SetSequenceNumber(kSeqNum); 851 rtp_sender_->SetSequenceNumber(kSeqNum);
852 rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload); 852 rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload);
853 // Make all packets go through the pacer. 853 // Make all packets go through the pacer.
854 EXPECT_CALL(mock_paced_sender_, 854 EXPECT_CALL(mock_paced_sender_,
855 InsertPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _)) 855 InsertPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _))
856 .WillRepeatedly(testing::Return()); 856 .WillRepeatedly(testing::Return());
857 857
858 uint16_t seq_num = kSeqNum; 858 uint16_t seq_num = kSeqNum;
859 rtp_sender_->SetStorePacketsStatus(true, 10); 859 rtp_sender_->SetStorePacketsStatus(true, 10);
860 int32_t rtp_header_len = kRtpHeaderSize; 860 int32_t rtp_header_len = kRtpHeaderSize;
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
973 frame_counts_ = frame_counts; 973 frame_counts_ = frame_counts;
974 } 974 }
975 975
976 uint32_t num_calls_; 976 uint32_t num_calls_;
977 uint32_t ssrc_; 977 uint32_t ssrc_;
978 FrameCounts frame_counts_; 978 FrameCounts frame_counts_;
979 } callback; 979 } callback;
980 980
981 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, 981 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
982 &mock_paced_sender_, nullptr, nullptr, 982 &mock_paced_sender_, nullptr, nullptr,
983 nullptr, &callback, nullptr)); 983 nullptr, &callback, nullptr, nullptr));
984 984
985 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; 985 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
986 const uint8_t payload_type = 127; 986 const uint8_t payload_type = 127;
987 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, 987 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000,
988 0, 1500)); 988 0, 1500));
989 uint8_t payload[] = {47, 11, 32, 93, 89}; 989 uint8_t payload[] = {47, 11, 32, 93, 89};
990 rtp_sender_->SetStorePacketsStatus(true, 1); 990 rtp_sender_->SetStorePacketsStatus(true, 1);
991 uint32_t ssrc = rtp_sender_->SSRC(); 991 uint32_t ssrc = rtp_sender_->SSRC();
992 992
993 ASSERT_EQ( 993 ASSERT_EQ(
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1026 retransmit_stats_ = retransmit_stats; 1026 retransmit_stats_ = retransmit_stats;
1027 } 1027 }
1028 1028
1029 uint32_t num_calls_; 1029 uint32_t num_calls_;
1030 uint32_t ssrc_; 1030 uint32_t ssrc_;
1031 BitrateStatistics total_stats_; 1031 BitrateStatistics total_stats_;
1032 BitrateStatistics retransmit_stats_; 1032 BitrateStatistics retransmit_stats_;
1033 } callback; 1033 } callback;
1034 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, 1034 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
1035 nullptr, nullptr, nullptr, &callback, nullptr, 1035 nullptr, nullptr, nullptr, &callback, nullptr,
1036 nullptr)); 1036 nullptr, nullptr));
1037 1037
1038 // Simulate kNumPackets sent with kPacketInterval ms intervals. 1038 // Simulate kNumPackets sent with kPacketInterval ms intervals.
1039 const uint32_t kNumPackets = 15; 1039 const uint32_t kNumPackets = 15;
1040 const uint32_t kPacketInterval = 20; 1040 const uint32_t kPacketInterval = 20;
1041 // Overhead = 12 bytes RTP header + 1 byte generic header. 1041 // Overhead = 12 bytes RTP header + 1 byte generic header.
1042 const uint32_t kPacketOverhead = 13; 1042 const uint32_t kPacketOverhead = 13;
1043 1043
1044 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; 1044 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
1045 const uint8_t payload_type = 127; 1045 const uint8_t payload_type = 127;
1046 ASSERT_EQ( 1046 ASSERT_EQ(
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1085 } 1085 }
1086 1086
1087 class RtpSenderAudioTest : public RtpSenderTest { 1087 class RtpSenderAudioTest : public RtpSenderTest {
1088 protected: 1088 protected:
1089 RtpSenderAudioTest() {} 1089 RtpSenderAudioTest() {}
1090 1090
1091 void SetUp() override { 1091 void SetUp() override {
1092 payload_ = kAudioPayload; 1092 payload_ = kAudioPayload;
1093 rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr, 1093 rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr,
1094 nullptr, nullptr, nullptr, nullptr, nullptr, 1094 nullptr, nullptr, nullptr, nullptr, nullptr,
1095 nullptr)); 1095 nullptr, nullptr));
1096 rtp_sender_->SetSequenceNumber(kSeqNum); 1096 rtp_sender_->SetSequenceNumber(kSeqNum);
1097 } 1097 }
1098 }; 1098 };
1099 1099
1100 TEST_F(RtpSenderTestWithoutPacer, StreamDataCountersCallbacks) { 1100 TEST_F(RtpSenderTestWithoutPacer, StreamDataCountersCallbacks) {
1101 class TestCallback : public StreamDataCountersCallback { 1101 class TestCallback : public StreamDataCountersCallback {
1102 public: 1102 public:
1103 TestCallback() 1103 TestCallback()
1104 : StreamDataCountersCallback(), ssrc_(0), counters_() {} 1104 : StreamDataCountersCallback(), ssrc_(0), counters_() {}
1105 virtual ~TestCallback() {} 1105 virtual ~TestCallback() {}
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
1420 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), 1420 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()),
1421 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); 1421 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation);
1422 1422
1423 // Verify that this packet does have CVO byte. 1423 // Verify that this packet does have CVO byte.
1424 VerifyCVOPacket( 1424 VerifyCVOPacket(
1425 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), 1425 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()),
1426 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, 1426 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1,
1427 hdr.rotation); 1427 hdr.rotation);
1428 } 1428 }
1429 } // namespace webrtc 1429 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698