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

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

Issue 1335353005: Remove channel ids from various interfaces. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 3 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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 public: 71 public:
72 LoopbackTransportTest() 72 LoopbackTransportTest()
73 : packets_sent_(0), 73 : packets_sent_(0),
74 last_sent_packet_len_(0), 74 last_sent_packet_len_(0),
75 total_bytes_sent_(0), 75 total_bytes_sent_(0),
76 last_sent_packet_(nullptr) {} 76 last_sent_packet_(nullptr) {}
77 77
78 ~LoopbackTransportTest() { 78 ~LoopbackTransportTest() {
79 STLDeleteContainerPointers(sent_packets_.begin(), sent_packets_.end()); 79 STLDeleteContainerPointers(sent_packets_.begin(), sent_packets_.end());
80 } 80 }
81 int SendPacket(int channel, const void *data, size_t len) override { 81 int SendPacket(const void *data, size_t len) override {
82 packets_sent_++; 82 packets_sent_++;
83 rtc::Buffer* buffer = 83 rtc::Buffer* buffer =
84 new rtc::Buffer(reinterpret_cast<const uint8_t*>(data), len); 84 new rtc::Buffer(reinterpret_cast<const uint8_t*>(data), len);
85 last_sent_packet_ = buffer->data(); 85 last_sent_packet_ = buffer->data();
86 last_sent_packet_len_ = len; 86 last_sent_packet_len_ = len;
87 total_bytes_sent_ += len; 87 total_bytes_sent_ += len;
88 sent_packets_.push_back(buffer); 88 sent_packets_.push_back(buffer);
89 return static_cast<int>(len); 89 return static_cast<int>(len);
90 } 90 }
91 int SendRTCPPacket(int channel, const void* data, size_t len) override { 91 int SendRTCPPacket(const void* data, size_t len) override {
92 return -1; 92 return -1;
93 } 93 }
94 int packets_sent_; 94 int packets_sent_;
95 size_t last_sent_packet_len_; 95 size_t last_sent_packet_len_;
96 size_t total_bytes_sent_; 96 size_t total_bytes_sent_;
97 uint8_t* last_sent_packet_; 97 uint8_t* last_sent_packet_;
98 std::vector<rtc::Buffer*> sent_packets_; 98 std::vector<rtc::Buffer*> sent_packets_;
99 }; 99 };
100 100
101 } // namespace 101 } // namespace
102 102
103 class RtpSenderTest : public ::testing::Test { 103 class RtpSenderTest : public ::testing::Test {
104 protected: 104 protected:
105 RtpSenderTest() 105 RtpSenderTest()
106 : fake_clock_(kStartTime), 106 : fake_clock_(kStartTime),
107 mock_paced_sender_(), 107 mock_paced_sender_(),
108 rtp_sender_(), 108 rtp_sender_(),
109 payload_(kPayload), 109 payload_(kPayload),
110 transport_(), 110 transport_(),
111 kMarkerBit(true) { 111 kMarkerBit(true) {
112 EXPECT_CALL(mock_paced_sender_, 112 EXPECT_CALL(mock_paced_sender_,
113 SendPacket(_, _, _, _, _, _)).WillRepeatedly(testing::Return(true)); 113 SendPacket(_, _, _, _, _, _)).WillRepeatedly(testing::Return(true));
114 } 114 }
115 115
116 void SetUp() override { 116 void SetUp() override {
117 rtp_sender_.reset(new RTPSender(0, false, &fake_clock_, &transport_, 117 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
118 nullptr, &mock_paced_sender_, nullptr, 118 &mock_paced_sender_, nullptr, nullptr,
119 nullptr, nullptr, nullptr, nullptr)); 119 nullptr, nullptr, nullptr));
120 rtp_sender_->SetSequenceNumber(kSeqNum); 120 rtp_sender_->SetSequenceNumber(kSeqNum);
121 } 121 }
122 122
123 SimulatedClock fake_clock_; 123 SimulatedClock fake_clock_;
124 MockPacedSender mock_paced_sender_; 124 MockPacedSender mock_paced_sender_;
125 rtc::scoped_ptr<RTPSender> rtp_sender_; 125 rtc::scoped_ptr<RTPSender> rtp_sender_;
126 int payload_; 126 int payload_;
127 LoopbackTransportTest transport_; 127 LoopbackTransportTest transport_;
128 const bool kMarkerBit; 128 const bool kMarkerBit;
129 uint8_t packet_[kMaxPacketLength]; 129 uint8_t packet_[kMaxPacketLength];
(...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 EXPECT_EQ(timestamp, rtp_header.timestamp); 819 EXPECT_EQ(timestamp, rtp_header.timestamp);
820 // Verify transmission time offset. This packet is sent without delay. 820 // Verify transmission time offset. This packet is sent without delay.
821 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset); 821 EXPECT_EQ(0, rtp_header.extension.transmissionTimeOffset);
822 uint64_t expected_send_time = 822 uint64_t expected_send_time =
823 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); 823 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds());
824 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); 824 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime);
825 } 825 }
826 826
827 TEST_F(RtpSenderTest, SendRedundantPayloads) { 827 TEST_F(RtpSenderTest, SendRedundantPayloads) {
828 MockTransport transport; 828 MockTransport transport;
829 rtp_sender_.reset(new RTPSender(0, false, &fake_clock_, &transport, nullptr, 829 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport, nullptr,
830 &mock_paced_sender_, nullptr, nullptr, 830 &mock_paced_sender_, nullptr, nullptr,
831 nullptr, nullptr, nullptr)); 831 nullptr, nullptr, nullptr));
832 rtp_sender_->SetSequenceNumber(kSeqNum); 832 rtp_sender_->SetSequenceNumber(kSeqNum);
833 rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload); 833 rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload);
834 // Make all packets go through the pacer. 834 // Make all packets go through the pacer.
835 EXPECT_CALL(mock_paced_sender_, 835 EXPECT_CALL(mock_paced_sender_,
836 SendPacket(PacedSender::kNormalPriority, _, _, _, _, _)). 836 SendPacket(PacedSender::kNormalPriority, _, _, _, _, _)).
837 WillRepeatedly(testing::Return(false)); 837 WillRepeatedly(testing::Return(false));
838 838
839 uint16_t seq_num = kSeqNum; 839 uint16_t seq_num = kSeqNum;
(...skipping 15 matching lines...) Expand all
855 kTransmissionTimeOffsetExtensionId); 855 kTransmissionTimeOffsetExtensionId);
856 rtp_parser->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, 856 rtp_parser->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
857 kAbsoluteSendTimeExtensionId); 857 kAbsoluteSendTimeExtensionId);
858 rtp_sender_->SetTargetBitrate(300000); 858 rtp_sender_->SetTargetBitrate(300000);
859 const size_t kNumPayloadSizes = 10; 859 const size_t kNumPayloadSizes = 10;
860 const size_t kPayloadSizes[kNumPayloadSizes] = {500, 550, 600, 650, 700, 750, 860 const size_t kPayloadSizes[kNumPayloadSizes] = {500, 550, 600, 650, 700, 750,
861 800, 850, 900, 950}; 861 800, 850, 900, 950};
862 // Send 10 packets of increasing size. 862 // Send 10 packets of increasing size.
863 for (size_t i = 0; i < kNumPayloadSizes; ++i) { 863 for (size_t i = 0; i < kNumPayloadSizes; ++i) {
864 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); 864 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds();
865 EXPECT_CALL(transport, SendPacket(_, _, _)) 865 EXPECT_CALL(transport, SendPacket(_, _)).WillOnce(testing::ReturnArg<1>());
866 .WillOnce(testing::ReturnArg<2>());
867 SendPacket(capture_time_ms, kPayloadSizes[i]); 866 SendPacket(capture_time_ms, kPayloadSizes[i]);
868 rtp_sender_->TimeToSendPacket(seq_num++, capture_time_ms, false); 867 rtp_sender_->TimeToSendPacket(seq_num++, capture_time_ms, false);
869 fake_clock_.AdvanceTimeMilliseconds(33); 868 fake_clock_.AdvanceTimeMilliseconds(33);
870 } 869 }
871 // The amount of padding to send it too small to send a payload packet. 870 // The amount of padding to send it too small to send a payload packet.
872 EXPECT_CALL(transport, 871 EXPECT_CALL(transport, SendPacket(_, kMaxPaddingSize + rtp_header_len))
873 SendPacket(_, _, kMaxPaddingSize + rtp_header_len)) 872 .WillOnce(testing::ReturnArg<1>());
874 .WillOnce(testing::ReturnArg<2>());
875 EXPECT_EQ(kMaxPaddingSize, rtp_sender_->TimeToSendPadding(49)); 873 EXPECT_EQ(kMaxPaddingSize, rtp_sender_->TimeToSendPadding(49));
876 874
877 EXPECT_CALL(transport, SendPacket(_, _, kPayloadSizes[0] + 875 EXPECT_CALL(transport,
878 rtp_header_len + kRtxHeaderSize)) 876 SendPacket(_, kPayloadSizes[0] + rtp_header_len + kRtxHeaderSize))
879 .WillOnce(testing::ReturnArg<2>()); 877 .WillOnce(testing::ReturnArg<1>());
880 EXPECT_EQ(kPayloadSizes[0], rtp_sender_->TimeToSendPadding(500)); 878 EXPECT_EQ(kPayloadSizes[0], rtp_sender_->TimeToSendPadding(500));
881 879
882 EXPECT_CALL(transport, SendPacket(_, _, kPayloadSizes[kNumPayloadSizes - 1] + 880 EXPECT_CALL(transport, SendPacket(_, kPayloadSizes[kNumPayloadSizes - 1] +
883 rtp_header_len + kRtxHeaderSize)) 881 rtp_header_len + kRtxHeaderSize))
884 .WillOnce(testing::ReturnArg<2>()); 882 .WillOnce(testing::ReturnArg<1>());
885 EXPECT_CALL(transport, SendPacket(_, _, kMaxPaddingSize + rtp_header_len)) 883 EXPECT_CALL(transport, SendPacket(_, kMaxPaddingSize + rtp_header_len))
886 .WillOnce(testing::ReturnArg<2>()); 884 .WillOnce(testing::ReturnArg<1>());
887 EXPECT_EQ(kPayloadSizes[kNumPayloadSizes - 1] + kMaxPaddingSize, 885 EXPECT_EQ(kPayloadSizes[kNumPayloadSizes - 1] + kMaxPaddingSize,
888 rtp_sender_->TimeToSendPadding(999)); 886 rtp_sender_->TimeToSendPadding(999));
889 } 887 }
890 888
891 TEST_F(RtpSenderTest, SendGenericVideo) { 889 TEST_F(RtpSenderTest, SendGenericVideo) {
892 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; 890 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
893 const uint8_t payload_type = 127; 891 const uint8_t payload_type = 127;
894 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, 892 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000,
895 0, 1500)); 893 0, 1500));
896 uint8_t payload[] = {47, 11, 32, 93, 89}; 894 uint8_t payload[] = {47, 11, 32, 93, 89};
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 ++num_calls_; 951 ++num_calls_;
954 ssrc_ = ssrc; 952 ssrc_ = ssrc;
955 frame_counts_ = frame_counts; 953 frame_counts_ = frame_counts;
956 } 954 }
957 955
958 uint32_t num_calls_; 956 uint32_t num_calls_;
959 uint32_t ssrc_; 957 uint32_t ssrc_;
960 FrameCounts frame_counts_; 958 FrameCounts frame_counts_;
961 } callback; 959 } callback;
962 960
963 rtp_sender_.reset(new RTPSender(0, false, &fake_clock_, &transport_, nullptr, 961 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
964 &mock_paced_sender_, nullptr, nullptr, 962 &mock_paced_sender_, nullptr, nullptr,
965 nullptr, &callback, nullptr)); 963 nullptr, &callback, nullptr));
966 964
967 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; 965 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
968 const uint8_t payload_type = 127; 966 const uint8_t payload_type = 127;
969 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, 967 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000,
970 0, 1500)); 968 0, 1500));
971 uint8_t payload[] = {47, 11, 32, 93, 89}; 969 uint8_t payload[] = {47, 11, 32, 93, 89};
972 rtp_sender_->SetStorePacketsStatus(true, 1); 970 rtp_sender_->SetStorePacketsStatus(true, 1);
973 uint32_t ssrc = rtp_sender_->SSRC(); 971 uint32_t ssrc = rtp_sender_->SSRC();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1006 ssrc_ = ssrc; 1004 ssrc_ = ssrc;
1007 total_stats_ = total_stats; 1005 total_stats_ = total_stats;
1008 retransmit_stats_ = retransmit_stats; 1006 retransmit_stats_ = retransmit_stats;
1009 } 1007 }
1010 1008
1011 uint32_t num_calls_; 1009 uint32_t num_calls_;
1012 uint32_t ssrc_; 1010 uint32_t ssrc_;
1013 BitrateStatistics total_stats_; 1011 BitrateStatistics total_stats_;
1014 BitrateStatistics retransmit_stats_; 1012 BitrateStatistics retransmit_stats_;
1015 } callback; 1013 } callback;
1016 rtp_sender_.reset(new RTPSender(0, false, &fake_clock_, &transport_, nullptr, 1014 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
1017 &mock_paced_sender_, nullptr, nullptr, 1015 &mock_paced_sender_, nullptr, nullptr,
1018 &callback, nullptr, nullptr)); 1016 &callback, nullptr, nullptr));
1019 1017
1020 // Simulate kNumPackets sent with kPacketInterval ms intervals. 1018 // Simulate kNumPackets sent with kPacketInterval ms intervals.
1021 const uint32_t kNumPackets = 15; 1019 const uint32_t kNumPackets = 15;
1022 const uint32_t kPacketInterval = 20; 1020 const uint32_t kPacketInterval = 20;
1023 // Overhead = 12 bytes RTP header + 1 byte generic header. 1021 // Overhead = 12 bytes RTP header + 1 byte generic header.
1024 const uint32_t kPacketOverhead = 13; 1022 const uint32_t kPacketOverhead = 13;
1025 1023
1026 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; 1024 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1065 1063
1066 rtp_sender_.reset(); 1064 rtp_sender_.reset();
1067 } 1065 }
1068 1066
1069 class RtpSenderAudioTest : public RtpSenderTest { 1067 class RtpSenderAudioTest : public RtpSenderTest {
1070 protected: 1068 protected:
1071 RtpSenderAudioTest() {} 1069 RtpSenderAudioTest() {}
1072 1070
1073 void SetUp() override { 1071 void SetUp() override {
1074 payload_ = kAudioPayload; 1072 payload_ = kAudioPayload;
1075 rtp_sender_.reset(new RTPSender(0, true, &fake_clock_, &transport_, nullptr, 1073 rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr,
1076 &mock_paced_sender_, nullptr, nullptr, 1074 &mock_paced_sender_, nullptr, nullptr,
1077 nullptr, nullptr, nullptr)); 1075 nullptr, nullptr, nullptr));
1078 rtp_sender_->SetSequenceNumber(kSeqNum); 1076 rtp_sender_->SetSequenceNumber(kSeqNum);
1079 } 1077 }
1080 }; 1078 };
1081 1079
1082 TEST_F(RtpSenderTest, StreamDataCountersCallbacks) { 1080 TEST_F(RtpSenderTest, StreamDataCountersCallbacks) {
1083 class TestCallback : public StreamDataCountersCallback { 1081 class TestCallback : public StreamDataCountersCallback {
1084 public: 1082 public:
1085 TestCallback() 1083 TestCallback()
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
1373 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()), 1371 reinterpret_cast<uint8_t*>(transport_.sent_packets_[0]->data()),
1374 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation); 1372 transport_.sent_packets_[0]->size(), true, &map, kSeqNum, hdr.rotation);
1375 1373
1376 // Verify that this packet does have CVO byte. 1374 // Verify that this packet does have CVO byte.
1377 VerifyCVOPacket( 1375 VerifyCVOPacket(
1378 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()), 1376 reinterpret_cast<uint8_t*>(transport_.sent_packets_[1]->data()),
1379 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1, 1377 transport_.sent_packets_[1]->size(), true, &map, kSeqNum + 1,
1380 hdr.rotation); 1378 hdr.rotation);
1381 } 1379 }
1382 } // namespace webrtc 1380 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc ('k') | webrtc/modules/rtp_rtcp/test/testAPI/test_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698