summaryrefslogtreecommitdiff
path: root/media/cast/rtcp/rtcp_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'media/cast/rtcp/rtcp_unittest.cc')
-rw-r--r--media/cast/rtcp/rtcp_unittest.cc263
1 files changed, 190 insertions, 73 deletions
diff --git a/media/cast/rtcp/rtcp_unittest.cc b/media/cast/rtcp/rtcp_unittest.cc
index ccbdcac863..8287d99927 100644
--- a/media/cast/rtcp/rtcp_unittest.cc
+++ b/media/cast/rtcp/rtcp_unittest.cc
@@ -4,11 +4,13 @@
#include "base/test/simple_test_tick_clock.h"
#include "media/cast/cast_defines.h"
+#include "media/cast/cast_environment.h"
#include "media/cast/pacing/paced_sender.h"
#include "media/cast/rtcp/mock_rtcp_receiver_feedback.h"
#include "media/cast/rtcp/mock_rtcp_sender_feedback.h"
#include "media/cast/rtcp/rtcp.h"
#include "media/cast/rtcp/test_rtcp_packet_builder.h"
+#include "media/cast/test/fake_task_runner.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace media {
@@ -18,7 +20,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);
@@ -27,14 +28,19 @@ static const int64 kAddedShortDelay= 100;
class LocalRtcpTransport : public PacedPacketSender {
public:
- explicit LocalRtcpTransport(base::SimpleTestTickClock* testing_clock)
- : short_delay_(false),
+ explicit LocalRtcpTransport(scoped_refptr<CastEnvironment> cast_environment,
+ base::SimpleTestTickClock* testing_clock)
+ : drop_packets_(false),
+ short_delay_(false),
testing_clock_(testing_clock) {}
void SetRtcpReceiver(Rtcp* rtcp) { rtcp_ = rtcp; }
void SetShortDelay() { short_delay_ = true; }
+ void SetDropPackets(bool drop_packets) { drop_packets_ = drop_packets; }
+
+
virtual bool SendRtcpPacket(const std::vector<uint8>& packet) OVERRIDE {
if (short_delay_) {
testing_clock_->Advance(
@@ -42,6 +48,8 @@ class LocalRtcpTransport : public PacedPacketSender {
} else {
testing_clock_->Advance(base::TimeDelta::FromMilliseconds(kAddedDelay));
}
+ if (drop_packets_) return true;
+
rtcp_->IncomingRtcpPacket(&(packet[0]), packet.size());
return true;
}
@@ -55,32 +63,34 @@ class LocalRtcpTransport : public PacedPacketSender {
}
private:
+ bool drop_packets_;
bool short_delay_;
Rtcp* rtcp_;
base::SimpleTestTickClock* testing_clock_;
+ scoped_refptr<CastEnvironment> cast_environment_;
};
class RtcpPeer : public Rtcp {
public:
- RtcpPeer(base::TickClock* clock,
+ RtcpPeer(scoped_refptr<CastEnvironment> cast_environment,
RtcpSenderFeedback* sender_feedback,
PacedPacketSender* const paced_packet_sender,
RtpSenderStatistics* rtp_sender_statistics,
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,
+ : Rtcp(cast_environment,
sender_feedback,
paced_packet_sender,
rtp_sender_statistics,
rtp_receiver_statistics,
rtcp_mode,
rtcp_interval,
- sending_media,
local_ssrc,
+ remote_ssrc,
c_name) {
}
@@ -91,7 +101,11 @@ class RtcpPeer : public Rtcp {
class RtcpTest : public ::testing::Test {
protected:
RtcpTest()
- : transport_(&testing_clock_) {
+ : task_runner_(new test::FakeTaskRunner(&testing_clock_)),
+ cast_environment_(new CastEnvironment(&testing_clock_, task_runner_,
+ task_runner_, task_runner_, task_runner_, task_runner_,
+ GetDefaultCastLoggingConfig())),
+ transport_(cast_environment_, &testing_clock_) {
testing_clock_.Advance(
base::TimeDelta::FromMilliseconds(kStartMillisecond));
}
@@ -99,15 +113,12 @@ class RtcpTest : public ::testing::Test {
virtual ~RtcpTest() {}
virtual void SetUp() {
- EXPECT_CALL(mock_sender_feedback_, OnReceivedReportBlock(_)).Times(0);
- EXPECT_CALL(mock_sender_feedback_, OnReceivedIntraFrameRequest()).Times(0);
- EXPECT_CALL(mock_sender_feedback_, OnReceivedRpsi(_, _)).Times(0);
- EXPECT_CALL(mock_sender_feedback_, OnReceivedRemb(_)).Times(0);
- EXPECT_CALL(mock_sender_feedback_, OnReceivedNackRequest(_)).Times(0);
EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(0);
}
base::SimpleTestTickClock testing_clock_;
+ scoped_refptr<test::FakeTaskRunner> task_runner_;
+ scoped_refptr<CastEnvironment> cast_environment_;
LocalRtcpTransport transport_;
MockRtcpSenderFeedback mock_sender_feedback_;
};
@@ -115,15 +126,15 @@ class RtcpTest : public ::testing::Test {
TEST_F(RtcpTest, TimeToSend) {
base::TimeTicks start_time;
start_time += base::TimeDelta::FromMilliseconds(kStartMillisecond);
- Rtcp rtcp(&testing_clock_,
+ Rtcp rtcp(cast_environment_,
&mock_sender_feedback_,
&transport_,
NULL,
NULL,
kRtcpCompound,
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
- true, // Media sender.
kSenderSsrc,
+ kReceiverSsrc,
kCName);
transport_.SetRtcpReceiver(&rtcp);
EXPECT_LE(start_time, rtcp.TimeToSendNextRtcpReport());
@@ -136,73 +147,50 @@ TEST_F(RtcpTest, TimeToSend) {
}
TEST_F(RtcpTest, BasicSenderReport) {
- Rtcp rtcp(&testing_clock_,
+ Rtcp rtcp(cast_environment_,
&mock_sender_feedback_,
&transport_,
NULL,
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) {
- EXPECT_CALL(mock_sender_feedback_, OnReceivedReportBlock(_)).Times(1);
- Rtcp rtcp(&testing_clock_,
+ Rtcp rtcp(cast_environment_,
&mock_sender_feedback_,
&transport_,
NULL,
NULL,
kRtcpCompound,
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
- false, // Media receiver.
- kSenderSsrc,
- kCName);
- transport_.SetRtcpReceiver(&rtcp);
- rtcp.SetRemoteSSRC(kSenderSsrc);
- rtcp.SendRtcpReport(kSenderSsrc);
-}
-
-TEST_F(RtcpTest, BasicPli) {
- EXPECT_CALL(mock_sender_feedback_, OnReceivedReportBlock(_)).Times(1);
- EXPECT_CALL(mock_sender_feedback_, OnReceivedIntraFrameRequest()).Times(1);
-
- // Media receiver.
- Rtcp rtcp(&testing_clock_,
- &mock_sender_feedback_,
- &transport_,
- NULL,
- NULL,
- kRtcpReducedSize,
- base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
- false,
kSenderSsrc,
+ kReceiverSsrc,
kCName);
transport_.SetRtcpReceiver(&rtcp);
- rtcp.SetRemoteSSRC(kSenderSsrc);
- rtcp.SendRtcpPli(kSenderSsrc);
+ rtcp.SendRtcpFromRtpReceiver(NULL, NULL);
}
TEST_F(RtcpTest, BasicCast) {
EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(1);
// Media receiver.
- Rtcp rtcp(&testing_clock_,
+ Rtcp rtcp(cast_environment_,
&mock_sender_feedback_,
&transport_,
NULL,
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;
@@ -212,45 +200,94 @@ 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_,
+ LocalRtcpTransport receiver_transport(cast_environment_, &testing_clock_);
+ Rtcp rtcp_receiver(cast_environment_,
&mock_sender_feedback_,
&receiver_transport,
NULL,
NULL,
kRtcpReducedSize,
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
- false,
kReceiverSsrc,
+ kSenderSsrc,
kCName);
// Media sender.
- LocalRtcpTransport sender_transport(&testing_clock_);
- Rtcp rtcp_sender(&testing_clock_,
+ LocalRtcpTransport sender_transport(cast_environment_, &testing_clock_);
+ Rtcp rtcp_sender(cast_environment_,
&mock_sender_feedback_,
&sender_transport,
NULL,
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;
+ 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);
+}
- EXPECT_CALL(mock_sender_feedback_, OnReceivedReportBlock(_)).Times(2);
+TEST_F(RtcpTest, Rtt) {
+ // Media receiver.
+ LocalRtcpTransport receiver_transport(cast_environment_, &testing_clock_);
+ Rtcp rtcp_receiver(cast_environment_,
+ &mock_sender_feedback_,
+ &receiver_transport,
+ NULL,
+ NULL,
+ kRtcpCompound,
+ base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
+ kReceiverSsrc,
+ kSenderSsrc,
+ kCName);
+
+ // Media sender.
+ LocalRtcpTransport sender_transport(cast_environment_, &testing_clock_);
+ Rtcp rtcp_sender(cast_environment_,
+ &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;
@@ -259,17 +296,17 @@ 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);
- 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 * kAddedDelay, rtt.InMilliseconds(), 1);
EXPECT_NEAR(2 * kAddedDelay, avg_rtt.InMilliseconds(), 1);
EXPECT_NEAR(2 * kAddedDelay, min_rtt.InMilliseconds(), 1);
@@ -277,24 +314,90 @@ TEST_F(RtcpTest, Rtt) {
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) {
+ // Media receiver.
+ LocalRtcpTransport receiver_transport(cast_environment_, &testing_clock_);
+ Rtcp rtcp_receiver(cast_environment_,
+ &mock_sender_feedback_,
+ &receiver_transport,
+ NULL,
+ NULL,
+ kRtcpReducedSize,
+ base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
+ kSenderSsrc,
+ kReceiverSsrc,
+ kCName);
+
+ // Media sender.
+ LocalRtcpTransport sender_transport(cast_environment_, &testing_clock_);
+ Rtcp rtcp_sender(cast_environment_,
+ &mock_sender_feedback_,
+ &sender_transport,
+ NULL,
+ NULL,
+ kRtcpReducedSize,
+ base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
+ kReceiverSsrc,
+ kSenderSsrc,
+ kCName);
+
+ receiver_transport.SetRtcpReceiver(&rtcp_sender);
+ sender_transport.SetRtcpReceiver(&rtcp_receiver);
+
+ rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL);
+ rtcp_sender.SendRtcpFromRtpSender(NULL);
+
+ 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_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();
+ receiver_transport.SetDropPackets(true);
+
+ 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);
}
TEST_F(RtcpTest, NtpAndTime) {
@@ -313,7 +416,7 @@ TEST_F(RtcpTest, NtpAndTime) {
base::TimeTicks out_1 = ConvertNtpToTimeTicks(ntp_seconds_1, ntp_fractions_1);
EXPECT_EQ(input_time, out_1); // Verify inverse.
- base::TimeDelta time_delta = base::TimeDelta::FromMilliseconds(1100);
+ base::TimeDelta time_delta = base::TimeDelta::FromMilliseconds(1000);
input_time += time_delta;
uint32 ntp_seconds_2 = 0;
@@ -326,19 +429,33 @@ TEST_F(RtcpTest, NtpAndTime) {
// Verify delta.
EXPECT_EQ((out_2 - out_1), time_delta);
EXPECT_EQ((ntp_seconds_2 - ntp_seconds_1), GG_UINT32_C(1));
- EXPECT_NEAR((ntp_fractions_2 - ntp_fractions_1), 0xffffffff / 10, 1);
+ EXPECT_NEAR(ntp_fractions_2, ntp_fractions_1, 1);
+
+ time_delta = base::TimeDelta::FromMilliseconds(500);
+ input_time += time_delta;
+
+ uint32 ntp_seconds_3 = 0;
+ uint32 ntp_fractions_3 = 0;
+
+ ConvertTimeTicksToNtp(input_time, &ntp_seconds_3, &ntp_fractions_3);
+ base::TimeTicks out_3 = ConvertNtpToTimeTicks(ntp_seconds_3, ntp_fractions_3);
+ EXPECT_EQ(input_time, out_3); // Verify inverse.
+
+ // Verify delta.
+ EXPECT_EQ((out_3 - out_2), time_delta);
+ EXPECT_NEAR((ntp_fractions_3 - ntp_fractions_2), 0xffffffff / 2, 1);
}
TEST_F(RtcpTest, WrapAround) {
- RtcpPeer rtcp_peer(&testing_clock_,
+ RtcpPeer rtcp_peer(cast_environment_,
&mock_sender_feedback_,
NULL,
NULL,
NULL,
kRtcpReducedSize,
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
- false,
kReceiverSsrc,
+ kSenderSsrc,
kCName);
uint32 new_timestamp = 0;
uint32 old_timestamp = 0;
@@ -358,15 +475,15 @@ TEST_F(RtcpTest, WrapAround) {
}
TEST_F(RtcpTest, RtpTimestampInSenderTime) {
- RtcpPeer rtcp_peer(&testing_clock_,
+ RtcpPeer rtcp_peer(cast_environment_,
&mock_sender_feedback_,
NULL,
NULL,
NULL,
kRtcpReducedSize,
base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
- false,
kReceiverSsrc,
+ kSenderSsrc,
kCName);
int frequency = 32000;
uint32 rtp_timestamp = 64000;