Index: media/cast/rtcp/rtcp_unittest.cc |
diff --git a/media/cast/rtcp/rtcp_unittest.cc b/media/cast/rtcp/rtcp_unittest.cc |
index 9898f70990c44c3e8dfd718c7bd68cb8da422337..f163208ad33ebf99cc3174fd88d6850d692a174a 100644 |
--- a/media/cast/rtcp/rtcp_unittest.cc |
+++ b/media/cast/rtcp/rtcp_unittest.cc |
@@ -18,7 +18,6 @@ using testing::_; |
static const uint32 kSenderSsrc = 0x10203; |
static const uint32 kReceiverSsrc = 0x40506; |
-static const uint32 kUnknownSsrc = 0xDEAD; |
static const std::string kCName("test@10.1.1.1"); |
static const uint32 kRtcpIntervalMs = 500; |
static const int64 kStartMillisecond = GG_INT64_C(12345678900000); |
@@ -76,8 +75,8 @@ class RtcpPeer : public Rtcp { |
RtpReceiverStatistics* rtp_receiver_statistics, |
RtcpMode rtcp_mode, |
const base::TimeDelta& rtcp_interval, |
- bool sending_media, |
uint32 local_ssrc, |
+ uint32 remote_ssrc, |
const std::string& c_name) |
: Rtcp(clock, |
sender_feedback, |
@@ -86,8 +85,8 @@ class RtcpPeer : public Rtcp { |
rtp_receiver_statistics, |
rtcp_mode, |
rtcp_interval, |
- sending_media, |
local_ssrc, |
+ remote_ssrc, |
c_name) { |
} |
@@ -124,8 +123,8 @@ TEST_F(RtcpTest, TimeToSend) { |
NULL, |
kRtcpCompound, |
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
- true, // Media sender. |
kSenderSsrc, |
+ kReceiverSsrc, |
kCName); |
transport_.SetRtcpReceiver(&rtcp); |
EXPECT_LE(start_time, rtcp.TimeToSendNextRtcpReport()); |
@@ -145,11 +144,11 @@ TEST_F(RtcpTest, BasicSenderReport) { |
NULL, |
kRtcpCompound, |
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
- true, // Media sender. |
kSenderSsrc, |
+ kReceiverSsrc, |
kCName); |
transport_.SetRtcpReceiver(&rtcp); |
- rtcp.SendRtcpReport(kUnknownSsrc); |
+ rtcp.SendRtcpFromRtpSender(NULL); |
} |
TEST_F(RtcpTest, BasicReceiverReport) { |
@@ -160,12 +159,11 @@ TEST_F(RtcpTest, BasicReceiverReport) { |
NULL, |
kRtcpCompound, |
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
- false, // Media receiver. |
kSenderSsrc, |
+ kReceiverSsrc, |
kCName); |
transport_.SetRtcpReceiver(&rtcp); |
- rtcp.SetRemoteSSRC(kSenderSsrc); |
- rtcp.SendRtcpReport(kSenderSsrc); |
+ rtcp.SendRtcpFromRtpReceiver(NULL, NULL); |
} |
TEST_F(RtcpTest, BasicCast) { |
@@ -179,11 +177,10 @@ TEST_F(RtcpTest, BasicCast) { |
NULL, |
kRtcpReducedSize, |
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
- false, |
+ kSenderSsrc, |
kSenderSsrc, |
kCName); |
transport_.SetRtcpReceiver(&rtcp); |
- rtcp.SetRemoteSSRC(kSenderSsrc); |
RtcpCastMessage cast_message(kSenderSsrc); |
cast_message.ack_frame_id_ = kAckFrameId; |
PacketIdSet missing_packets; |
@@ -193,12 +190,12 @@ TEST_F(RtcpTest, BasicCast) { |
missing_packets.insert(kLostPacketId1); |
missing_packets.insert(kLostPacketId2); |
missing_packets.insert(kLostPacketId3); |
- cast_message.missing_frames_and_packets_[ |
- kFrameIdWithLostPackets] = missing_packets; |
- rtcp.SendRtcpCast(cast_message); |
+ cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = |
+ missing_packets; |
+ rtcp.SendRtcpFromRtpReceiver(&cast_message, NULL); |
} |
-TEST_F(RtcpTest, Rtt) { |
+TEST_F(RtcpTest, RttReducedSizeRtcp) { |
// Media receiver. |
LocalRtcpTransport receiver_transport(&testing_clock_); |
Rtcp rtcp_receiver(&testing_clock_, |
@@ -208,8 +205,8 @@ TEST_F(RtcpTest, Rtt) { |
NULL, |
kRtcpReducedSize, |
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
- false, |
kReceiverSsrc, |
+ kSenderSsrc, |
kCName); |
// Media sender. |
@@ -221,16 +218,13 @@ TEST_F(RtcpTest, Rtt) { |
NULL, |
kRtcpReducedSize, |
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
- true, |
kSenderSsrc, |
+ kReceiverSsrc, |
kCName); |
receiver_transport.SetRtcpReceiver(&rtcp_sender); |
sender_transport.SetRtcpReceiver(&rtcp_receiver); |
- rtcp_sender.SetRemoteSSRC(kReceiverSsrc); |
- rtcp_receiver.SetRemoteSSRC(kSenderSsrc); |
- |
base::TimeDelta rtt; |
base::TimeDelta avg_rtt; |
base::TimeDelta min_rtt; |
@@ -238,42 +232,107 @@ TEST_F(RtcpTest, Rtt) { |
EXPECT_FALSE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
- rtcp_sender.SendRtcpReport(kSenderSsrc); |
- rtcp_receiver.SendRtcpReport(kSenderSsrc); |
+ rtcp_sender.SendRtcpFromRtpSender(NULL); |
+ rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL); |
EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
EXPECT_NEAR(2 * kAddedDelay, rtt.InMilliseconds(), 1); |
EXPECT_NEAR(2 * kAddedDelay, avg_rtt.InMilliseconds(), 1); |
EXPECT_NEAR(2 * kAddedDelay, min_rtt.InMilliseconds(), 1); |
EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); |
- rtcp_sender.SendRtcpReport(kSenderSsrc); |
+ rtcp_sender.SendRtcpFromRtpSender(NULL); |
EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
EXPECT_NEAR(2 * kAddedDelay, rtt.InMilliseconds(), 1); |
EXPECT_NEAR(2 * kAddedDelay, avg_rtt.InMilliseconds(), 1); |
EXPECT_NEAR(2 * kAddedDelay, min_rtt.InMilliseconds(), 1); |
EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); |
+} |
+ |
+TEST_F(RtcpTest, Rtt) { |
+ // Media receiver. |
+ LocalRtcpTransport receiver_transport(&testing_clock_); |
+ Rtcp rtcp_receiver(&testing_clock_, |
+ &mock_sender_feedback_, |
+ &receiver_transport, |
+ NULL, |
+ NULL, |
+ kRtcpCompound, |
+ base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
+ kReceiverSsrc, |
+ kSenderSsrc, |
+ kCName); |
+ |
+ // Media sender. |
+ LocalRtcpTransport sender_transport(&testing_clock_); |
+ Rtcp rtcp_sender(&testing_clock_, |
+ &mock_sender_feedback_, |
+ &sender_transport, |
+ NULL, |
+ NULL, |
+ kRtcpCompound, |
+ base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
+ kSenderSsrc, |
+ kReceiverSsrc, |
+ kCName); |
+ |
+ receiver_transport.SetRtcpReceiver(&rtcp_sender); |
+ sender_transport.SetRtcpReceiver(&rtcp_receiver); |
+ |
+ base::TimeDelta rtt; |
+ base::TimeDelta avg_rtt; |
+ base::TimeDelta min_rtt; |
+ base::TimeDelta max_rtt; |
+ EXPECT_FALSE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
+ EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
+ |
+ rtcp_sender.SendRtcpFromRtpSender(NULL); |
+ rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL); |
+ EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
+ EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
+ EXPECT_NEAR(2 * kAddedDelay, rtt.InMilliseconds(), 1); |
+ EXPECT_NEAR(2 * kAddedDelay, avg_rtt.InMilliseconds(), 1); |
+ EXPECT_NEAR(2 * kAddedDelay, min_rtt.InMilliseconds(), 1); |
+ EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); |
+ |
+ rtcp_sender.SendRtcpFromRtpSender(NULL); |
+ EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
+ EXPECT_NEAR(2 * kAddedDelay, rtt.InMilliseconds(), 1); |
+ EXPECT_NEAR(2 * kAddedDelay, avg_rtt.InMilliseconds(), 1); |
+ EXPECT_NEAR(2 * kAddedDelay, min_rtt.InMilliseconds(), 1); |
+ EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); |
receiver_transport.SetShortDelay(); |
sender_transport.SetShortDelay(); |
- rtcp_receiver.SendRtcpReport(kSenderSsrc); |
+ rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL); |
EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
- |
EXPECT_NEAR(kAddedDelay + kAddedShortDelay, rtt.InMilliseconds(), 1); |
EXPECT_NEAR((kAddedShortDelay + 3 * kAddedDelay) / 2, |
avg_rtt.InMilliseconds(), |
1); |
EXPECT_NEAR(kAddedDelay + kAddedShortDelay, min_rtt.InMilliseconds(), 1); |
EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); |
- rtcp_sender.SendRtcpReport(kSenderSsrc); |
- EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
+ rtcp_sender.SendRtcpFromRtpSender(NULL); |
+ EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
EXPECT_NEAR(2 * kAddedShortDelay, rtt.InMilliseconds(), 1); |
EXPECT_NEAR((2 * kAddedShortDelay + 2 * kAddedDelay) / 2, |
avg_rtt.InMilliseconds(), |
1); |
EXPECT_NEAR(2 * kAddedShortDelay, min_rtt.InMilliseconds(), 1); |
EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); |
+ |
+ rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL); |
+ EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
+ EXPECT_NEAR(2 * kAddedShortDelay, rtt.InMilliseconds(), 1); |
+ EXPECT_NEAR(2 * kAddedShortDelay, min_rtt.InMilliseconds(), 1); |
+ EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); |
+ |
+ rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL); |
+ EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
+ EXPECT_NEAR(2 * kAddedShortDelay, rtt.InMilliseconds(), 1); |
+ EXPECT_NEAR(2 * kAddedShortDelay, min_rtt.InMilliseconds(), 1); |
+ EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); |
} |
TEST_F(RtcpTest, RttWithPacketLoss) { |
@@ -286,7 +345,7 @@ TEST_F(RtcpTest, RttWithPacketLoss) { |
NULL, |
kRtcpReducedSize, |
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
- false, |
+ kSenderSsrc, |
kReceiverSsrc, |
kCName); |
@@ -299,18 +358,15 @@ TEST_F(RtcpTest, RttWithPacketLoss) { |
NULL, |
kRtcpReducedSize, |
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
- true, |
+ kReceiverSsrc, |
kSenderSsrc, |
kCName); |
receiver_transport.SetRtcpReceiver(&rtcp_sender); |
sender_transport.SetRtcpReceiver(&rtcp_receiver); |
- rtcp_sender.SetRemoteSSRC(kReceiverSsrc); |
- rtcp_receiver.SetRemoteSSRC(kSenderSsrc); |
- |
- rtcp_receiver.SendRtcpReport(kSenderSsrc); |
- rtcp_sender.SendRtcpReport(kSenderSsrc); |
+ rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL); |
+ rtcp_sender.SendRtcpFromRtpSender(NULL); |
base::TimeDelta rtt; |
base::TimeDelta avg_rtt; |
@@ -327,8 +383,8 @@ TEST_F(RtcpTest, RttWithPacketLoss) { |
sender_transport.SetShortDelay(); |
receiver_transport.SetDropPackets(true); |
- rtcp_receiver.SendRtcpReport(kSenderSsrc); |
- rtcp_sender.SendRtcpReport(kSenderSsrc); |
+ rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL); |
+ rtcp_sender.SendRtcpFromRtpSender(NULL); |
EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
EXPECT_NEAR(kAddedDelay + kAddedShortDelay, rtt.InMilliseconds(), 1); |
@@ -374,8 +430,8 @@ TEST_F(RtcpTest, WrapAround) { |
NULL, |
kRtcpReducedSize, |
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
- false, |
kReceiverSsrc, |
+ kSenderSsrc, |
kCName); |
uint32 new_timestamp = 0; |
uint32 old_timestamp = 0; |
@@ -402,8 +458,8 @@ TEST_F(RtcpTest, RtpTimestampInSenderTime) { |
NULL, |
kRtcpReducedSize, |
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), |
- false, |
kReceiverSsrc, |
+ kSenderSsrc, |
kCName); |
int frequency = 32000; |
uint32 rtp_timestamp = 64000; |