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 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |