summaryrefslogtreecommitdiffstats
path: root/chromium/media/cast/rtcp/rtcp_receiver_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/cast/rtcp/rtcp_receiver_unittest.cc')
-rw-r--r--chromium/media/cast/rtcp/rtcp_receiver_unittest.cc256
1 files changed, 106 insertions, 150 deletions
diff --git a/chromium/media/cast/rtcp/rtcp_receiver_unittest.cc b/chromium/media/cast/rtcp/rtcp_receiver_unittest.cc
index b5c5d2d3889..51026d1554b 100644
--- a/chromium/media/cast/rtcp/rtcp_receiver_unittest.cc
+++ b/chromium/media/cast/rtcp/rtcp_receiver_unittest.cc
@@ -10,7 +10,8 @@
#include "media/cast/rtcp/rtcp_receiver.h"
#include "media/cast/rtcp/rtcp_utility.h"
#include "media/cast/rtcp/test_rtcp_packet_builder.h"
-#include "media/cast/test/fake_task_runner.h"
+#include "media/cast/test/fake_single_thread_task_runner.h"
+#include "media/cast/transport/cast_transport_defines.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace media {
@@ -21,6 +22,7 @@ using testing::_;
static const uint32 kSenderSsrc = 0x10203;
static const uint32 kSourceSsrc = 0x40506;
static const uint32 kUnknownSsrc = 0xDEAD;
+static const uint16 kTargetDelayMs = 100;
static const std::string kCName("test@10.1.1.1");
namespace {
@@ -28,8 +30,8 @@ class SenderFeedbackCastVerification : public RtcpSenderFeedback {
public:
SenderFeedbackCastVerification() : called_(false) {}
- virtual void OnReceivedCastFeedback(
- const RtcpCastMessage& cast_feedback) OVERRIDE {
+ virtual void OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback)
+ OVERRIDE {
EXPECT_EQ(cast_feedback.media_ssrc_, kSenderSsrc);
EXPECT_EQ(cast_feedback.ack_frame_id_, kAckFrameId);
@@ -38,7 +40,8 @@ class SenderFeedbackCastVerification : public RtcpSenderFeedback {
EXPECT_TRUE(frame_it != cast_feedback.missing_frames_and_packets_.end());
EXPECT_EQ(kLostFrameId, frame_it->first);
- EXPECT_TRUE(frame_it->second.empty());
+ EXPECT_EQ(frame_it->second.size(), 1UL);
+ EXPECT_EQ(*frame_it->second.begin(), kRtcpCastAllPacketsLost);
++frame_it;
EXPECT_TRUE(frame_it != cast_feedback.missing_frames_and_packets_.end());
EXPECT_EQ(kFrameIdWithLostPackets, frame_it->first);
@@ -58,6 +61,8 @@ class SenderFeedbackCastVerification : public RtcpSenderFeedback {
private:
bool called_;
+
+ DISALLOW_COPY_AND_ASSIGN(SenderFeedbackCastVerification);
};
class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback {
@@ -67,18 +72,18 @@ class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback {
called_on_received_receiver_log_(false) {}
virtual void OnReceivedSenderReport(
- const RtcpSenderInfo& remote_sender_info) OVERRIDE {};
+ const transport::RtcpSenderInfo& remote_sender_info) OVERRIDE{};
virtual void OnReceiverReferenceTimeReport(
- const RtcpReceiverReferenceTimeReport& remote_time_report) OVERRIDE {};
+ const RtcpReceiverReferenceTimeReport& remote_time_report) OVERRIDE{};
- virtual void OnReceivedSendReportRequest() OVERRIDE {};
+ virtual void OnReceivedSendReportRequest() OVERRIDE{};
- virtual void OnReceivedReceiverLog(
- const RtcpReceiverLogMessage& receiver_log) OVERRIDE {
+ virtual void OnReceivedReceiverLog(const RtcpReceiverLogMessage& receiver_log)
+ OVERRIDE {
EXPECT_EQ(expected_receiver_log_.size(), receiver_log.size());
RtcpReceiverLogMessage::const_iterator expected_it =
- expected_receiver_log_.begin();
+ expected_receiver_log_.begin();
RtcpReceiverLogMessage::const_iterator incoming_it = receiver_log.begin();
for (; incoming_it != receiver_log.end(); ++incoming_it) {
EXPECT_EQ(expected_it->rtp_timestamp_, incoming_it->rtp_timestamp_);
@@ -94,7 +99,7 @@ class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback {
EXPECT_EQ(event_expected_it->type, event_incoming_it->type);
EXPECT_EQ(event_expected_it->event_timestamp,
event_incoming_it->event_timestamp);
- if (event_expected_it->type == kPacketReceived) {
+ if (event_expected_it->type == PACKET_RECEIVED) {
EXPECT_EQ(event_expected_it->packet_id, event_incoming_it->packet_id);
} else {
EXPECT_EQ(event_expected_it->delay_delta,
@@ -107,26 +112,6 @@ class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback {
called_on_received_receiver_log_ = true;
}
- virtual void OnReceivedSenderLog(
- const RtcpSenderLogMessage& sender_log) OVERRIDE {
- EXPECT_EQ(expected_sender_log_.size(), sender_log.size());
-
- RtcpSenderLogMessage::const_iterator expected_it =
- expected_sender_log_.begin();
- RtcpSenderLogMessage::const_iterator incoming_it = sender_log.begin();
- for (; expected_it != expected_sender_log_.end();
- ++expected_it, ++incoming_it) {
- EXPECT_EQ(expected_it->frame_status, incoming_it->frame_status);
- EXPECT_EQ(0xffffff & expected_it->rtp_timestamp,
- incoming_it->rtp_timestamp);
- }
- called_on_received_sender_log_ = true;
- }
-
- bool OnReceivedSenderLogCalled() {
- return called_on_received_sender_log_;
- }
-
bool OnReceivedReceiverLogCalled() {
return called_on_received_receiver_log_ && expected_receiver_log_.empty();
}
@@ -135,15 +120,12 @@ class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback {
expected_receiver_log_ = receiver_log;
}
- void SetExpectedSenderLog(const RtcpSenderLogMessage& sender_log) {
- expected_sender_log_ = sender_log;
- }
-
private:
RtcpReceiverLogMessage expected_receiver_log_;
- RtcpSenderLogMessage expected_sender_log_;
bool called_on_received_sender_log_;
bool called_on_received_receiver_log_;
+
+ DISALLOW_COPY_AND_ASSIGN(RtcpReceiverCastLogVerification);
};
} // namespace
@@ -151,28 +133,26 @@ class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback {
class RtcpReceiverTest : public ::testing::Test {
protected:
RtcpReceiverTest()
- : task_runner_(new test::FakeTaskRunner(&testing_clock_)),
- cast_environment_(new CastEnvironment(&testing_clock_, task_runner_,
- task_runner_, task_runner_, task_runner_, task_runner_,
- GetDefaultCastLoggingConfig())),
+ : testing_clock_(new base::SimpleTestTickClock()),
+ task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)),
+ cast_environment_(new CastEnvironment(
+ scoped_ptr<base::TickClock>(testing_clock_).Pass(),
+ task_runner_,
+ task_runner_,
+ task_runner_)),
rtcp_receiver_(new RtcpReceiver(cast_environment_,
&mock_sender_feedback_,
&mock_receiver_feedback_,
&mock_rtt_feedback_,
kSourceSsrc)) {
- }
-
- virtual ~RtcpReceiverTest() {}
-
- virtual void SetUp() OVERRIDE {
EXPECT_CALL(mock_receiver_feedback_, OnReceivedSenderReport(_)).Times(0);
- EXPECT_CALL(mock_receiver_feedback_,
- OnReceiverReferenceTimeReport(_)).Times(0);
- EXPECT_CALL(mock_receiver_feedback_,
- OnReceivedSendReportRequest()).Times(0);
+ EXPECT_CALL(mock_receiver_feedback_, OnReceiverReferenceTimeReport(_))
+ .Times(0);
+ EXPECT_CALL(mock_receiver_feedback_, OnReceivedSendReportRequest())
+ .Times(0);
EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(0);
- EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(_, _, _)).Times(0);
+ EXPECT_CALL(mock_rtt_feedback_, OnReceivedDelaySinceLastReport(_, _, _))
+ .Times(0);
expected_sender_info_.ntp_seconds = kNtpHigh;
expected_sender_info_.ntp_fraction = kNtpLow;
@@ -193,22 +173,26 @@ class RtcpReceiverTest : public ::testing::Test {
expected_receiver_reference_report_.ntp_fraction = kNtpLow;
}
+ virtual ~RtcpReceiverTest() {}
+
// Injects an RTCP packet into the receiver.
void InjectRtcpPacket(const uint8* packet, uint16 length) {
RtcpParser rtcp_parser(packet, length);
rtcp_receiver_->IncomingRtcpPacket(&rtcp_parser);
}
- base::SimpleTestTickClock testing_clock_;
- scoped_refptr<test::FakeTaskRunner> task_runner_;
+ base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment.
+ scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_;
scoped_refptr<CastEnvironment> cast_environment_;
MockRtcpReceiverFeedback mock_receiver_feedback_;
MockRtcpRttFeedback mock_rtt_feedback_;
MockRtcpSenderFeedback mock_sender_feedback_;
scoped_ptr<RtcpReceiver> rtcp_receiver_;
- RtcpSenderInfo expected_sender_info_;
- RtcpReportBlock expected_report_block_;
+ transport::RtcpSenderInfo expected_sender_info_;
+ transport::RtcpReportBlock expected_report_block_;
RtcpReceiverReferenceTimeReport expected_receiver_reference_report_;
+
+ DISALLOW_COPY_AND_ASSIGN(RtcpReceiverTest);
};
TEST_F(RtcpReceiverTest, BrokenPacketIsIgnored) {
@@ -222,14 +206,14 @@ TEST_F(RtcpReceiverTest, InjectSenderReportPacket) {
// Expected to be ignored since the sender ssrc does not match our
// remote ssrc.
- InjectRtcpPacket(p.Packet(), p.Length());
+ InjectRtcpPacket(p.Data(), p.Length());
EXPECT_CALL(mock_receiver_feedback_,
OnReceivedSenderReport(expected_sender_info_)).Times(1);
rtcp_receiver_->SetRemoteSSRC(kSenderSsrc);
// Expected to be pass through since the sender ssrc match our remote ssrc.
- InjectRtcpPacket(p.Packet(), p.Length());
+ InjectRtcpPacket(p.Data(), p.Length());
}
TEST_F(RtcpReceiverTest, InjectReceiveReportPacket) {
@@ -239,19 +223,18 @@ TEST_F(RtcpReceiverTest, InjectReceiveReportPacket) {
// Expected to be ignored since the source ssrc does not match our
// local ssrc.
- InjectRtcpPacket(p1.Packet(), p1.Length());
+ InjectRtcpPacket(p1.Data(), p1.Length());
EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(kSourceSsrc,
- kLastSr,
- kDelayLastSr)).Times(1);
+ OnReceivedDelaySinceLastReport(
+ kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
TestRtcpPacketBuilder p2;
p2.AddRr(kSenderSsrc, 1);
p2.AddRb(kSourceSsrc);
// Expected to be pass through since the sender ssrc match our local ssrc.
- InjectRtcpPacket(p2.Packet(), p2.Length());
+ InjectRtcpPacket(p2.Data(), p2.Length());
}
TEST_F(RtcpReceiverTest, InjectSenderReportWithReportBlockPacket) {
@@ -263,7 +246,7 @@ TEST_F(RtcpReceiverTest, InjectSenderReportWithReportBlockPacket) {
// our remote ssrc.
// Report block expected to be ignored since the source ssrc does not match
// our local ssrc.
- InjectRtcpPacket(p1.Packet(), p1.Length());
+ InjectRtcpPacket(p1.Data(), p1.Length());
EXPECT_CALL(mock_receiver_feedback_,
OnReceivedSenderReport(expected_sender_info_)).Times(1);
@@ -273,13 +256,12 @@ TEST_F(RtcpReceiverTest, InjectSenderReportWithReportBlockPacket) {
// remote ssrc.
// Report block expected to be ignored since the source ssrc does not match
// our local ssrc.
- InjectRtcpPacket(p1.Packet(), p1.Length());
+ InjectRtcpPacket(p1.Data(), p1.Length());
EXPECT_CALL(mock_receiver_feedback_, OnReceivedSenderReport(_)).Times(0);
EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(kSourceSsrc,
- kLastSr,
- kDelayLastSr)).Times(1);
+ OnReceivedDelaySinceLastReport(
+ kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
rtcp_receiver_->SetRemoteSSRC(0);
@@ -291,14 +273,13 @@ TEST_F(RtcpReceiverTest, InjectSenderReportWithReportBlockPacket) {
// our remote ssrc.
// Receiver report expected to be pass through since the sender ssrc match
// our local ssrc.
- InjectRtcpPacket(p2.Packet(), p2.Length());
+ InjectRtcpPacket(p2.Data(), p2.Length());
EXPECT_CALL(mock_receiver_feedback_,
OnReceivedSenderReport(expected_sender_info_)).Times(1);
EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(kSourceSsrc,
- kLastSr,
- kDelayLastSr)).Times(1);
+ OnReceivedDelaySinceLastReport(
+ kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
rtcp_receiver_->SetRemoteSSRC(kSenderSsrc);
@@ -306,7 +287,7 @@ TEST_F(RtcpReceiverTest, InjectSenderReportWithReportBlockPacket) {
// remote ssrc.
// Receiver report expected to be pass through since the sender ssrc match
// our local ssrc.
- InjectRtcpPacket(p2.Packet(), p2.Length());
+ InjectRtcpPacket(p2.Data(), p2.Length());
}
TEST_F(RtcpReceiverTest, InjectSenderReportPacketWithDlrr) {
@@ -320,20 +301,19 @@ TEST_F(RtcpReceiverTest, InjectSenderReportPacketWithDlrr) {
// Expected to be ignored since the source ssrc does not match our
// local ssrc.
- InjectRtcpPacket(p.Packet(), p.Length());
+ InjectRtcpPacket(p.Data(), p.Length());
EXPECT_CALL(mock_receiver_feedback_,
OnReceivedSenderReport(expected_sender_info_)).Times(1);
EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(kSenderSsrc,
- kLastSr,
- kDelayLastSr)).Times(1);
+ OnReceivedDelaySinceLastReport(
+ kSenderSsrc, kLastSr, kDelayLastSr)).Times(1);
// Enable receiving sender report.
rtcp_receiver_->SetRemoteSSRC(kSenderSsrc);
// Expected to be pass through since the sender ssrc match our local ssrc.
- InjectRtcpPacket(p.Packet(), p.Length());
+ InjectRtcpPacket(p.Data(), p.Length());
}
TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithRrtr) {
@@ -345,14 +325,14 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithRrtr) {
// Expected to be ignored since the source ssrc does not match our
// local ssrc.
- InjectRtcpPacket(p1.Packet(), p1.Length());
+ InjectRtcpPacket(p1.Data(), p1.Length());
EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(kSourceSsrc,
- kLastSr,
- kDelayLastSr)).Times(1);
- EXPECT_CALL(mock_receiver_feedback_, OnReceiverReferenceTimeReport(
- expected_receiver_reference_report_)).Times(1);
+ OnReceivedDelaySinceLastReport(
+ kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
+ EXPECT_CALL(mock_receiver_feedback_,
+ OnReceiverReferenceTimeReport(
+ expected_receiver_reference_report_)).Times(1);
// Enable receiving reference time report.
rtcp_receiver_->SetRemoteSSRC(kSenderSsrc);
@@ -364,7 +344,7 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithRrtr) {
p2.AddXrRrtrBlock();
// Expected to be pass through since the sender ssrc match our local ssrc.
- InjectRtcpPacket(p2.Packet(), p2.Length());
+ InjectRtcpPacket(p2.Data(), p2.Length());
}
TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithIntraFrameRequest) {
@@ -375,12 +355,11 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithIntraFrameRequest) {
// Expected to be ignored since the source ssrc does not match our
// local ssrc.
- InjectRtcpPacket(p1.Packet(), p1.Length());
+ InjectRtcpPacket(p1.Data(), p1.Length());
EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(kSourceSsrc,
- kLastSr,
- kDelayLastSr)).Times(1);
+ OnReceivedDelaySinceLastReport(
+ kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
TestRtcpPacketBuilder p2;
p2.AddRr(kSenderSsrc, 1);
@@ -388,23 +367,22 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithIntraFrameRequest) {
p2.AddPli(kSenderSsrc, kSourceSsrc);
// Expected to be pass through since the sender ssrc match our local ssrc.
- InjectRtcpPacket(p2.Packet(), p2.Length());
+ InjectRtcpPacket(p2.Data(), p2.Length());
}
TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithCastFeedback) {
TestRtcpPacketBuilder p1;
p1.AddRr(kSenderSsrc, 1);
p1.AddRb(kUnknownSsrc);
- p1.AddCast(kSenderSsrc, kUnknownSsrc);
+ p1.AddCast(kSenderSsrc, kUnknownSsrc, kTargetDelayMs);
// Expected to be ignored since the source ssrc does not match our
// local ssrc.
- InjectRtcpPacket(p1.Packet(), p1.Length());
+ InjectRtcpPacket(p1.Data(), p1.Length());
EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(kSourceSsrc,
- kLastSr,
- kDelayLastSr)).Times(1);
+ OnReceivedDelaySinceLastReport(
+ kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(1);
// Enable receiving the cast feedback.
@@ -413,10 +391,10 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithCastFeedback) {
TestRtcpPacketBuilder p2;
p2.AddRr(kSenderSsrc, 1);
p2.AddRb(kSourceSsrc);
- p2.AddCast(kSenderSsrc, kSourceSsrc);
+ p2.AddCast(kSenderSsrc, kSourceSsrc, kTargetDelayMs);
// Expected to be pass through since the sender ssrc match our local ssrc.
- InjectRtcpPacket(p2.Packet(), p2.Length());
+ InjectRtcpPacket(p2.Data(), p2.Length());
}
TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithCastVerification) {
@@ -428,9 +406,8 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithCastVerification) {
kSourceSsrc);
EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(kSourceSsrc,
- kLastSr,
- kDelayLastSr)).Times(1);
+ OnReceivedDelaySinceLastReport(
+ kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
// Enable receiving the cast feedback.
rtcp_receiver.SetRemoteSSRC(kSenderSsrc);
@@ -438,48 +415,15 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithCastVerification) {
TestRtcpPacketBuilder p;
p.AddRr(kSenderSsrc, 1);
p.AddRb(kSourceSsrc);
- p.AddCast(kSenderSsrc, kSourceSsrc);
+ p.AddCast(kSenderSsrc, kSourceSsrc, kTargetDelayMs);
// Expected to be pass through since the sender ssrc match our local ssrc.
- RtcpParser rtcp_parser(p.Packet(), p.Length());
+ RtcpParser rtcp_parser(p.Data(), p.Length());
rtcp_receiver.IncomingRtcpPacket(&rtcp_parser);
EXPECT_TRUE(sender_feedback_cast_verification.called());
}
-TEST_F(RtcpReceiverTest, InjectSenderReportWithCastSenderLogVerification) {
- RtcpReceiverCastLogVerification cast_log_verification;
- RtcpReceiver rtcp_receiver(cast_environment_,
- &mock_sender_feedback_,
- &cast_log_verification,
- &mock_rtt_feedback_,
- kSourceSsrc);
- rtcp_receiver.SetRemoteSSRC(kSenderSsrc);
-
- RtcpSenderLogMessage sender_log;
- for (int j = 0; j < 359; ++j) {
- RtcpSenderFrameLogMessage sender_frame_log;
- sender_frame_log.frame_status = kRtcpSenderFrameStatusSentToNetwork;
- sender_frame_log.rtp_timestamp = kRtpTimestamp + j * 90;
- sender_log.push_back(sender_frame_log);
- }
- cast_log_verification.SetExpectedSenderLog(sender_log);
-
- TestRtcpPacketBuilder p;
- p.AddSr(kSenderSsrc, 0);
- p.AddSdesCname(kSenderSsrc, kCName);
- p.AddSenderLog(kSenderSsrc);
-
- for (int i = 0; i < 359; ++i) {
- p.AddSenderFrameLog(kRtcpSenderFrameStatusSentToNetwork,
- kRtpTimestamp + i * 90);
- }
- RtcpParser rtcp_parser(p.Packet(), p.Length());
- rtcp_receiver.IncomingRtcpPacket(&rtcp_parser);
-
- EXPECT_TRUE(cast_log_verification.OnReceivedSenderLogCalled());
-}
-
TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationBase) {
static const uint32 kTimeBaseMs = 12345678;
static const uint32 kTimeDelayMs = 10;
@@ -494,21 +438,28 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationBase) {
&mock_rtt_feedback_,
kSourceSsrc);
rtcp_receiver.SetRemoteSSRC(kSenderSsrc);
+ rtcp_receiver.SetCastReceiverEventHistorySize(100);
RtcpReceiverLogMessage receiver_log;
RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp);
RtcpReceiverEventLogMessage event_log;
- event_log.type = kAckSent;
+ event_log.type = FRAME_ACK_SENT;
event_log.event_timestamp = testing_clock.NowTicks();
event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs);
frame_log.event_log_messages_.push_back(event_log);
testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
- event_log.type = kPacketReceived;
+ event_log.type = PACKET_RECEIVED;
event_log.event_timestamp = testing_clock.NowTicks();
event_log.packet_id = kLostPacketId1;
frame_log.event_log_messages_.push_back(event_log);
+
+ event_log.type = PACKET_RECEIVED;
+ event_log.event_timestamp = testing_clock.NowTicks();
+ event_log.packet_id = kLostPacketId2;
+ frame_log.event_log_messages_.push_back(event_log);
+
receiver_log.push_back(frame_log);
cast_log_verification.SetExpectedReceiverLog(receiver_log);
@@ -517,15 +468,22 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationBase) {
p.AddRr(kSenderSsrc, 1);
p.AddRb(kSourceSsrc);
p.AddReceiverLog(kSenderSsrc);
- p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs);
- p.AddReceiverEventLog(kDelayDeltaMs, 1, 0);
- p.AddReceiverEventLog(kLostPacketId1, 6, kTimeDelayMs);
+ p.AddReceiverFrameLog(kRtpTimestamp, 3, kTimeBaseMs);
+ p.AddReceiverEventLog(kDelayDeltaMs, FRAME_ACK_SENT, 0);
+ p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs);
+ p.AddReceiverEventLog(kLostPacketId2, PACKET_RECEIVED, kTimeDelayMs);
+
+ // Adds duplicated receiver event.
+ p.AddReceiverFrameLog(kRtpTimestamp, 3, kTimeBaseMs);
+ p.AddReceiverEventLog(kDelayDeltaMs, FRAME_ACK_SENT, 0);
+ p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs);
+ p.AddReceiverEventLog(kLostPacketId2, PACKET_RECEIVED, kTimeDelayMs);
EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(kSourceSsrc, kLastSr, kDelayLastSr)).
- Times(1);
+ OnReceivedDelaySinceLastReport(
+ kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
- RtcpParser rtcp_parser(p.Packet(), p.Length());
+ RtcpParser rtcp_parser(p.Data(), p.Length());
rtcp_receiver.IncomingRtcpPacket(&rtcp_parser);
EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled());
@@ -551,7 +509,7 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationMulti) {
for (int j = 0; j < 100; ++j) {
RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp);
RtcpReceiverEventLogMessage event_log;
- event_log.type = kAckSent;
+ event_log.type = FRAME_ACK_SENT;
event_log.event_timestamp = testing_clock.NowTicks();
event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs);
frame_log.event_log_messages_.push_back(event_log);
@@ -566,21 +524,19 @@ TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationMulti) {
p.AddRb(kSourceSsrc);
p.AddReceiverLog(kSenderSsrc);
for (int i = 0; i < 100; ++i) {
- p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs);
- p.AddReceiverEventLog(kDelayDeltaMs, 1, 0);
+ p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs);
+ p.AddReceiverEventLog(kDelayDeltaMs, FRAME_ACK_SENT, 0);
}
EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(kSourceSsrc, kLastSr, kDelayLastSr)).
- Times(1);
+ OnReceivedDelaySinceLastReport(
+ kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
- RtcpParser rtcp_parser(p.Packet(), p.Length());
+ RtcpParser rtcp_parser(p.Data(), p.Length());
rtcp_receiver.IncomingRtcpPacket(&rtcp_parser);
EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled());
}
-
-
} // namespace cast
} // namespace media