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

Side by Side Diff: media/cast/net/rtcp/rtcp_sender_unittest.cc

Issue 387933005: Cast: Refactor RTCP handling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix test 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « media/cast/net/rtcp/rtcp_sender.cc ('k') | media/cast/net/rtcp/rtcp_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/test/simple_test_tick_clock.h" 6 #include "base/test/simple_test_tick_clock.h"
7 #include "media/cast/cast_defines.h" 7 #include "media/cast/cast_defines.h"
8 #include "media/cast/cast_environment.h" 8 #include "media/cast/cast_environment.h"
9 #include "media/cast/net/cast_transport_defines.h" 9 #include "media/cast/net/cast_transport_defines.h"
10 #include "media/cast/net/pacing/paced_sender.h" 10 #include "media/cast/net/pacing/paced_sender.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 class RtcpSenderTest : public ::testing::Test { 85 class RtcpSenderTest : public ::testing::Test {
86 protected: 86 protected:
87 RtcpSenderTest() 87 RtcpSenderTest()
88 : testing_clock_(new base::SimpleTestTickClock()), 88 : testing_clock_(new base::SimpleTestTickClock()),
89 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)), 89 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)),
90 cast_environment_(new CastEnvironment( 90 cast_environment_(new CastEnvironment(
91 scoped_ptr<base::TickClock>(testing_clock_).Pass(), 91 scoped_ptr<base::TickClock>(testing_clock_).Pass(),
92 task_runner_, 92 task_runner_,
93 task_runner_, 93 task_runner_,
94 task_runner_)), 94 task_runner_)),
95 rtcp_sender_(new RtcpSender(cast_environment_, 95 rtcp_sender_(new RtcpSender(&test_transport_, kSendingSsrc, kCName)) {}
96 &test_transport_,
97 kSendingSsrc,
98 kCName)) {}
99 96
100 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. 97 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment.
101 TestRtcpTransport test_transport_; 98 TestRtcpTransport test_transport_;
102 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; 99 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_;
103 scoped_refptr<CastEnvironment> cast_environment_; 100 scoped_refptr<CastEnvironment> cast_environment_;
104 scoped_ptr<RtcpSender> rtcp_sender_; 101 scoped_ptr<RtcpSender> rtcp_sender_;
105 102
106 DISALLOW_COPY_AND_ASSIGN(RtcpSenderTest); 103 DISALLOW_COPY_AND_ASSIGN(RtcpSenderTest);
107 }; 104 };
108 105
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 TestRtcpPacketBuilder p; 162 TestRtcpPacketBuilder p;
166 p.AddRr(kSendingSsrc, 1); 163 p.AddRr(kSendingSsrc, 1);
167 p.AddRb(kMediaSsrc); 164 p.AddRb(kMediaSsrc);
168 p.AddSdesCname(kSendingSsrc, kCName); 165 p.AddSdesCname(kSendingSsrc, kCName);
169 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); 166 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay);
170 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 167 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
171 168
172 RtcpReportBlock report_block = GetReportBlock(); 169 RtcpReportBlock report_block = GetReportBlock();
173 170
174 RtcpCastMessage cast_message(kMediaSsrc); 171 RtcpCastMessage cast_message(kMediaSsrc);
175 cast_message.ack_frame_id_ = kAckFrameId; 172 cast_message.ack_frame_id = kAckFrameId;
176 PacketIdSet missing_packets; 173 PacketIdSet missing_packets;
177 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets; 174 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets;
178 175
179 missing_packets.insert(kLostPacketId1); 176 missing_packets.insert(kLostPacketId1);
180 missing_packets.insert(kLostPacketId2); 177 missing_packets.insert(kLostPacketId2);
181 missing_packets.insert(kLostPacketId3); 178 missing_packets.insert(kLostPacketId3);
182 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = 179 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] =
183 missing_packets; 180 missing_packets;
184 181
185 rtcp_sender_->SendRtcpFromRtpReceiver( 182 rtcp_sender_->SendRtcpFromRtpReceiver(
186 kRtcpRr | kRtcpCast, 183 kRtcpRr | kRtcpCast,
187 &report_block, 184 &report_block,
188 NULL, 185 NULL,
189 &cast_message, 186 &cast_message,
190 NULL, 187 NULL,
191 kDefaultDelay); 188 kDefaultDelay);
192 189
(...skipping 10 matching lines...) Expand all
203 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); 200 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay);
204 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 201 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
205 202
206 RtcpReportBlock report_block = GetReportBlock(); 203 RtcpReportBlock report_block = GetReportBlock();
207 204
208 RtcpReceiverReferenceTimeReport rrtr; 205 RtcpReceiverReferenceTimeReport rrtr;
209 rrtr.ntp_seconds = kNtpHigh; 206 rrtr.ntp_seconds = kNtpHigh;
210 rrtr.ntp_fraction = kNtpLow; 207 rrtr.ntp_fraction = kNtpLow;
211 208
212 RtcpCastMessage cast_message(kMediaSsrc); 209 RtcpCastMessage cast_message(kMediaSsrc);
213 cast_message.ack_frame_id_ = kAckFrameId; 210 cast_message.ack_frame_id = kAckFrameId;
214 PacketIdSet missing_packets; 211 PacketIdSet missing_packets;
215 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets; 212 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets;
216 213
217 missing_packets.insert(kLostPacketId1); 214 missing_packets.insert(kLostPacketId1);
218 missing_packets.insert(kLostPacketId2); 215 missing_packets.insert(kLostPacketId2);
219 missing_packets.insert(kLostPacketId3); 216 missing_packets.insert(kLostPacketId3);
220 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = 217 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] =
221 missing_packets; 218 missing_packets;
222 219
223 rtcp_sender_->SendRtcpFromRtpReceiver( 220 rtcp_sender_->SendRtcpFromRtpReceiver(
224 kRtcpRr | kRtcpRrtr | kRtcpCast, 221 kRtcpRr | kRtcpRrtr | kRtcpCast,
225 &report_block, 222 &report_block,
226 &rrtr, 223 &rrtr,
227 &cast_message, 224 &cast_message,
228 NULL, 225 NULL,
229 kDefaultDelay); 226 kDefaultDelay);
230 227
(...skipping 13 matching lines...) Expand all
244 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); 241 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay);
245 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 242 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
246 243
247 RtcpReportBlock report_block = GetReportBlock(); 244 RtcpReportBlock report_block = GetReportBlock();
248 245
249 RtcpReceiverReferenceTimeReport rrtr; 246 RtcpReceiverReferenceTimeReport rrtr;
250 rrtr.ntp_seconds = kNtpHigh; 247 rrtr.ntp_seconds = kNtpHigh;
251 rrtr.ntp_fraction = kNtpLow; 248 rrtr.ntp_fraction = kNtpLow;
252 249
253 RtcpCastMessage cast_message(kMediaSsrc); 250 RtcpCastMessage cast_message(kMediaSsrc);
254 cast_message.ack_frame_id_ = kAckFrameId; 251 cast_message.ack_frame_id = kAckFrameId;
255 PacketIdSet missing_packets; 252 PacketIdSet missing_packets;
256 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets; 253 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets;
257 254
258 missing_packets.insert(kLostPacketId1); 255 missing_packets.insert(kLostPacketId1);
259 missing_packets.insert(kLostPacketId2); 256 missing_packets.insert(kLostPacketId2);
260 missing_packets.insert(kLostPacketId3); 257 missing_packets.insert(kLostPacketId3);
261 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = 258 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] =
262 missing_packets; 259 missing_packets;
263 260
264 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); 261 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT);
265 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; 262 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events;
266 263
267 rtcp_sender_->SendRtcpFromRtpReceiver( 264 rtcp_sender_->SendRtcpFromRtpReceiver(
268 kRtcpRr | kRtcpRrtr | kRtcpCast | 265 kRtcpRr | kRtcpRrtr | kRtcpCast |
269 kRtcpReceiverLog, 266 kRtcpReceiverLog,
270 &report_block, 267 &report_block,
271 &rrtr, 268 &rrtr,
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 kDefaultDelay); 543 kDefaultDelay);
547 544
548 testing_clock.Advance( 545 testing_clock.Advance(
549 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); 546 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs));
550 time_base_ms += kTimeBetweenEventsMs; 547 time_base_ms += kTimeBetweenEventsMs;
551 } 548 }
552 549
553 EXPECT_EQ(static_cast<int>(packet_count), test_transport_.packet_count()); 550 EXPECT_EQ(static_cast<int>(packet_count), test_transport_.packet_count());
554 } 551 }
555 552
553 TEST_F(RtcpSenderTest, RtcpSenderReport) {
554 RtcpSenderInfo sender_info;
555 sender_info.ntp_seconds = kNtpHigh;
556 sender_info.ntp_fraction = kNtpLow;
557 sender_info.rtp_timestamp = kRtpTimestamp;
558 sender_info.send_packet_count = kSendPacketCount;
559 sender_info.send_octet_count = kSendOctetCount;
560
561 RtcpDlrrReportBlock dlrr_rb;
562 dlrr_rb.last_rr = kLastRr;
563 dlrr_rb.delay_since_last_rr = kDelayLastRr;
564
565 // Sender report + c_name.
566 TestRtcpPacketBuilder p;
567 p.AddSr(kSendingSsrc, 0);
568 p.AddSdesCname(kSendingSsrc, kCName);
569 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
570
571 rtcp_sender_->SendRtcpFromRtpSender(kRtcpSr,
572 sender_info,
573 dlrr_rb);
574
575 EXPECT_EQ(1, test_transport_.packet_count());
576 }
577
578 TEST_F(RtcpSenderTest, RtcpSenderReportWithDlrr) {
579 RtcpSenderInfo sender_info;
580 sender_info.ntp_seconds = kNtpHigh;
581 sender_info.ntp_fraction = kNtpLow;
582 sender_info.rtp_timestamp = kRtpTimestamp;
583 sender_info.send_packet_count = kSendPacketCount;
584 sender_info.send_octet_count = kSendOctetCount;
585
586 // Sender report + c_name + dlrr.
587 TestRtcpPacketBuilder p1;
588 p1.AddSr(kSendingSsrc, 0);
589 p1.AddSdesCname(kSendingSsrc, kCName);
590 p1.AddXrHeader(kSendingSsrc);
591 p1.AddXrDlrrBlock(kSendingSsrc);
592 test_transport_.SetExpectedRtcpPacket(p1.GetPacket().Pass());
593
594 RtcpDlrrReportBlock dlrr_rb;
595 dlrr_rb.last_rr = kLastRr;
596 dlrr_rb.delay_since_last_rr = kDelayLastRr;
597
598 rtcp_sender_->SendRtcpFromRtpSender(
599 kRtcpSr | kRtcpDlrr,
600 sender_info,
601 dlrr_rb);
602
603 EXPECT_EQ(1, test_transport_.packet_count());
604 }
605
556 } // namespace cast 606 } // namespace cast
557 } // namespace media 607 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/net/rtcp/rtcp_sender.cc ('k') | media/cast/net/rtcp/rtcp_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698