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

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

Issue 2702203002: Reland of Delete class SSRCDatabase, and its global ssrc registry. (Closed)
Patch Set: Move SetRtcpReceiverSsrcs call to ModuleRtpRtcpImpl::SetSendingStatus. Update tests to set SSRC ear… Created 3 years, 10 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 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 ASSERT_EQ(1u, transport_.sent_packets_.size()); 336 ASSERT_EQ(1u, transport_.sent_packets_.size());
337 // Verify padding packet timestamp. 337 // Verify padding packet timestamp.
338 EXPECT_EQ(kTimestamp, transport_.last_sent_packet().Timestamp()); 338 EXPECT_EQ(kTimestamp, transport_.last_sent_packet().Timestamp());
339 } 339 }
340 340
341 TEST_F(RtpSenderTestWithoutPacer, SendsPacketsWithTransportSequenceNumber) { 341 TEST_F(RtpSenderTestWithoutPacer, SendsPacketsWithTransportSequenceNumber) {
342 rtp_sender_.reset(new RTPSender( 342 rtp_sender_.reset(new RTPSender(
343 false, &fake_clock_, &transport_, nullptr, nullptr, &seq_num_allocator_, 343 false, &fake_clock_, &transport_, nullptr, nullptr, &seq_num_allocator_,
344 &feedback_observer_, nullptr, nullptr, nullptr, &mock_rtc_event_log_, 344 &feedback_observer_, nullptr, nullptr, nullptr, &mock_rtc_event_log_,
345 &send_packet_observer_, &retransmission_rate_limiter_, nullptr)); 345 &send_packet_observer_, &retransmission_rate_limiter_, nullptr));
346 rtp_sender_->SetSSRC(kSsrc);
346 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( 347 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
347 kRtpExtensionTransportSequenceNumber, 348 kRtpExtensionTransportSequenceNumber,
348 kTransportSequenceNumberExtensionId)); 349 kTransportSequenceNumberExtensionId));
349 350
350 EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber()) 351 EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber())
351 .WillOnce(testing::Return(kTransportSequenceNumber)); 352 .WillOnce(testing::Return(kTransportSequenceNumber));
352 EXPECT_CALL(send_packet_observer_, 353 EXPECT_CALL(send_packet_observer_,
353 OnSendPacket(kTransportSequenceNumber, _, _)) 354 OnSendPacket(kTransportSequenceNumber, _, _))
354 .Times(1); 355 .Times(1);
355 EXPECT_CALL(feedback_observer_, 356 EXPECT_CALL(feedback_observer_,
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 954
954 uint32_t num_calls_; 955 uint32_t num_calls_;
955 uint32_t ssrc_; 956 uint32_t ssrc_;
956 FrameCounts frame_counts_; 957 FrameCounts frame_counts_;
957 } callback; 958 } callback;
958 959
959 rtp_sender_.reset( 960 rtp_sender_.reset(
960 new RTPSender(false, &fake_clock_, &transport_, &mock_paced_sender_, 961 new RTPSender(false, &fake_clock_, &transport_, &mock_paced_sender_,
961 nullptr, nullptr, nullptr, nullptr, &callback, nullptr, 962 nullptr, nullptr, nullptr, nullptr, &callback, nullptr,
962 nullptr, nullptr, &retransmission_rate_limiter_, nullptr)); 963 nullptr, nullptr, &retransmission_rate_limiter_, nullptr));
963 964 rtp_sender_->SetSSRC(kSsrc);
964 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC"; 965 char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
965 const uint8_t payload_type = 127; 966 const uint8_t payload_type = 127;
966 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, 967 ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000,
967 0, 1500)); 968 0, 1500));
968 uint8_t payload[] = {47, 11, 32, 93, 89}; 969 uint8_t payload[] = {47, 11, 32, 93, 89};
969 rtp_sender_->SetStorePacketsStatus(true, 1); 970 rtp_sender_->SetStorePacketsStatus(true, 1);
970 uint32_t ssrc = rtp_sender_->SSRC(); 971 uint32_t ssrc = rtp_sender_->SSRC();
971 972
972 EXPECT_CALL(mock_paced_sender_, InsertPacket(_, _, _, _, _, _)) 973 EXPECT_CALL(mock_paced_sender_, InsertPacket(_, _, _, _, _, _))
973 .Times(::testing::AtLeast(2)); 974 .Times(::testing::AtLeast(2));
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1015 1016
1016 uint32_t num_calls_; 1017 uint32_t num_calls_;
1017 uint32_t ssrc_; 1018 uint32_t ssrc_;
1018 uint32_t total_bitrate_; 1019 uint32_t total_bitrate_;
1019 uint32_t retransmit_bitrate_; 1020 uint32_t retransmit_bitrate_;
1020 } callback; 1021 } callback;
1021 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr, 1022 rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
1022 nullptr, nullptr, nullptr, &callback, nullptr, 1023 nullptr, nullptr, nullptr, &callback, nullptr,
1023 nullptr, nullptr, nullptr, 1024 nullptr, nullptr, nullptr,
1024 &retransmission_rate_limiter_, nullptr)); 1025 &retransmission_rate_limiter_, nullptr));
1026 rtp_sender_->SetSSRC(kSsrc);
1025 1027
1026 // Simulate kNumPackets sent with kPacketInterval ms intervals, with the 1028 // Simulate kNumPackets sent with kPacketInterval ms intervals, with the
1027 // number of packets selected so that we fill (but don't overflow) the one 1029 // number of packets selected so that we fill (but don't overflow) the one
1028 // second averaging window. 1030 // second averaging window.
1029 const uint32_t kWindowSizeMs = 1000; 1031 const uint32_t kWindowSizeMs = 1000;
1030 const uint32_t kPacketInterval = 20; 1032 const uint32_t kPacketInterval = 20;
1031 const uint32_t kNumPackets = 1033 const uint32_t kNumPackets =
1032 (kWindowSizeMs - kPacketInterval) / kPacketInterval; 1034 (kWindowSizeMs - kPacketInterval) / kPacketInterval;
1033 // Overhead = 12 bytes RTP header + 1 byte generic header. 1035 // Overhead = 12 bytes RTP header + 1 byte generic header.
1034 const uint32_t kPacketOverhead = 13; 1036 const uint32_t kPacketOverhead = 13;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1073 class RtpSenderAudioTest : public RtpSenderTest { 1075 class RtpSenderAudioTest : public RtpSenderTest {
1074 protected: 1076 protected:
1075 RtpSenderAudioTest() {} 1077 RtpSenderAudioTest() {}
1076 1078
1077 void SetUp() override { 1079 void SetUp() override {
1078 payload_ = kAudioPayload; 1080 payload_ = kAudioPayload;
1079 rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr, 1081 rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr,
1080 nullptr, nullptr, nullptr, nullptr, nullptr, 1082 nullptr, nullptr, nullptr, nullptr, nullptr,
1081 nullptr, nullptr, nullptr, 1083 nullptr, nullptr, nullptr,
1082 &retransmission_rate_limiter_, nullptr)); 1084 &retransmission_rate_limiter_, nullptr));
1085 rtp_sender_->SetSSRC(kSsrc);
1083 rtp_sender_->SetSequenceNumber(kSeqNum); 1086 rtp_sender_->SetSequenceNumber(kSeqNum);
1084 } 1087 }
1085 }; 1088 };
1086 1089
1087 TEST_F(RtpSenderTestWithoutPacer, StreamDataCountersCallbacks) { 1090 TEST_F(RtpSenderTestWithoutPacer, StreamDataCountersCallbacks) {
1088 class TestCallback : public StreamDataCountersCallback { 1091 class TestCallback : public StreamDataCountersCallback {
1089 public: 1092 public:
1090 TestCallback() : StreamDataCountersCallback(), ssrc_(0), counters_() {} 1093 TestCallback() : StreamDataCountersCallback(), ssrc_(0), counters_() {}
1091 virtual ~TestCallback() {} 1094 virtual ~TestCallback() {}
1092 1095
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
1433 MOCK_METHOD1(OnOverheadChanged, void(size_t overhead_bytes_per_packet)); 1436 MOCK_METHOD1(OnOverheadChanged, void(size_t overhead_bytes_per_packet));
1434 }; 1437 };
1435 } // namespace 1438 } // namespace
1436 1439
1437 TEST_F(RtpSenderTest, OnOverheadChanged) { 1440 TEST_F(RtpSenderTest, OnOverheadChanged) {
1438 MockOverheadObserver mock_overhead_observer; 1441 MockOverheadObserver mock_overhead_observer;
1439 rtp_sender_.reset( 1442 rtp_sender_.reset(
1440 new RTPSender(false, &fake_clock_, &transport_, nullptr, nullptr, nullptr, 1443 new RTPSender(false, &fake_clock_, &transport_, nullptr, nullptr, nullptr,
1441 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 1444 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
1442 &retransmission_rate_limiter_, &mock_overhead_observer)); 1445 &retransmission_rate_limiter_, &mock_overhead_observer));
1446 rtp_sender_->SetSSRC(kSsrc);
1443 1447
1444 // RTP overhead is 12B. 1448 // RTP overhead is 12B.
1445 EXPECT_CALL(mock_overhead_observer, OnOverheadChanged(12)).Times(1); 1449 EXPECT_CALL(mock_overhead_observer, OnOverheadChanged(12)).Times(1);
1446 SendGenericPayload(); 1450 SendGenericPayload();
1447 1451
1448 rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionTransmissionTimeOffset, 1452 rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionTransmissionTimeOffset,
1449 kTransmissionTimeOffsetExtensionId); 1453 kTransmissionTimeOffsetExtensionId);
1450 1454
1451 // TransmissionTimeOffset extension has a size of 8B. 1455 // TransmissionTimeOffset extension has a size of 8B.
1452 // 12B + 8B = 20B 1456 // 12B + 8B = 20B
1453 EXPECT_CALL(mock_overhead_observer, OnOverheadChanged(20)).Times(1); 1457 EXPECT_CALL(mock_overhead_observer, OnOverheadChanged(20)).Times(1);
1454 SendGenericPayload(); 1458 SendGenericPayload();
1455 } 1459 }
1456 1460
1457 TEST_F(RtpSenderTest, DoesNotUpdateOverheadOnEqualSize) { 1461 TEST_F(RtpSenderTest, DoesNotUpdateOverheadOnEqualSize) {
1458 MockOverheadObserver mock_overhead_observer; 1462 MockOverheadObserver mock_overhead_observer;
1459 rtp_sender_.reset( 1463 rtp_sender_.reset(
1460 new RTPSender(false, &fake_clock_, &transport_, nullptr, nullptr, nullptr, 1464 new RTPSender(false, &fake_clock_, &transport_, nullptr, nullptr, nullptr,
1461 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, 1465 nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
1462 &retransmission_rate_limiter_, &mock_overhead_observer)); 1466 &retransmission_rate_limiter_, &mock_overhead_observer));
1467 rtp_sender_->SetSSRC(kSsrc);
1463 1468
1464 EXPECT_CALL(mock_overhead_observer, OnOverheadChanged(_)).Times(1); 1469 EXPECT_CALL(mock_overhead_observer, OnOverheadChanged(_)).Times(1);
1465 SendGenericPayload(); 1470 SendGenericPayload();
1466 SendGenericPayload(); 1471 SendGenericPayload();
1467 } 1472 }
1468 1473
1469 TEST_F(RtpSenderTest, AddOverheadToTransportFeedbackObserver) { 1474 TEST_F(RtpSenderTest, AddOverheadToTransportFeedbackObserver) {
1470 constexpr int kRtpOverheadBytesPerPacket = 12 + 8; 1475 constexpr int kRtpOverheadBytesPerPacket = 12 + 8;
1471 test::ScopedFieldTrials override_field_trials( 1476 test::ScopedFieldTrials override_field_trials(
1472 "WebRTC-SendSideBwe-WithOverhead/Enabled/"); 1477 "WebRTC-SendSideBwe-WithOverhead/Enabled/");
1473 testing::NiceMock<MockOverheadObserver> mock_overhead_observer; 1478 testing::NiceMock<MockOverheadObserver> mock_overhead_observer;
1474 rtp_sender_.reset(new RTPSender( 1479 rtp_sender_.reset(new RTPSender(
1475 false, &fake_clock_, &transport_, nullptr, nullptr, &seq_num_allocator_, 1480 false, &fake_clock_, &transport_, nullptr, nullptr, &seq_num_allocator_,
1476 &feedback_observer_, nullptr, nullptr, nullptr, &mock_rtc_event_log_, 1481 &feedback_observer_, nullptr, nullptr, nullptr, &mock_rtc_event_log_,
1477 nullptr, &retransmission_rate_limiter_, &mock_overhead_observer)); 1482 nullptr, &retransmission_rate_limiter_, &mock_overhead_observer));
1483 rtp_sender_->SetSSRC(kSsrc);
1478 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( 1484 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
1479 kRtpExtensionTransportSequenceNumber, 1485 kRtpExtensionTransportSequenceNumber,
1480 kTransportSequenceNumberExtensionId)); 1486 kTransportSequenceNumberExtensionId));
1481 EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber()) 1487 EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber())
1482 .WillOnce(testing::Return(kTransportSequenceNumber)); 1488 .WillOnce(testing::Return(kTransportSequenceNumber));
1483 EXPECT_CALL(feedback_observer_, 1489 EXPECT_CALL(feedback_observer_,
1484 AddPacket(kTransportSequenceNumber, 1490 AddPacket(kTransportSequenceNumber,
1485 sizeof(kPayloadData) + kGenericHeaderLength + 1491 sizeof(kPayloadData) + kGenericHeaderLength +
1486 kRtpOverheadBytesPerPacket, 1492 kRtpOverheadBytesPerPacket,
1487 PacedPacketInfo::kNotAProbe)) 1493 PacedPacketInfo::kNotAProbe))
(...skipping 25 matching lines...) Expand all
1513 1519
1514 // Requested padding size is too small, will send a larger one. 1520 // Requested padding size is too small, will send a larger one.
1515 const size_t kMinPaddingSize = 50; 1521 const size_t kMinPaddingSize = 50;
1516 EXPECT_CALL(transport, SendRtp(_, kMinPaddingSize + kRtpHeaderSize, _)) 1522 EXPECT_CALL(transport, SendRtp(_, kMinPaddingSize + kRtpHeaderSize, _))
1517 .WillOnce(testing::Return(true)); 1523 .WillOnce(testing::Return(true));
1518 EXPECT_EQ(kMinPaddingSize, 1524 EXPECT_EQ(kMinPaddingSize,
1519 rtp_sender_->TimeToSendPadding(kMinPaddingSize - 5, 1525 rtp_sender_->TimeToSendPadding(kMinPaddingSize - 5,
1520 PacedPacketInfo::kNotAProbe)); 1526 PacedPacketInfo::kNotAProbe));
1521 } 1527 }
1522 } // namespace webrtc 1528 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_sender.cc ('k') | webrtc/modules/rtp_rtcp/source/ssrc_database.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698