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

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

Issue 1571283002: Fixes a bug which incorrectly logs incoming RTCP as outgoing. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase Created 4 years, 11 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
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_sender.cc ('k') | webrtc/video/video_send_stream_tests.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
11 /* 11 /*
12 * This file includes unit tests for the RTPSender. 12 * This file includes unit tests for the RTPSender.
13 */ 13 */
14 14
15 #include <list> 15 #include <list>
16 #include <vector> 16 #include <vector>
17 17
18 #include "testing/gmock/include/gmock/gmock.h" 18 #include "testing/gmock/include/gmock/gmock.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 #include "webrtc/base/buffer.h" 20 #include "webrtc/base/buffer.h"
21 #include "webrtc/base/scoped_ptr.h" 21 #include "webrtc/base/scoped_ptr.h"
22 #include "webrtc/call/mock/mock_rtc_event_log.h"
22 #include "webrtc/modules/rtp_rtcp/include/rtp_cvo.h" 23 #include "webrtc/modules/rtp_rtcp/include/rtp_cvo.h"
23 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h" 24 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h"
24 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" 25 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
25 #include "webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h" 26 #include "webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h"
26 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extension.h" 27 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extension.h"
27 #include "webrtc/modules/rtp_rtcp/source/rtp_sender.h" 28 #include "webrtc/modules/rtp_rtcp/source/rtp_sender.h"
28 #include "webrtc/modules/rtp_rtcp/source/rtp_sender_video.h" 29 #include "webrtc/modules/rtp_rtcp/source/rtp_sender_video.h"
29 #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h" 30 #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h"
30 #include "webrtc/system_wrappers/include/stl_util.h" 31 #include "webrtc/system_wrappers/include/stl_util.h"
31 #include "webrtc/test/mock_transport.h" 32 #include "webrtc/test/mock_transport.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 uint16_t sequence_number, 114 uint16_t sequence_number,
114 int64_t capture_time_ms, 115 int64_t capture_time_ms,
115 size_t bytes, 116 size_t bytes,
116 bool retransmission)); 117 bool retransmission));
117 }; 118 };
118 119
119 class RtpSenderTest : public ::testing::Test { 120 class RtpSenderTest : public ::testing::Test {
120 protected: 121 protected:
121 RtpSenderTest() 122 RtpSenderTest()
122 : fake_clock_(kStartTime), 123 : fake_clock_(kStartTime),
124 mock_rtc_event_log_(),
123 mock_paced_sender_(), 125 mock_paced_sender_(),
124 rtp_sender_(), 126 rtp_sender_(),
125 payload_(kPayload), 127 payload_(kPayload),
126 transport_(), 128 transport_(),
127 kMarkerBit(true) { 129 kMarkerBit(true) {
128 } 130 }
129 131
130 void SetUp() override { SetUpRtpSender(true); } 132 void SetUp() override { SetUpRtpSender(true); }
131 133
132 void SetUpRtpSender(bool pacer) { 134 void SetUpRtpSender(bool pacer) {
133 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, 135 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
134 pacer ? &mock_paced_sender_ : nullptr, 136 pacer ? &mock_paced_sender_ : nullptr,
135 nullptr, nullptr, nullptr, nullptr, 137 nullptr, nullptr, nullptr, nullptr, nullptr,
136 nullptr)); 138 &mock_rtc_event_log_));
137 rtp_sender_->SetSequenceNumber(kSeqNum); 139 rtp_sender_->SetSequenceNumber(kSeqNum);
138 } 140 }
139 141
140 SimulatedClock fake_clock_; 142 SimulatedClock fake_clock_;
143 MockRtcEventLog mock_rtc_event_log_;
141 MockRtpPacketSender mock_paced_sender_; 144 MockRtpPacketSender mock_paced_sender_;
142 rtc::scoped_ptr<RTPSender> rtp_sender_; 145 rtc::scoped_ptr<RTPSender> rtp_sender_;
143 int payload_; 146 int payload_;
144 LoopbackTransportTest transport_; 147 LoopbackTransportTest transport_;
145 const bool kMarkerBit; 148 const bool kMarkerBit;
146 uint8_t packet_[kMaxPacketLength]; 149 uint8_t packet_[kMaxPacketLength];
147 150
148 void VerifyRTPHeaderCommon(const RTPHeader& rtp_header) { 151 void VerifyRTPHeaderCommon(const RTPHeader& rtp_header) {
149 VerifyRTPHeaderCommon(rtp_header, kMarkerBit, 0); 152 VerifyRTPHeaderCommon(rtp_header, kMarkerBit, 0);
150 } 153 }
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 EXPECT_EQ(0, rtp_header2.extension.transmissionTimeOffset); 662 EXPECT_EQ(0, rtp_header2.extension.transmissionTimeOffset);
660 EXPECT_EQ(0u, rtp_header2.extension.absoluteSendTime); 663 EXPECT_EQ(0u, rtp_header2.extension.absoluteSendTime);
661 EXPECT_FALSE(rtp_header2.extension.voiceActivity); 664 EXPECT_FALSE(rtp_header2.extension.voiceActivity);
662 EXPECT_EQ(0u, rtp_header2.extension.audioLevel); 665 EXPECT_EQ(0u, rtp_header2.extension.audioLevel);
663 EXPECT_EQ(0u, rtp_header2.extension.transportSequenceNumber); 666 EXPECT_EQ(0u, rtp_header2.extension.transportSequenceNumber);
664 } 667 }
665 668
666 TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) { 669 TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) {
667 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, 670 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority,
668 _, kSeqNum, _, _, _)); 671 _, kSeqNum, _, _, _));
672 EXPECT_CALL(mock_rtc_event_log_,
673 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _));
669 674
670 rtp_sender_->SetStorePacketsStatus(true, 10); 675 rtp_sender_->SetStorePacketsStatus(true, 10);
671 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( 676 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
672 kRtpExtensionTransmissionTimeOffset, 677 kRtpExtensionTransmissionTimeOffset,
673 kTransmissionTimeOffsetExtensionId)); 678 kTransmissionTimeOffsetExtensionId));
674 EXPECT_EQ( 679 EXPECT_EQ(
675 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, 680 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
676 kAbsoluteSendTimeExtensionId)); 681 kAbsoluteSendTimeExtensionId));
677 rtp_sender_->SetTargetBitrate(300000); 682 rtp_sender_->SetTargetBitrate(300000);
678 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); 683 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 // Verify transmission time offset. 715 // Verify transmission time offset.
711 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); 716 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset);
712 uint64_t expected_send_time = 717 uint64_t expected_send_time =
713 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); 718 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds());
714 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); 719 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime);
715 } 720 }
716 721
717 TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) { 722 TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) {
718 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, 723 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority,
719 _, kSeqNum, _, _, _)); 724 _, kSeqNum, _, _, _));
725 EXPECT_CALL(mock_rtc_event_log_,
726 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _));
720 727
721 rtp_sender_->SetStorePacketsStatus(true, 10); 728 rtp_sender_->SetStorePacketsStatus(true, 10);
722 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( 729 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
723 kRtpExtensionTransmissionTimeOffset, 730 kRtpExtensionTransmissionTimeOffset,
724 kTransmissionTimeOffsetExtensionId)); 731 kTransmissionTimeOffsetExtensionId));
725 EXPECT_EQ( 732 EXPECT_EQ(
726 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, 733 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
727 kAbsoluteSendTimeExtensionId)); 734 kAbsoluteSendTimeExtensionId));
728 rtp_sender_->SetTargetBitrate(300000); 735 rtp_sender_->SetTargetBitrate(300000);
729 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); 736 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds();
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); 778 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds());
772 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); 779 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime);
773 } 780 }
774 781
775 // This test sends 1 regular video packet, then 4 padding packets, and then 782 // This test sends 1 regular video packet, then 4 padding packets, and then
776 // 1 more regular packet. 783 // 1 more regular packet.
777 TEST_F(RtpSenderTest, SendPadding) { 784 TEST_F(RtpSenderTest, SendPadding) {
778 // Make all (non-padding) packets go to send queue. 785 // Make all (non-padding) packets go to send queue.
779 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, 786 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority,
780 _, kSeqNum, _, _, _)); 787 _, kSeqNum, _, _, _));
788 EXPECT_CALL(mock_rtc_event_log_,
789 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _))
790 .Times(1 + 4 + 1);
781 791
782 uint16_t seq_num = kSeqNum; 792 uint16_t seq_num = kSeqNum;
783 uint32_t timestamp = kTimestamp; 793 uint32_t timestamp = kTimestamp;
784 rtp_sender_->SetStorePacketsStatus(true, 10); 794 rtp_sender_->SetStorePacketsStatus(true, 10);
785 size_t rtp_header_len = kRtpHeaderSize; 795 size_t rtp_header_len = kRtpHeaderSize;
786 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( 796 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
787 kRtpExtensionTransmissionTimeOffset, 797 kRtpExtensionTransmissionTimeOffset,
788 kTransmissionTimeOffsetExtensionId)); 798 kTransmissionTimeOffsetExtensionId));
789 rtp_header_len += 4; // 4 bytes extension. 799 rtp_header_len += 4; // 4 bytes extension.
790 EXPECT_EQ( 800 EXPECT_EQ(
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
887 EXPECT_EQ(timestamp, rtp_header.timestamp); 897 EXPECT_EQ(timestamp, rtp_header.timestamp);
888 // Verify transmission time offset. This packet is sent without delay. 898 // Verify transmission time offset. This packet is sent without delay.
889 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset); 899 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset);
890 uint64_t expected_send_time = 900 uint64_t expected_send_time =
891 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); 901 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds());
892 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); 902 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime);
893 } 903 }
894 904
895 TEST_F(RtpSenderTest, SendRedundantPayloads) { 905 TEST_F(RtpSenderTest, SendRedundantPayloads) {
896 MockTransport transport; 906 MockTransport transport;
897 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport, nullptr, 907 rtp_sender_.reset(new RTPSender(
898 &mock_paced_sender_, nullptr, nullptr, 908 false, &fake_clock_, &transport, nullptr, &mock_paced_sender_, nullptr,
899 nullptr, nullptr, nullptr)); 909 nullptr, nullptr, nullptr, nullptr, &mock_rtc_event_log_));
900 rtp_sender_->SetSequenceNumber(kSeqNum); 910 rtp_sender_->SetSequenceNumber(kSeqNum);
901 rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload); 911 rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload);
902 912
903 uint16_t seq_num = kSeqNum; 913 uint16_t seq_num = kSeqNum;
904 rtp_sender_->SetStorePacketsStatus(true, 10); 914 rtp_sender_->SetStorePacketsStatus(true, 10);
905 int32_t rtp_header_len = kRtpHeaderSize; 915 int32_t rtp_header_len = kRtpHeaderSize;
906 EXPECT_EQ( 916 EXPECT_EQ(
907 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, 917 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
908 kAbsoluteSendTimeExtensionId)); 918 kAbsoluteSendTimeExtensionId));
909 rtp_header_len += 4; // 4 bytes extension. 919 rtp_header_len += 4; // 4 bytes extension.
(...skipping 11 matching lines...) Expand all
921 rtp_parser->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, 931 rtp_parser->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
922 kAbsoluteSendTimeExtensionId); 932 kAbsoluteSendTimeExtensionId);
923 rtp_sender_->SetTargetBitrate(300000); 933 rtp_sender_->SetTargetBitrate(300000);
924 const size_t kNumPayloadSizes = 10; 934 const size_t kNumPayloadSizes = 10;
925 const size_t kPayloadSizes[kNumPayloadSizes] = {500, 550, 600, 650, 700, 935 const size_t kPayloadSizes[kNumPayloadSizes] = {500, 550, 600, 650, 700,
926 750, 800, 850, 900, 950}; 936 750, 800, 850, 900, 950};
927 // Expect all packets go through the pacer. 937 // Expect all packets go through the pacer.
928 EXPECT_CALL(mock_paced_sender_, 938 EXPECT_CALL(mock_paced_sender_,
929 InsertPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _)) 939 InsertPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _))
930 .Times(kNumPayloadSizes); 940 .Times(kNumPayloadSizes);
941 EXPECT_CALL(mock_rtc_event_log_,
942 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _))
943 .Times(kNumPayloadSizes);
944
931 // Send 10 packets of increasing size. 945 // Send 10 packets of increasing size.
932 for (size_t i = 0; i < kNumPayloadSizes; ++i) { 946 for (size_t i = 0; i < kNumPayloadSizes; ++i) {
933 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); 947 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds();
934 EXPECT_CALL(transport, SendRtp(_, _, _)).WillOnce(testing::Return(true)); 948 EXPECT_CALL(transport, SendRtp(_, _, _)).WillOnce(testing::Return(true));
935 SendPacket(capture_time_ms, kPayloadSizes[i]); 949 SendPacket(capture_time_ms, kPayloadSizes[i]);
936 rtp_sender_->TimeToSendPacket(seq_num++, capture_time_ms, false); 950 rtp_sender_->TimeToSendPacket(seq_num++, capture_time_ms, false);
937 fake_clock_.AdvanceTimeMilliseconds(33); 951 fake_clock_.AdvanceTimeMilliseconds(33);
938 } 952 }
953
954 EXPECT_CALL(mock_rtc_event_log_,
955 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _))
956 .Times(::testing::AtLeast(4));
957
939 // The amount of padding to send it too small to send a payload packet. 958 // The amount of padding to send it too small to send a payload packet.
940 EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _)) 959 EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _))
941 .WillOnce(testing::Return(true)); 960 .WillOnce(testing::Return(true));
942 EXPECT_EQ(kMaxPaddingSize, rtp_sender_->TimeToSendPadding(49)); 961 EXPECT_EQ(kMaxPaddingSize, rtp_sender_->TimeToSendPadding(49));
943 962
944 EXPECT_CALL(transport, 963 EXPECT_CALL(transport,
945 SendRtp(_, kPayloadSizes[0] + rtp_header_len + kRtxHeaderSize, _)) 964 SendRtp(_, kPayloadSizes[0] + rtp_header_len + kRtxHeaderSize, _))
946 .WillOnce(testing::Return(true)); 965 .WillOnce(testing::Return(true));
947 EXPECT_EQ(kPayloadSizes[0], rtp_sender_->TimeToSendPadding(500)); 966 EXPECT_EQ(kPayloadSizes[0], rtp_sender_->TimeToSendPadding(500));
948 967
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1023 frame_counts_ = frame_counts; 1042 frame_counts_ = frame_counts;
1024 } 1043 }
1025 1044
1026 uint32_t num_calls_; 1045 uint32_t num_calls_;
1027 uint32_t ssrc_; 1046 uint32_t ssrc_;
1028 FrameCounts frame_counts_; 1047 FrameCounts frame_counts_;
1029 } callback; 1048 } callback;
1030 1049
1031 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, 1050 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
1032 &mock_paced_sender_, nullptr, nullptr, 1051 &mock_paced_sender_, nullptr, nullptr,
1033 nullptr, &callback, nullptr)); 1052 nullptr, &callback, nullptr, nullptr));
1034 1053
1035 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; 1054 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
1036 const uint8_t payload_type = 127; 1055 const uint8_t payload_type = 127;
1037 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, 1056 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000,
1038 0, 1500)); 1057 0, 1500));
1039 uint8_t payload[] = {47, 11, 32, 93, 89}; 1058 uint8_t payload[] = {47, 11, 32, 93, 89};
1040 rtp_sender_->SetStorePacketsStatus(true, 1); 1059 rtp_sender_->SetStorePacketsStatus(true, 1);
1041 uint32_t ssrc = rtp_sender_->SSRC(); 1060 uint32_t ssrc = rtp_sender_->SSRC();
1042 1061
1043 EXPECT_CALL(mock_paced_sender_, InsertPacket(_, _, _, _, _, _)) 1062 EXPECT_CALL(mock_paced_sender_, InsertPacket(_, _, _, _, _, _))
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 retransmit_stats_ = retransmit_stats; 1098 retransmit_stats_ = retransmit_stats;
1080 } 1099 }
1081 1100
1082 uint32_t num_calls_; 1101 uint32_t num_calls_;
1083 uint32_t ssrc_; 1102 uint32_t ssrc_;
1084 BitrateStatistics total_stats_; 1103 BitrateStatistics total_stats_;
1085 BitrateStatistics retransmit_stats_; 1104 BitrateStatistics retransmit_stats_;
1086 } callback; 1105 } callback;
1087 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, 1106 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
1088 nullptr, nullptr, nullptr, &callback, nullptr, 1107 nullptr, nullptr, nullptr, &callback, nullptr,
1089 nullptr)); 1108 nullptr, nullptr));
1090 1109
1091 // Simulate kNumPackets sent with kPacketInterval ms intervals. 1110 // Simulate kNumPackets sent with kPacketInterval ms intervals.
1092 const uint32_t kNumPackets = 15; 1111 const uint32_t kNumPackets = 15;
1093 const uint32_t kPacketInterval = 20; 1112 const uint32_t kPacketInterval = 20;
1094 // Overhead = 12 bytes RTP header + 1 byte generic header. 1113 // Overhead = 12 bytes RTP header + 1 byte generic header.
1095 const uint32_t kPacketOverhead = 13; 1114 const uint32_t kPacketOverhead = 13;
1096 1115
1097 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; 1116 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
1098 const uint8_t payload_type = 127; 1117 const uint8_t payload_type = 127;
1099 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, 1118 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1132 } 1151 }
1133 1152
1134 class RtpSenderAudioTest : public RtpSenderTest { 1153 class RtpSenderAudioTest : public RtpSenderTest {
1135 protected: 1154 protected:
1136 RtpSenderAudioTest() {} 1155 RtpSenderAudioTest() {}
1137 1156
1138 void SetUp() override { 1157 void SetUp() override {
1139 payload_ = kAudioPayload; 1158 payload_ = kAudioPayload;
1140 rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr, 1159 rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr,
1141 nullptr, nullptr, nullptr, nullptr, nullptr, 1160 nullptr, nullptr, nullptr, nullptr, nullptr,
1142 nullptr)); 1161 nullptr, nullptr));
1143 rtp_sender_->SetSequenceNumber(kSeqNum); 1162 rtp_sender_->SetSequenceNumber(kSeqNum);
1144 } 1163 }
1145 }; 1164 };
1146 1165
1147 TEST_F(RtpSenderTestWithoutPacer, StreamDataCountersCallbacks) { 1166 TEST_F(RtpSenderTestWithoutPacer, StreamDataCountersCallbacks) {
1148 class TestCallback : public StreamDataCountersCallback { 1167 class TestCallback : public StreamDataCountersCallback {
1149 public: 1168 public:
1150 TestCallback() : StreamDataCountersCallback(), ssrc_(0), counters_() {} 1169 TestCallback() : StreamDataCountersCallback(), ssrc_(0), counters_() {}
1151 virtual ~TestCallback() {} 1170 virtual ~TestCallback() {}
1152 1171
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
1458 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), 1477 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()),
1459 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); 1478 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation);
1460 1479
1461 // Verify that this packet does have CVO byte. 1480 // Verify that this packet does have CVO byte.
1462 VerifyCVOPacket( 1481 VerifyCVOPacket(
1463 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), 1482 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()),
1464 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, 1483 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1,
1465 hdr.rotation); 1484 hdr.rotation);
1466 } 1485 }
1467 } // namespace webrtc 1486 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_sender.cc ('k') | webrtc/video/video_send_stream_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698