Index: webrtc/modules/rtp_rtcp/source/rtcp_sender_unittest.cc |
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_sender_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtcp_sender_unittest.cc |
index 6def724537e48bde66f737e585d6b631e299c7b3..7656dd5b2e1777774c4244a68ba871e28c1bb4bb 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtcp_sender_unittest.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_sender_unittest.cc |
@@ -272,10 +272,14 @@ class TestTransport : public Transport, |
RTCPHelp::RTCPPacketInformation rtcp_packet_info_; |
}; |
-class RtcpSenderTest : public ::testing::Test { |
- protected: |
+namespace { |
static const uint32_t kRemoteBitrateEstimatorMinBitrateBps = 30000; |
+ static const int kMaxPacketLength = 1500; |
+ static const uint32_t kMainSsrc = 0x11111111; |
+} |
+class RtcpSenderTest : public ::testing::Test { |
+ protected: |
RtcpSenderTest() |
: over_use_detector_options_(), |
clock_(1335900000), |
@@ -300,15 +304,25 @@ class RtcpSenderTest : public ::testing::Test { |
rtp_rtcp_impl_ = new ModuleRtpRtcpImpl(configuration); |
rtp_receiver_.reset(RtpReceiver::CreateVideoReceiver( |
- 0, &clock_, test_transport_, NULL, rtp_payload_registry_.get())); |
+ configuration.id, &clock_, test_transport_, NULL, |
+ rtp_payload_registry_.get())); |
rtcp_sender_ = |
- new RTCPSender(0, false, &clock_, receive_statistics_.get(), NULL); |
+ new RTCPSender(configuration.id, false, &clock_, |
+ receive_statistics_.get(), NULL); |
+ rtcp_sender_->SetSSRC(kMainSsrc); |
rtcp_receiver_ = |
- new RTCPReceiver(0, &clock_, false, NULL, NULL, NULL, rtp_rtcp_impl_); |
+ new RTCPReceiver(configuration.id, &clock_, false, NULL, NULL, NULL, |
+ rtp_rtcp_impl_); |
+ rtcp_receiver_->SetRemoteSSRC(kMainSsrc); |
+ |
+ std::set<uint32_t> registered_ssrcs; |
+ registered_ssrcs.insert(kMainSsrc); |
+ rtcp_receiver_->SetSsrcs(kMainSsrc, registered_ssrcs); |
test_transport_->SetRTCPReceiver(rtcp_receiver_); |
// Initialize |
EXPECT_EQ(0, rtcp_sender_->RegisterSendTransport(test_transport_)); |
} |
+ |
~RtcpSenderTest() { |
delete rtcp_sender_; |
delete rtcp_receiver_; |
@@ -334,7 +348,6 @@ class RtcpSenderTest : public ::testing::Test { |
rtc::scoped_ptr<RemoteBitrateEstimator> remote_bitrate_estimator_; |
rtc::scoped_ptr<ReceiveStatistics> receive_statistics_; |
- enum {kMaxPacketLength = 1500}; |
uint8_t packet_[kMaxPacketLength]; |
}; |
@@ -344,21 +357,14 @@ TEST_F(RtcpSenderTest, RtcpOff) { |
EXPECT_EQ(-1, rtcp_sender_->SendRTCP(feedback_state, kRtcpSr)); |
} |
-TEST_F(RtcpSenderTest, IJStatus) { |
- ASSERT_FALSE(rtcp_sender_->IJ()); |
- rtcp_sender_->SetIJStatus(true); |
- EXPECT_TRUE(rtcp_sender_->IJ()); |
-} |
- |
TEST_F(RtcpSenderTest, TestCompound) { |
const bool marker_bit = false; |
const uint8_t payload_type = 100; |
const uint16_t seq_num = 11111; |
const uint32_t timestamp = 1234567; |
- const uint32_t ssrc = 0x11111111; |
size_t packet_length = 0; |
- CreateRtpPacket(marker_bit, payload_type, seq_num, timestamp, ssrc, packet_, |
- &packet_length); |
+ CreateRtpPacket(marker_bit, payload_type, seq_num, timestamp, kMainSsrc, |
+ packet_, &packet_length); |
EXPECT_EQ(25u, packet_length); |
VideoCodec codec_inst; |
@@ -382,25 +388,27 @@ TEST_F(RtcpSenderTest, TestCompound) { |
EXPECT_TRUE(rtp_receiver_->IncomingRtpPacket(header, packet_, packet_length, |
payload_specific, true)); |
- rtcp_sender_->SetIJStatus(true); |
+ rtcp_sender_->SetCNAME("Foo"); |
rtcp_sender_->SetRTCPStatus(kRtcpCompound); |
RTCPSender::FeedbackState feedback_state = rtp_rtcp_impl_->GetFeedbackState(); |
EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state, kRtcpRr)); |
- // Transmission time offset packet should be received. |
+ // Sdes packet should be received, along with report blocks. |
ASSERT_TRUE(test_transport_->rtcp_packet_info_.rtcpPacketTypeFlags & |
- kRtcpTransmissionTimeOffset); |
+ kRtcpSdes); |
+ EXPECT_GT(test_transport_->rtcp_packet_info_.report_blocks.size(), 0u); |
} |
TEST_F(RtcpSenderTest, TestCompound_NoRtpReceived) { |
- rtcp_sender_->SetIJStatus(true); |
+ rtcp_sender_->SetCNAME("Foo"); |
rtcp_sender_->SetRTCPStatus(kRtcpCompound); |
RTCPSender::FeedbackState feedback_state = rtp_rtcp_impl_->GetFeedbackState(); |
EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state, kRtcpRr)); |
- // Transmission time offset packet should not be received. |
- ASSERT_FALSE(test_transport_->rtcp_packet_info_.rtcpPacketTypeFlags & |
- kRtcpTransmissionTimeOffset); |
+ // Sdes should be received, but no report blocks. |
+ ASSERT_TRUE(test_transport_->rtcp_packet_info_.rtcpPacketTypeFlags & |
+ kRtcpSdes); |
+ EXPECT_EQ(0u, test_transport_->rtcp_packet_info_.report_blocks.size()); |
} |
TEST_F(RtcpSenderTest, TestXrReceiverReferenceTime) { |
@@ -479,7 +487,7 @@ TEST_F(RtcpSenderTest, SendsTmmbnIfSetAndEmpty) { |
EXPECT_EQ(0, rtcp_sender_->SetTMMBN(&bounding_set, 3)); |
ASSERT_EQ(0U, test_transport_->rtcp_packet_info_.rtcpPacketTypeFlags); |
RTCPSender::FeedbackState feedback_state = rtp_rtcp_impl_->GetFeedbackState(); |
- EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state,kRtcpSr)); |
+ EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state, kRtcpSr)); |
// We now expect the packet to show up in the rtcp_packet_info_ of |
// test_transport_. |
ASSERT_NE(0U, test_transport_->rtcp_packet_info_.rtcpPacketTypeFlags); |
@@ -514,4 +522,5 @@ TEST_F(RtcpSenderTest, SendsTmmbnIfSetAndValid) { |
&incoming_set)); |
EXPECT_EQ(kSourceSsrc, incoming_set.Ssrc(0)); |
} |
+ |
} // namespace webrtc |