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

Unified Diff: media/cast/net/rtcp/rtcp_unittest.cc

Issue 1520613004: cast: Split Rtcp into two for sender and receiver (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@timestamp
Patch Set: Rebased Created 5 years 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/net/rtcp/rtcp_session.h ('k') | media/cast/net/rtcp/rtcp_utility.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/net/rtcp/rtcp_unittest.cc
diff --git a/media/cast/net/rtcp/rtcp_unittest.cc b/media/cast/net/rtcp/rtcp_unittest.cc
index 4364d3dd98b432f521708b0953d9aa3c538a7179..7b9b7538e56897c9920d0a3c2ed709493adfe752 100644
--- a/media/cast/net/rtcp/rtcp_unittest.cc
+++ b/media/cast/net/rtcp/rtcp_unittest.cc
@@ -11,14 +11,27 @@
#include "base/test/simple_test_tick_clock.h"
#include "media/cast/net/cast_transport_config.h"
#include "media/cast/net/pacing/paced_sender.h"
-#include "media/cast/net/rtcp/rtcp.h"
+#include "media/cast/net/rtcp/receiver_rtcp_session.h"
+#include "media/cast/net/rtcp/rtcp_session.h"
#include "media/cast/net/rtcp/rtcp_utility.h"
+#include "media/cast/net/rtcp/sender_rtcp_session.h"
#include "media/cast/test/skewed_tick_clock.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace media {
namespace cast {
+namespace {
+
+media::cast::RtcpTimeData CreateRtcpTimeData(base::TimeTicks now) {
+ media::cast::RtcpTimeData ret;
+ ret.timestamp = now;
+ media::cast::ConvertTimeTicksToNtp(now, &ret.ntp_seconds, &ret.ntp_fraction);
+ return ret;
+}
+
+} // namespace
+
using testing::_;
static const uint32_t kSenderSsrc = 0x10203;
@@ -32,7 +45,9 @@ class FakeRtcpTransport : public PacedPacketSender {
packet_delay_(base::TimeDelta::FromMilliseconds(42)),
paused_(false) {}
- void set_rtcp_destination(Rtcp* rtcp) { rtcp_ = rtcp; }
+ void set_rtcp_destination(RtcpSession* rtcp_session) {
+ rtcp_session_ = rtcp_session;
+ }
base::TimeDelta packet_delay() const { return packet_delay_; }
void set_packet_delay(base::TimeDelta delay) { packet_delay_ = delay; }
@@ -42,7 +57,7 @@ class FakeRtcpTransport : public PacedPacketSender {
if (paused_) {
packet_queue_.push_back(packet);
} else {
- rtcp_->IncomingRtcpPacket(&packet->data[0], packet->data.size());
+ rtcp_session_->IncomingRtcpPacket(&packet->data[0], packet->data.size());
}
return true;
}
@@ -63,8 +78,8 @@ class FakeRtcpTransport : public PacedPacketSender {
void Unpause() {
paused_ = false;
for (size_t i = 0; i < packet_queue_.size(); ++i) {
- rtcp_->IncomingRtcpPacket(&packet_queue_[i]->data[0],
- packet_queue_[i]->data.size());
+ rtcp_session_->IncomingRtcpPacket(&packet_queue_[i]->data[0],
+ packet_queue_[i]->data.size());
}
packet_queue_.clear();
}
@@ -76,7 +91,7 @@ class FakeRtcpTransport : public PacedPacketSender {
private:
base::SimpleTestTickClock* const clock_;
base::TimeDelta packet_delay_;
- Rtcp* rtcp_;
+ RtcpSession* rtcp_session_; // RTCP destination.
bool paused_;
std::vector<PacketRef> packet_queue_;
@@ -112,10 +127,7 @@ class RtcpTest : public ::testing::Test {
&sender_to_receiver_,
kSenderSsrc,
kReceiverSsrc),
- rtcp_for_receiver_(RtcpCastMessageCallback(),
- RtcpRttCallback(),
- RtcpLogMessageCallback(),
- receiver_clock_.get(),
+ rtcp_for_receiver_(receiver_clock_.get(),
&receiver_to_sender_,
kReceiverSsrc,
kSenderSsrc) {
@@ -135,9 +147,10 @@ class RtcpTest : public ::testing::Test {
FakeRtcpTransport sender_to_receiver_;
FakeRtcpTransport receiver_to_sender_;
MockFrameSender mock_frame_sender_;
- Rtcp rtcp_for_sender_;
- Rtcp rtcp_for_receiver_;
+ SenderRtcpSession rtcp_for_sender_;
+ ReceiverRtcpSession rtcp_for_receiver_;
+ private:
DISALLOW_COPY_AND_ASSIGN(RtcpTest);
};
@@ -153,8 +166,8 @@ TEST_F(RtcpTest, LipSyncGleanedFromSenderReport) {
const base::TimeTicks reference_time_sent = sender_clock_->NowTicks();
const RtpTimeTicks rtp_timestamp_sent =
RtpTimeTicks().Expand(UINT32_C(0xbee5));
- rtcp_for_sender_.SendRtcpFromRtpSender(
- reference_time_sent, rtp_timestamp_sent, 1, 1);
+ rtcp_for_sender_.SendRtcpReport(reference_time_sent, rtp_timestamp_sent, 1,
+ 1);
// Now the receiver should have lip-sync info. Confirm that the lip-sync
// reference time is the same as that sent.
@@ -180,14 +193,12 @@ TEST_F(RtcpTest, RoundTripTimesDeterminedFromReportPingPong) {
EXPECT_CALL(mock_frame_sender_, OnMeasuredRoundTripTime(_))
.Times(iterations);
- // Initially, neither side knows the round trip time.
+ // Sender does not know the RTT yet.
ASSERT_EQ(base::TimeDelta(), rtcp_for_sender_.current_round_trip_time());
- ASSERT_EQ(base::TimeDelta(), rtcp_for_receiver_.current_round_trip_time());
// Do a number of ping-pongs, checking how the round trip times are measured
- // by the sender and receiver.
+ // by the sender.
base::TimeDelta expected_rtt_according_to_sender;
- base::TimeDelta expected_rtt_according_to_receiver;
for (int i = 0; i < iterations; ++i) {
const base::TimeDelta one_way_trip_time =
base::TimeDelta::FromMilliseconds(1 << i);
@@ -198,33 +209,19 @@ TEST_F(RtcpTest, RoundTripTimesDeterminedFromReportPingPong) {
base::TimeTicks reference_time_sent = sender_clock_->NowTicks();
const RtpTimeTicks rtp_timestamp_sent =
RtpTimeTicks().Expand<uint32_t>(0xbee5) + RtpTimeDelta::FromTicks(i);
- rtcp_for_sender_.SendRtcpFromRtpSender(
- reference_time_sent, rtp_timestamp_sent, 1, 1);
+ rtcp_for_sender_.SendRtcpReport(reference_time_sent, rtp_timestamp_sent, 1,
+ 1);
EXPECT_EQ(expected_rtt_according_to_sender,
rtcp_for_sender_.current_round_trip_time());
-#ifdef SENDER_PROVIDES_REPORT_BLOCK
- EXPECT_EQ(expected_rtt_according_to_receiver,
- rtcp_for_receiver_.current_round_trip_time());
-#endif
// Receiver --> Sender
RtpReceiverStatistics stats;
- rtcp_for_receiver_.SendRtcpFromRtpReceiver(
- rtcp_for_receiver_.ConvertToNTPAndSave(receiver_clock_->NowTicks()),
- NULL, base::TimeDelta(), NULL, &stats);
+ rtcp_for_receiver_.SendRtcpReport(
+ CreateRtcpTimeData(receiver_clock_->NowTicks()), NULL,
+ base::TimeDelta(), NULL, &stats);
expected_rtt_according_to_sender = one_way_trip_time * 2;
EXPECT_EQ(expected_rtt_according_to_sender,
rtcp_for_sender_.current_round_trip_time());
-#ifdef SENDER_PROVIDES_REPORT_BLOCK
- EXPECT_EQ(expected_rtt_according_to_receiver,
- rtcp_for_receiver_.current_round_trip_time());
-#endif
-
- // In the next iteration of this loop, after the receiver gets the sender
- // report, it will be measuring a round trip time consisting of two
- // different one-way trip times.
- expected_rtt_according_to_receiver =
- (one_way_trip_time + one_way_trip_time * 2) / 2;
}
}
@@ -236,15 +233,15 @@ TEST_F(RtcpTest, RejectOldRtcpPacket) {
RtcpCastMessage cast_message(kSenderSsrc);
cast_message.ack_frame_id = 1;
receiver_to_sender_.Pause();
- rtcp_for_receiver_.SendRtcpFromRtpReceiver(
- rtcp_for_receiver_.ConvertToNTPAndSave(
- receiver_clock_->NowTicks() - base::TimeDelta::FromSeconds(10)),
+ rtcp_for_receiver_.SendRtcpReport(
+ CreateRtcpTimeData(receiver_clock_->NowTicks() -
+ base::TimeDelta::FromSeconds(10)),
&cast_message, base::TimeDelta(), NULL, NULL);
cast_message.ack_frame_id = 2;
- rtcp_for_receiver_.SendRtcpFromRtpReceiver(
- rtcp_for_receiver_.ConvertToNTPAndSave(receiver_clock_->NowTicks()),
- &cast_message, base::TimeDelta(), NULL, NULL);
+ rtcp_for_receiver_.SendRtcpReport(
+ CreateRtcpTimeData(receiver_clock_->NowTicks()), &cast_message,
+ base::TimeDelta(), NULL, NULL);
receiver_to_sender_.ReversePacketQueue();
receiver_to_sender_.Unpause();
@@ -258,15 +255,14 @@ TEST_F(RtcpTest, NegativeTimeTicks) {
// value for TimeTicks.
RtcpCastMessage cast_message(kSenderSsrc);
cast_message.ack_frame_id = 2;
- rtcp_for_receiver_.SendRtcpFromRtpReceiver(
- rtcp_for_receiver_.ConvertToNTPAndSave(
- base::TimeTicks() - base::TimeDelta::FromSeconds(5)),
+ rtcp_for_receiver_.SendRtcpReport(
+ CreateRtcpTimeData(base::TimeTicks() - base::TimeDelta::FromSeconds(5)),
&cast_message, base::TimeDelta(), NULL, NULL);
cast_message.ack_frame_id = 1;
- rtcp_for_receiver_.SendRtcpFromRtpReceiver(
- rtcp_for_receiver_.ConvertToNTPAndSave(base::TimeTicks()),
- &cast_message, base::TimeDelta(), NULL, NULL);
+ rtcp_for_receiver_.SendRtcpReport(CreateRtcpTimeData(base::TimeTicks()),
+ &cast_message, base::TimeDelta(), NULL,
+ NULL);
}
// TODO(miu): Find a better home for this test.
« no previous file with comments | « media/cast/net/rtcp/rtcp_session.h ('k') | media/cast/net/rtcp/rtcp_utility.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698