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 704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
852 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset); | 852 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset); |
853 uint64_t expected_send_time = | 853 uint64_t expected_send_time = |
854 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); | 854 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); |
855 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); | 855 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); |
856 } | 856 } |
857 | 857 |
858 TEST_F(RtpSenderTest, SendRedundantPayloads) { | 858 TEST_F(RtpSenderTest, SendRedundantPayloads) { |
859 MockTransport transport; | 859 MockTransport transport; |
860 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport, nullptr, | 860 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport, nullptr, |
861 &mock_paced_sender_, nullptr, nullptr, | 861 &mock_paced_sender_, nullptr, nullptr, |
862 nullptr, nullptr, nullptr)); | 862 nullptr, nullptr, nullptr, nullptr)); |
863 rtp_sender_->SetSequenceNumber(kSeqNum); | 863 rtp_sender_->SetSequenceNumber(kSeqNum); |
864 rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload); | 864 rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload); |
865 // Make all packets go through the pacer. | 865 // Make all packets go through the pacer. |
866 EXPECT_CALL(mock_paced_sender_, | 866 EXPECT_CALL(mock_paced_sender_, |
867 InsertPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _)) | 867 InsertPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _)) |
868 .WillRepeatedly(testing::Return()); | 868 .WillRepeatedly(testing::Return()); |
869 | 869 |
870 uint16_t seq_num = kSeqNum; | 870 uint16_t seq_num = kSeqNum; |
871 rtp_sender_->SetStorePacketsStatus(true, 10); | 871 rtp_sender_->SetStorePacketsStatus(true, 10); |
872 int32_t rtp_header_len = kRtpHeaderSize; | 872 int32_t rtp_header_len = kRtpHeaderSize; |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
986 frame_counts_ = frame_counts; | 986 frame_counts_ = frame_counts; |
987 } | 987 } |
988 | 988 |
989 uint32_t num_calls_; | 989 uint32_t num_calls_; |
990 uint32_t ssrc_; | 990 uint32_t ssrc_; |
991 FrameCounts frame_counts_; | 991 FrameCounts frame_counts_; |
992 } callback; | 992 } callback; |
993 | 993 |
994 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, | 994 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, |
995 &mock_paced_sender_, nullptr, nullptr, | 995 &mock_paced_sender_, nullptr, nullptr, |
996 nullptr, &callback, nullptr)); | 996 nullptr, &callback, nullptr, nullptr)); |
997 | 997 |
998 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; | 998 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; |
999 const uint8_t payload_type = 127; | 999 const uint8_t payload_type = 127; |
1000 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, | 1000 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, |
1001 0, 1500)); | 1001 0, 1500)); |
1002 uint8_t payload[] = {47, 11, 32, 93, 89}; | 1002 uint8_t payload[] = {47, 11, 32, 93, 89}; |
1003 rtp_sender_->SetStorePacketsStatus(true, 1); | 1003 rtp_sender_->SetStorePacketsStatus(true, 1); |
1004 uint32_t ssrc = rtp_sender_->SSRC(); | 1004 uint32_t ssrc = rtp_sender_->SSRC(); |
1005 | 1005 |
1006 ASSERT_EQ( | 1006 ASSERT_EQ( |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1039 retransmit_stats_ = retransmit_stats; | 1039 retransmit_stats_ = retransmit_stats; |
1040 } | 1040 } |
1041 | 1041 |
1042 uint32_t num_calls_; | 1042 uint32_t num_calls_; |
1043 uint32_t ssrc_; | 1043 uint32_t ssrc_; |
1044 BitrateStatistics total_stats_; | 1044 BitrateStatistics total_stats_; |
1045 BitrateStatistics retransmit_stats_; | 1045 BitrateStatistics retransmit_stats_; |
1046 } callback; | 1046 } callback; |
1047 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, | 1047 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, |
1048 nullptr, nullptr, nullptr, &callback, nullptr, | 1048 nullptr, nullptr, nullptr, &callback, nullptr, |
1049 nullptr)); | 1049 nullptr, nullptr)); |
1050 | 1050 |
1051 // Simulate kNumPackets sent with kPacketInterval ms intervals. | 1051 // Simulate kNumPackets sent with kPacketInterval ms intervals. |
1052 const uint32_t kNumPackets = 15; | 1052 const uint32_t kNumPackets = 15; |
1053 const uint32_t kPacketInterval = 20; | 1053 const uint32_t kPacketInterval = 20; |
1054 // Overhead = 12 bytes RTP header + 1 byte generic header. | 1054 // Overhead = 12 bytes RTP header + 1 byte generic header. |
1055 const uint32_t kPacketOverhead = 13; | 1055 const uint32_t kPacketOverhead = 13; |
1056 | 1056 |
1057 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; | 1057 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; |
1058 const uint8_t payload_type = 127; | 1058 const uint8_t payload_type = 127; |
1059 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, | 1059 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1092 } | 1092 } |
1093 | 1093 |
1094 class RtpSenderAudioTest : public RtpSenderTest { | 1094 class RtpSenderAudioTest : public RtpSenderTest { |
1095 protected: | 1095 protected: |
1096 RtpSenderAudioTest() {} | 1096 RtpSenderAudioTest() {} |
1097 | 1097 |
1098 void SetUp() override { | 1098 void SetUp() override { |
1099 payload_ = kAudioPayload; | 1099 payload_ = kAudioPayload; |
1100 rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr, | 1100 rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr, |
1101 nullptr, nullptr, nullptr, nullptr, nullptr, | 1101 nullptr, nullptr, nullptr, nullptr, nullptr, |
1102 nullptr)); | 1102 nullptr, nullptr)); |
1103 rtp_sender_->SetSequenceNumber(kSeqNum); | 1103 rtp_sender_->SetSequenceNumber(kSeqNum); |
1104 } | 1104 } |
1105 }; | 1105 }; |
1106 | 1106 |
1107 TEST_F(RtpSenderTestWithoutPacer, StreamDataCountersCallbacks) { | 1107 TEST_F(RtpSenderTestWithoutPacer, StreamDataCountersCallbacks) { |
1108 class TestCallback : public StreamDataCountersCallback { | 1108 class TestCallback : public StreamDataCountersCallback { |
1109 public: | 1109 public: |
1110 TestCallback() : StreamDataCountersCallback(), ssrc_(0), counters_() {} | 1110 TestCallback() : StreamDataCountersCallback(), ssrc_(0), counters_() {} |
1111 virtual ~TestCallback() {} | 1111 virtual ~TestCallback() {} |
1112 | 1112 |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1418 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), | 1418 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), |
1419 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); | 1419 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); |
1420 | 1420 |
1421 // Verify that this packet does have CVO byte. | 1421 // Verify that this packet does have CVO byte. |
1422 VerifyCVOPacket( | 1422 VerifyCVOPacket( |
1423 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), | 1423 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), |
1424 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, | 1424 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, |
1425 hdr.rotation); | 1425 hdr.rotation); |
1426 } | 1426 } |
1427 } // namespace webrtc | 1427 } // namespace webrtc |
OLD | NEW |