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

Unified Diff: media/cast/rtcp/rtcp_receiver_unittest.cc

Issue 388663003: Cast: Reshuffle files under media/cast (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: missing includes Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/cast/rtcp/rtcp_receiver.cc ('k') | media/cast/rtcp/rtcp_sender.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/rtcp/rtcp_receiver_unittest.cc
diff --git a/media/cast/rtcp/rtcp_receiver_unittest.cc b/media/cast/rtcp/rtcp_receiver_unittest.cc
deleted file mode 100644
index 485c3ee765eb3312191f344b5e69d6604f2c4c3b..0000000000000000000000000000000000000000
--- a/media/cast/rtcp/rtcp_receiver_unittest.cc
+++ /dev/null
@@ -1,543 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/memory/scoped_ptr.h"
-#include "base/test/simple_test_tick_clock.h"
-#include "media/cast/cast_environment.h"
-#include "media/cast/rtcp/mock_rtcp_receiver_feedback.h"
-#include "media/cast/rtcp/mock_rtcp_sender_feedback.h"
-#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_single_thread_task_runner.h"
-#include "media/cast/transport/cast_transport_defines.h"
-#include "testing/gmock/include/gmock/gmock.h"
-
-namespace media {
-namespace cast {
-
-using testing::_;
-
-static const uint32 kSenderSsrc = 0x10203;
-static const uint32 kSourceSsrc = 0x40506;
-static const uint32 kUnknownSsrc = 0xDEAD;
-static const base::TimeDelta kTargetDelay =
- base::TimeDelta::FromMilliseconds(100);
-static const std::string kCName("test@10.1.1.1");
-
-namespace {
-class SenderFeedbackCastVerification : public RtcpSenderFeedback {
- public:
- SenderFeedbackCastVerification() : called_(false) {}
-
- virtual void OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback)
- OVERRIDE {
- EXPECT_EQ(cast_feedback.media_ssrc_, kSenderSsrc);
- EXPECT_EQ(cast_feedback.ack_frame_id_, kAckFrameId);
-
- MissingFramesAndPacketsMap::const_iterator frame_it =
- cast_feedback.missing_frames_and_packets_.begin();
-
- EXPECT_TRUE(frame_it != cast_feedback.missing_frames_and_packets_.end());
- EXPECT_EQ(kLostFrameId, frame_it->first);
- 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);
- EXPECT_EQ(3UL, frame_it->second.size());
- PacketIdSet::const_iterator packet_it = frame_it->second.begin();
- EXPECT_EQ(kLostPacketId1, *packet_it);
- ++packet_it;
- EXPECT_EQ(kLostPacketId2, *packet_it);
- ++packet_it;
- EXPECT_EQ(kLostPacketId3, *packet_it);
- ++frame_it;
- EXPECT_EQ(frame_it, cast_feedback.missing_frames_and_packets_.end());
- called_ = true;
- }
-
- bool called() const { return called_; }
-
- private:
- bool called_;
-
- DISALLOW_COPY_AND_ASSIGN(SenderFeedbackCastVerification);
-};
-
-class RtcpReceiverCastLogVerification : public RtcpReceiverFeedback {
- public:
- RtcpReceiverCastLogVerification()
- : called_on_received_sender_log_(false),
- called_on_received_receiver_log_(false) {}
-
- virtual void OnReceivedSenderReport(
- const transport::RtcpSenderInfo& remote_sender_info) OVERRIDE{};
-
- virtual void OnReceiverReferenceTimeReport(
- const RtcpReceiverReferenceTimeReport& remote_time_report) OVERRIDE{};
-
- virtual void OnReceivedSendReportRequest() 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();
- 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_);
- EXPECT_EQ(expected_it->event_log_messages_.size(),
- incoming_it->event_log_messages_.size());
-
- RtcpReceiverEventLogMessages::const_iterator event_incoming_it =
- incoming_it->event_log_messages_.begin();
- RtcpReceiverEventLogMessages::const_iterator event_expected_it =
- expected_it->event_log_messages_.begin();
- for (; event_incoming_it != incoming_it->event_log_messages_.end();
- ++event_incoming_it, ++event_expected_it) {
- 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 == PACKET_RECEIVED) {
- EXPECT_EQ(event_expected_it->packet_id, event_incoming_it->packet_id);
- } else {
- EXPECT_EQ(event_expected_it->delay_delta,
- event_incoming_it->delay_delta);
- }
- }
- expected_receiver_log_.pop_front();
- expected_it = expected_receiver_log_.begin();
- }
- called_on_received_receiver_log_ = true;
- }
-
- bool OnReceivedReceiverLogCalled() {
- return called_on_received_receiver_log_ && expected_receiver_log_.empty();
- }
-
- void SetExpectedReceiverLog(const RtcpReceiverLogMessage& receiver_log) {
- expected_receiver_log_ = receiver_log;
- }
-
- private:
- RtcpReceiverLogMessage expected_receiver_log_;
- bool called_on_received_sender_log_;
- bool called_on_received_receiver_log_;
-
- DISALLOW_COPY_AND_ASSIGN(RtcpReceiverCastLogVerification);
-};
-
-} // namespace
-
-class RtcpReceiverTest : public ::testing::Test {
- protected:
- RtcpReceiverTest()
- : 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)) {
- 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_sender_feedback_, OnReceivedCastFeedback(_)).Times(0);
- EXPECT_CALL(mock_rtt_feedback_, OnReceivedDelaySinceLastReport(_, _, _))
- .Times(0);
-
- expected_sender_info_.ntp_seconds = kNtpHigh;
- expected_sender_info_.ntp_fraction = kNtpLow;
- expected_sender_info_.rtp_timestamp = kRtpTimestamp;
- expected_sender_info_.send_packet_count = kSendPacketCount;
- expected_sender_info_.send_octet_count = kSendOctetCount;
-
- expected_report_block_.remote_ssrc = kSenderSsrc;
- expected_report_block_.media_ssrc = kSourceSsrc;
- expected_report_block_.fraction_lost = kLoss >> 24;
- expected_report_block_.cumulative_lost = kLoss & 0xffffff;
- expected_report_block_.extended_high_sequence_number = kExtendedMax;
- expected_report_block_.jitter = kTestJitter;
- expected_report_block_.last_sr = kLastSr;
- expected_report_block_.delay_since_last_sr = kDelayLastSr;
- expected_receiver_reference_report_.remote_ssrc = kSenderSsrc;
- expected_receiver_reference_report_.ntp_seconds = kNtpHigh;
- 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_; // 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_;
- transport::RtcpSenderInfo expected_sender_info_;
- transport::RtcpReportBlock expected_report_block_;
- RtcpReceiverReferenceTimeReport expected_receiver_reference_report_;
-
- DISALLOW_COPY_AND_ASSIGN(RtcpReceiverTest);
-};
-
-TEST_F(RtcpReceiverTest, BrokenPacketIsIgnored) {
- const uint8 bad_packet[] = {0, 0, 0, 0};
- InjectRtcpPacket(bad_packet, sizeof(bad_packet));
-}
-
-TEST_F(RtcpReceiverTest, InjectSenderReportPacket) {
- TestRtcpPacketBuilder p;
- p.AddSr(kSenderSsrc, 0);
-
- // Expected to be ignored since the sender ssrc does not match our
- // remote ssrc.
- 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.Data(), p.Length());
-}
-
-TEST_F(RtcpReceiverTest, InjectReceiveReportPacket) {
- TestRtcpPacketBuilder p1;
- p1.AddRr(kSenderSsrc, 1);
- p1.AddRb(kUnknownSsrc);
-
- // Expected to be ignored since the source ssrc does not match our
- // local ssrc.
- InjectRtcpPacket(p1.Data(), p1.Length());
-
- EXPECT_CALL(mock_rtt_feedback_,
- 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.Data(), p2.Length());
-}
-
-TEST_F(RtcpReceiverTest, InjectSenderReportWithReportBlockPacket) {
- TestRtcpPacketBuilder p1;
- p1.AddSr(kSenderSsrc, 1);
- p1.AddRb(kUnknownSsrc);
-
- // Sender report expected to be ignored since the sender ssrc does not match
- // our remote ssrc.
- // Report block expected to be ignored since the source ssrc does not match
- // our local ssrc.
- InjectRtcpPacket(p1.Data(), p1.Length());
-
- EXPECT_CALL(mock_receiver_feedback_,
- OnReceivedSenderReport(expected_sender_info_)).Times(1);
- rtcp_receiver_->SetRemoteSSRC(kSenderSsrc);
-
- // Sender report expected to be pass through since the sender ssrc match our
- // remote ssrc.
- // Report block expected to be ignored since the source ssrc does not match
- // our local ssrc.
- InjectRtcpPacket(p1.Data(), p1.Length());
-
- EXPECT_CALL(mock_receiver_feedback_, OnReceivedSenderReport(_)).Times(0);
- EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
-
- rtcp_receiver_->SetRemoteSSRC(0);
-
- TestRtcpPacketBuilder p2;
- p2.AddSr(kSenderSsrc, 1);
- p2.AddRb(kSourceSsrc);
-
- // Sender report expected to be ignored since the sender ssrc does not match
- // our remote ssrc.
- // Receiver report expected to be pass through since the sender ssrc match
- // our local ssrc.
- 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);
-
- rtcp_receiver_->SetRemoteSSRC(kSenderSsrc);
-
- // Sender report expected to be pass through since the sender ssrc match our
- // remote ssrc.
- // Receiver report expected to be pass through since the sender ssrc match
- // our local ssrc.
- InjectRtcpPacket(p2.Data(), p2.Length());
-}
-
-TEST_F(RtcpReceiverTest, InjectSenderReportPacketWithDlrr) {
- TestRtcpPacketBuilder p;
- p.AddSr(kSenderSsrc, 0);
- p.AddXrHeader(kSenderSsrc);
- p.AddXrUnknownBlock();
- p.AddXrExtendedDlrrBlock(kSenderSsrc);
- p.AddXrUnknownBlock();
- p.AddSdesCname(kSenderSsrc, kCName);
-
- // Expected to be ignored since the source ssrc does not match our
- // local ssrc.
- 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);
-
- // Enable receiving sender report.
- rtcp_receiver_->SetRemoteSSRC(kSenderSsrc);
-
- // Expected to be pass through since the sender ssrc match our local ssrc.
- InjectRtcpPacket(p.Data(), p.Length());
-}
-
-TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithRrtr) {
- TestRtcpPacketBuilder p1;
- p1.AddRr(kSenderSsrc, 1);
- p1.AddRb(kUnknownSsrc);
- p1.AddXrHeader(kSenderSsrc);
- p1.AddXrRrtrBlock();
-
- // Expected to be ignored since the source ssrc does not match our
- // local ssrc.
- 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);
-
- // Enable receiving reference time report.
- rtcp_receiver_->SetRemoteSSRC(kSenderSsrc);
-
- TestRtcpPacketBuilder p2;
- p2.AddRr(kSenderSsrc, 1);
- p2.AddRb(kSourceSsrc);
- p2.AddXrHeader(kSenderSsrc);
- p2.AddXrRrtrBlock();
-
- // Expected to be pass through since the sender ssrc match our local ssrc.
- InjectRtcpPacket(p2.Data(), p2.Length());
-}
-
-TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithIntraFrameRequest) {
- TestRtcpPacketBuilder p1;
- p1.AddRr(kSenderSsrc, 1);
- p1.AddRb(kUnknownSsrc);
- p1.AddPli(kSenderSsrc, kUnknownSsrc);
-
- // Expected to be ignored since the source ssrc does not match our
- // local ssrc.
- InjectRtcpPacket(p1.Data(), p1.Length());
-
- EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
-
- TestRtcpPacketBuilder p2;
- p2.AddRr(kSenderSsrc, 1);
- p2.AddRb(kSourceSsrc);
- p2.AddPli(kSenderSsrc, kSourceSsrc);
-
- // Expected to be pass through since the sender ssrc match our local ssrc.
- InjectRtcpPacket(p2.Data(), p2.Length());
-}
-
-TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithCastFeedback) {
- TestRtcpPacketBuilder p1;
- p1.AddRr(kSenderSsrc, 1);
- p1.AddRb(kUnknownSsrc);
- p1.AddCast(kSenderSsrc, kUnknownSsrc, kTargetDelay);
-
- // Expected to be ignored since the source ssrc does not match our
- // local ssrc.
- InjectRtcpPacket(p1.Data(), p1.Length());
-
- EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
- EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(1);
-
- // Enable receiving the cast feedback.
- rtcp_receiver_->SetRemoteSSRC(kSenderSsrc);
-
- TestRtcpPacketBuilder p2;
- p2.AddRr(kSenderSsrc, 1);
- p2.AddRb(kSourceSsrc);
- p2.AddCast(kSenderSsrc, kSourceSsrc, kTargetDelay);
-
- // Expected to be pass through since the sender ssrc match our local ssrc.
- InjectRtcpPacket(p2.Data(), p2.Length());
-}
-
-TEST_F(RtcpReceiverTest, InjectReceiverReportPacketWithCastVerification) {
- SenderFeedbackCastVerification sender_feedback_cast_verification;
- RtcpReceiver rtcp_receiver(cast_environment_,
- &sender_feedback_cast_verification,
- &mock_receiver_feedback_,
- &mock_rtt_feedback_,
- kSourceSsrc);
-
- EXPECT_CALL(mock_rtt_feedback_,
- OnReceivedDelaySinceLastReport(
- kSourceSsrc, kLastSr, kDelayLastSr)).Times(1);
-
- // Enable receiving the cast feedback.
- rtcp_receiver.SetRemoteSSRC(kSenderSsrc);
-
- TestRtcpPacketBuilder p;
- p.AddRr(kSenderSsrc, 1);
- p.AddRb(kSourceSsrc);
- p.AddCast(kSenderSsrc, kSourceSsrc, kTargetDelay);
-
- // Expected to be pass through since the sender ssrc match our local ssrc.
- RtcpParser rtcp_parser(p.Data(), p.Length());
- rtcp_receiver.IncomingRtcpPacket(&rtcp_parser);
-
- EXPECT_TRUE(sender_feedback_cast_verification.called());
-}
-
-TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationBase) {
- static const uint32 kTimeBaseMs = 12345678;
- static const uint32 kTimeDelayMs = 10;
- static const uint32 kDelayDeltaMs = 123;
- base::SimpleTestTickClock testing_clock;
- testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
-
- RtcpReceiverCastLogVerification cast_log_verification;
- RtcpReceiver rtcp_receiver(cast_environment_,
- &mock_sender_feedback_,
- &cast_log_verification,
- &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 = 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 = 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);
-
- TestRtcpPacketBuilder p;
- p.AddRr(kSenderSsrc, 1);
- p.AddRb(kSourceSsrc);
- p.AddReceiverLog(kSenderSsrc);
- 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);
-
- RtcpParser rtcp_parser(p.Data(), p.Length());
- rtcp_receiver.IncomingRtcpPacket(&rtcp_parser);
-
- EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled());
-}
-
-TEST_F(RtcpReceiverTest, InjectReceiverReportWithReceiverLogVerificationMulti) {
- static const uint32 kTimeBaseMs = 12345678;
- static const uint32 kTimeDelayMs = 10;
- static const uint32 kDelayDeltaMs = 123;
- base::SimpleTestTickClock testing_clock;
- testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
-
- RtcpReceiverCastLogVerification cast_log_verification;
- RtcpReceiver rtcp_receiver(cast_environment_,
- &mock_sender_feedback_,
- &cast_log_verification,
- &mock_rtt_feedback_,
- kSourceSsrc);
- rtcp_receiver.SetRemoteSSRC(kSenderSsrc);
-
- RtcpReceiverLogMessage receiver_log;
-
- for (int j = 0; j < 100; ++j) {
- RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp);
- RtcpReceiverEventLogMessage event_log;
- 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);
- receiver_log.push_back(frame_log);
- testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
- }
-
- cast_log_verification.SetExpectedReceiverLog(receiver_log);
-
- TestRtcpPacketBuilder p;
- p.AddRr(kSenderSsrc, 1);
- p.AddRb(kSourceSsrc);
- p.AddReceiverLog(kSenderSsrc);
- for (int i = 0; i < 100; ++i) {
- 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);
-
- RtcpParser rtcp_parser(p.Data(), p.Length());
- rtcp_receiver.IncomingRtcpPacket(&rtcp_parser);
-
- EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled());
-}
-
-} // namespace cast
-} // namespace media
« no previous file with comments | « media/cast/rtcp/rtcp_receiver.cc ('k') | media/cast/rtcp/rtcp_sender.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698