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

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

Issue 427733002: Cast: Remove unused RTCP messages (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merged Created 6 years, 4 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"
11 #include "media/cast/net/rtcp/receiver_rtcp_event_subscriber.h" 11 #include "media/cast/net/rtcp/receiver_rtcp_event_subscriber.h"
12 #include "media/cast/net/rtcp/rtcp_sender.h" 12 #include "media/cast/net/rtcp/rtcp_sender.h"
13 #include "media/cast/net/rtcp/rtcp_utility.h" 13 #include "media/cast/net/rtcp/rtcp_utility.h"
14 #include "media/cast/net/rtcp/test_rtcp_packet_builder.h" 14 #include "media/cast/net/rtcp/test_rtcp_packet_builder.h"
15 #include "media/cast/test/fake_single_thread_task_runner.h" 15 #include "media/cast/test/fake_single_thread_task_runner.h"
16 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
17 17
18 namespace media { 18 namespace media {
19 namespace cast { 19 namespace cast {
20 20
21 namespace { 21 namespace {
22 static const uint32 kSendingSsrc = 0x12345678; 22 static const uint32 kSendingSsrc = 0x12345678;
23 static const uint32 kMediaSsrc = 0x87654321; 23 static const uint32 kMediaSsrc = 0x87654321;
24 static const base::TimeDelta kDefaultDelay = 24 static const base::TimeDelta kDefaultDelay =
25 base::TimeDelta::FromMilliseconds(100); 25 base::TimeDelta::FromMilliseconds(100);
26 static const std::string kCName("test@10.1.1.1");
27 26
28 RtcpReportBlock GetReportBlock() { 27 RtcpReportBlock GetReportBlock() {
29 RtcpReportBlock report_block; 28 RtcpReportBlock report_block;
30 // Initialize remote_ssrc to a "clearly illegal" value. 29 // Initialize remote_ssrc to a "clearly illegal" value.
31 report_block.remote_ssrc = 0xDEAD; 30 report_block.remote_ssrc = 0xDEAD;
32 report_block.media_ssrc = kMediaSsrc; // SSRC of the RTP packet sender. 31 report_block.media_ssrc = kMediaSsrc; // SSRC of the RTP packet sender.
33 report_block.fraction_lost = kLoss >> 24; 32 report_block.fraction_lost = kLoss >> 24;
34 report_block.cumulative_lost = kLoss; // 24 bits valid. 33 report_block.cumulative_lost = kLoss; // 24 bits valid.
35 report_block.extended_high_sequence_number = kExtendedMax; 34 report_block.extended_high_sequence_number = kExtendedMax;
36 report_block.jitter = kTestJitter; 35 report_block.jitter = kTestJitter;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 class RtcpSenderTest : public ::testing::Test { 86 class RtcpSenderTest : public ::testing::Test {
88 protected: 87 protected:
89 RtcpSenderTest() 88 RtcpSenderTest()
90 : testing_clock_(new base::SimpleTestTickClock()), 89 : testing_clock_(new base::SimpleTestTickClock()),
91 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)), 90 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)),
92 cast_environment_(new CastEnvironment( 91 cast_environment_(new CastEnvironment(
93 scoped_ptr<base::TickClock>(testing_clock_).Pass(), 92 scoped_ptr<base::TickClock>(testing_clock_).Pass(),
94 task_runner_, 93 task_runner_,
95 task_runner_, 94 task_runner_,
96 task_runner_)), 95 task_runner_)),
97 rtcp_sender_(new RtcpSender(&test_transport_, kSendingSsrc, kCName)) {} 96 rtcp_sender_(new RtcpSender(&test_transport_, kSendingSsrc)) {}
98 97
99 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. 98 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment.
100 TestRtcpTransport test_transport_; 99 TestRtcpTransport test_transport_;
101 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; 100 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_;
102 scoped_refptr<CastEnvironment> cast_environment_; 101 scoped_refptr<CastEnvironment> cast_environment_;
103 scoped_ptr<RtcpSender> rtcp_sender_; 102 scoped_ptr<RtcpSender> rtcp_sender_;
104 103
105 DISALLOW_COPY_AND_ASSIGN(RtcpSenderTest); 104 DISALLOW_COPY_AND_ASSIGN(RtcpSenderTest);
106 }; 105 };
107 106
108 TEST_F(RtcpSenderTest, RtcpReceiverReport) { 107 TEST_F(RtcpSenderTest, RtcpReceiverReport) {
109 // Empty receiver report + c_name. 108 // Empty receiver report.
110 TestRtcpPacketBuilder p1; 109 TestRtcpPacketBuilder p1;
111 p1.AddRr(kSendingSsrc, 0); 110 p1.AddRr(kSendingSsrc, 0);
112 p1.AddSdesCname(kSendingSsrc, kCName);
113 test_transport_.SetExpectedRtcpPacket(p1.GetPacket()); 111 test_transport_.SetExpectedRtcpPacket(p1.GetPacket());
114 112
115 rtcp_sender_->SendRtcpFromRtpReceiver( 113 rtcp_sender_->SendRtcpFromRtpReceiver(
116 kRtcpRr, NULL, NULL, NULL, NULL, kDefaultDelay); 114 kRtcpRr, NULL, NULL, NULL, NULL, kDefaultDelay);
117 115
118 EXPECT_EQ(1, test_transport_.packet_count()); 116 EXPECT_EQ(1, test_transport_.packet_count());
119 117
120 // Receiver report with report block + c_name. 118 // Receiver report with report block.
121 TestRtcpPacketBuilder p2; 119 TestRtcpPacketBuilder p2;
122 p2.AddRr(kSendingSsrc, 1); 120 p2.AddRr(kSendingSsrc, 1);
123 p2.AddRb(kMediaSsrc); 121 p2.AddRb(kMediaSsrc);
124 p2.AddSdesCname(kSendingSsrc, kCName);
125 test_transport_.SetExpectedRtcpPacket(p2.GetPacket().Pass()); 122 test_transport_.SetExpectedRtcpPacket(p2.GetPacket().Pass());
126 123
127 RtcpReportBlock report_block = GetReportBlock(); 124 RtcpReportBlock report_block = GetReportBlock();
128 125
129 rtcp_sender_->SendRtcpFromRtpReceiver( 126 rtcp_sender_->SendRtcpFromRtpReceiver(
130 kRtcpRr, &report_block, NULL, NULL, NULL, kDefaultDelay); 127 kRtcpRr, &report_block, NULL, NULL, NULL, kDefaultDelay);
131 128
132 EXPECT_EQ(2, test_transport_.packet_count()); 129 EXPECT_EQ(2, test_transport_.packet_count());
133 } 130 }
134 131
135 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtr) { 132 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtr) {
136 // Receiver report with report block + c_name. 133 // Receiver report with report block.
137 TestRtcpPacketBuilder p; 134 TestRtcpPacketBuilder p;
138 p.AddRr(kSendingSsrc, 1); 135 p.AddRr(kSendingSsrc, 1);
139 p.AddRb(kMediaSsrc); 136 p.AddRb(kMediaSsrc);
140 p.AddSdesCname(kSendingSsrc, kCName);
141 p.AddXrHeader(kSendingSsrc); 137 p.AddXrHeader(kSendingSsrc);
142 p.AddXrRrtrBlock(); 138 p.AddXrRrtrBlock();
143 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 139 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
144 140
145 RtcpReportBlock report_block = GetReportBlock(); 141 RtcpReportBlock report_block = GetReportBlock();
146 142
147 RtcpReceiverReferenceTimeReport rrtr; 143 RtcpReceiverReferenceTimeReport rrtr;
148 rrtr.ntp_seconds = kNtpHigh; 144 rrtr.ntp_seconds = kNtpHigh;
149 rrtr.ntp_fraction = kNtpLow; 145 rrtr.ntp_fraction = kNtpLow;
150 146
151 rtcp_sender_->SendRtcpFromRtpReceiver( 147 rtcp_sender_->SendRtcpFromRtpReceiver(
152 kRtcpRr | kRtcpRrtr, 148 kRtcpRr | kRtcpRrtr,
153 &report_block, 149 &report_block,
154 &rrtr, 150 &rrtr,
155 NULL, 151 NULL,
156 NULL, 152 NULL,
157 kDefaultDelay); 153 kDefaultDelay);
158 154
159 EXPECT_EQ(1, test_transport_.packet_count()); 155 EXPECT_EQ(1, test_transport_.packet_count());
160 } 156 }
161 157
162 TEST_F(RtcpSenderTest, RtcpReceiverReportWithCast) { 158 TEST_F(RtcpSenderTest, RtcpReceiverReportWithCast) {
163 // Receiver report with report block + c_name. 159 // Receiver report with report block.
164 TestRtcpPacketBuilder p; 160 TestRtcpPacketBuilder p;
165 p.AddRr(kSendingSsrc, 1); 161 p.AddRr(kSendingSsrc, 1);
166 p.AddRb(kMediaSsrc); 162 p.AddRb(kMediaSsrc);
167 p.AddSdesCname(kSendingSsrc, kCName);
168 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); 163 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay);
169 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 164 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
170 165
171 RtcpReportBlock report_block = GetReportBlock(); 166 RtcpReportBlock report_block = GetReportBlock();
172 167
173 RtcpCastMessage cast_message(kMediaSsrc); 168 RtcpCastMessage cast_message(kMediaSsrc);
174 cast_message.ack_frame_id = kAckFrameId; 169 cast_message.ack_frame_id = kAckFrameId;
175 PacketIdSet missing_packets; 170 PacketIdSet missing_packets;
176 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets; 171 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets;
177 172
(...skipping 11 matching lines...) Expand all
189 NULL, 184 NULL,
190 kDefaultDelay); 185 kDefaultDelay);
191 186
192 EXPECT_EQ(1, test_transport_.packet_count()); 187 EXPECT_EQ(1, test_transport_.packet_count());
193 } 188 }
194 189
195 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtraAndCastMessage) { 190 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtraAndCastMessage) {
196 TestRtcpPacketBuilder p; 191 TestRtcpPacketBuilder p;
197 p.AddRr(kSendingSsrc, 1); 192 p.AddRr(kSendingSsrc, 1);
198 p.AddRb(kMediaSsrc); 193 p.AddRb(kMediaSsrc);
199 p.AddSdesCname(kSendingSsrc, kCName);
200 p.AddXrHeader(kSendingSsrc); 194 p.AddXrHeader(kSendingSsrc);
201 p.AddXrRrtrBlock(); 195 p.AddXrRrtrBlock();
202 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); 196 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay);
203 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 197 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
204 198
205 RtcpReportBlock report_block = GetReportBlock(); 199 RtcpReportBlock report_block = GetReportBlock();
206 200
207 RtcpReceiverReferenceTimeReport rrtr; 201 RtcpReceiverReferenceTimeReport rrtr;
208 rrtr.ntp_seconds = kNtpHigh; 202 rrtr.ntp_seconds = kNtpHigh;
209 rrtr.ntp_fraction = kNtpLow; 203 rrtr.ntp_fraction = kNtpLow;
(...skipping 20 matching lines...) Expand all
230 EXPECT_EQ(1, test_transport_.packet_count()); 224 EXPECT_EQ(1, test_transport_.packet_count());
231 } 225 }
232 226
233 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtrCastMessageAndLog) { 227 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtrCastMessageAndLog) {
234 static const uint32 kTimeBaseMs = 12345678; 228 static const uint32 kTimeBaseMs = 12345678;
235 static const uint32 kTimeDelayMs = 10; 229 static const uint32 kTimeDelayMs = 10;
236 230
237 TestRtcpPacketBuilder p; 231 TestRtcpPacketBuilder p;
238 p.AddRr(kSendingSsrc, 1); 232 p.AddRr(kSendingSsrc, 1);
239 p.AddRb(kMediaSsrc); 233 p.AddRb(kMediaSsrc);
240 p.AddSdesCname(kSendingSsrc, kCName);
241 p.AddXrHeader(kSendingSsrc); 234 p.AddXrHeader(kSendingSsrc);
242 p.AddXrRrtrBlock(); 235 p.AddXrRrtrBlock();
243 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); 236 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay);
244 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 237 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
245 238
246 RtcpReportBlock report_block = GetReportBlock(); 239 RtcpReportBlock report_block = GetReportBlock();
247 240
248 RtcpReceiverReferenceTimeReport rrtr; 241 RtcpReceiverReferenceTimeReport rrtr;
249 rrtr.ntp_seconds = kNtpHigh; 242 rrtr.ntp_seconds = kNtpHigh;
250 rrtr.ntp_fraction = kNtpLow; 243 rrtr.ntp_fraction = kNtpLow;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 EXPECT_EQ(2, test_transport_.packet_count()); 305 EXPECT_EQ(2, test_transport_.packet_count());
313 } 306 }
314 307
315 TEST_F(RtcpSenderTest, RtcpReceiverReportWithOversizedFrameLog) { 308 TEST_F(RtcpSenderTest, RtcpReceiverReportWithOversizedFrameLog) {
316 static const uint32 kTimeBaseMs = 12345678; 309 static const uint32 kTimeBaseMs = 12345678;
317 static const uint32 kTimeDelayMs = 10; 310 static const uint32 kTimeDelayMs = 10;
318 311
319 TestRtcpPacketBuilder p; 312 TestRtcpPacketBuilder p;
320 p.AddRr(kSendingSsrc, 1); 313 p.AddRr(kSendingSsrc, 1);
321 p.AddRb(kMediaSsrc); 314 p.AddRb(kMediaSsrc);
322 p.AddSdesCname(kSendingSsrc, kCName);
323 315
324 RtcpReportBlock report_block = GetReportBlock(); 316 RtcpReportBlock report_block = GetReportBlock();
325 317
326 base::SimpleTestTickClock testing_clock; 318 base::SimpleTestTickClock testing_clock;
327 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 319 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
328 320
329 p.AddReceiverLog(kSendingSsrc); 321 p.AddReceiverLog(kSendingSsrc);
330 322
331 int remaining_bytes = kMaxReceiverLogBytes; 323 int remaining_bytes = kMaxReceiverLogBytes;
332 remaining_bytes -= kRtcpCastLogHeaderSize; 324 remaining_bytes -= kRtcpCastLogHeaderSize;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 EXPECT_EQ(1, test_transport_.packet_count()); 372 EXPECT_EQ(1, test_transport_.packet_count());
381 } 373 }
382 374
383 TEST_F(RtcpSenderTest, RtcpReceiverReportWithTooManyLogFrames) { 375 TEST_F(RtcpSenderTest, RtcpReceiverReportWithTooManyLogFrames) {
384 static const uint32 kTimeBaseMs = 12345678; 376 static const uint32 kTimeBaseMs = 12345678;
385 static const uint32 kTimeDelayMs = 10; 377 static const uint32 kTimeDelayMs = 10;
386 378
387 TestRtcpPacketBuilder p; 379 TestRtcpPacketBuilder p;
388 p.AddRr(kSendingSsrc, 1); 380 p.AddRr(kSendingSsrc, 1);
389 p.AddRb(kMediaSsrc); 381 p.AddRb(kMediaSsrc);
390 p.AddSdesCname(kSendingSsrc, kCName);
391 382
392 RtcpReportBlock report_block = GetReportBlock(); 383 RtcpReportBlock report_block = GetReportBlock();
393 384
394 base::SimpleTestTickClock testing_clock; 385 base::SimpleTestTickClock testing_clock;
395 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 386 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
396 387
397 p.AddReceiverLog(kSendingSsrc); 388 p.AddReceiverLog(kSendingSsrc);
398 389
399 int remaining_bytes = kMaxReceiverLogBytes; 390 int remaining_bytes = kMaxReceiverLogBytes;
400 remaining_bytes -= kRtcpCastLogHeaderSize; 391 remaining_bytes -= kRtcpCastLogHeaderSize;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 427
437 EXPECT_EQ(1, test_transport_.packet_count()); 428 EXPECT_EQ(1, test_transport_.packet_count());
438 } 429 }
439 430
440 TEST_F(RtcpSenderTest, RtcpReceiverReportWithOldLogFrames) { 431 TEST_F(RtcpSenderTest, RtcpReceiverReportWithOldLogFrames) {
441 static const uint32 kTimeBaseMs = 12345678; 432 static const uint32 kTimeBaseMs = 12345678;
442 433
443 TestRtcpPacketBuilder p; 434 TestRtcpPacketBuilder p;
444 p.AddRr(kSendingSsrc, 1); 435 p.AddRr(kSendingSsrc, 1);
445 p.AddRb(kMediaSsrc); 436 p.AddRb(kMediaSsrc);
446 p.AddSdesCname(kSendingSsrc, kCName);
447 437
448 RtcpReportBlock report_block = GetReportBlock(); 438 RtcpReportBlock report_block = GetReportBlock();
449 439
450 base::SimpleTestTickClock testing_clock; 440 base::SimpleTestTickClock testing_clock;
451 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 441 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
452 442
453 p.AddReceiverLog(kSendingSsrc); 443 p.AddReceiverLog(kSendingSsrc);
454 444
455 // Log 11 events for a single frame, each |kTimeBetweenEventsMs| apart. 445 // Log 11 events for a single frame, each |kTimeBetweenEventsMs| apart.
456 // Only last 10 events will be sent because the first event is more than 446 // Only last 10 events will be sent because the first event is more than
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 486
497 base::SimpleTestTickClock testing_clock; 487 base::SimpleTestTickClock testing_clock;
498 testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms)); 488 testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms));
499 489
500 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); 490 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT);
501 size_t packet_count = kReceiveLogMessageHistorySize + 10; 491 size_t packet_count = kReceiveLogMessageHistorySize + 10;
502 for (size_t i = 0; i < packet_count; i++) { 492 for (size_t i = 0; i < packet_count; i++) {
503 TestRtcpPacketBuilder p; 493 TestRtcpPacketBuilder p;
504 p.AddRr(kSendingSsrc, 1); 494 p.AddRr(kSendingSsrc, 1);
505 p.AddRb(kMediaSsrc); 495 p.AddRb(kMediaSsrc);
506 p.AddSdesCname(kSendingSsrc, kCName);
507 496
508 p.AddReceiverLog(kSendingSsrc); 497 p.AddReceiverLog(kSendingSsrc);
509 498
510 if (i >= kSecondRedundancyOffset) { 499 if (i >= kSecondRedundancyOffset) {
511 p.AddReceiverFrameLog( 500 p.AddReceiverFrameLog(
512 kRtpTimestamp, 501 kRtpTimestamp,
513 1, 502 1,
514 time_base_ms - kSecondRedundancyOffset * kTimeBetweenEventsMs); 503 time_base_ms - kSecondRedundancyOffset * kTimeBetweenEventsMs);
515 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); 504 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0);
516 } 505 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 sender_info.ntp_seconds = kNtpHigh; 546 sender_info.ntp_seconds = kNtpHigh;
558 sender_info.ntp_fraction = kNtpLow; 547 sender_info.ntp_fraction = kNtpLow;
559 sender_info.rtp_timestamp = kRtpTimestamp; 548 sender_info.rtp_timestamp = kRtpTimestamp;
560 sender_info.send_packet_count = kSendPacketCount; 549 sender_info.send_packet_count = kSendPacketCount;
561 sender_info.send_octet_count = kSendOctetCount; 550 sender_info.send_octet_count = kSendOctetCount;
562 551
563 RtcpDlrrReportBlock dlrr_rb; 552 RtcpDlrrReportBlock dlrr_rb;
564 dlrr_rb.last_rr = kLastRr; 553 dlrr_rb.last_rr = kLastRr;
565 dlrr_rb.delay_since_last_rr = kDelayLastRr; 554 dlrr_rb.delay_since_last_rr = kDelayLastRr;
566 555
567 // Sender report + c_name. 556 // Sender report.
568 TestRtcpPacketBuilder p; 557 TestRtcpPacketBuilder p;
569 p.AddSr(kSendingSsrc, 0); 558 p.AddSr(kSendingSsrc, 0);
570 p.AddSdesCname(kSendingSsrc, kCName);
571 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 559 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
572 560
573 rtcp_sender_->SendRtcpFromRtpSender(kRtcpSr, 561 rtcp_sender_->SendRtcpFromRtpSender(kRtcpSr,
574 sender_info, 562 sender_info,
575 dlrr_rb); 563 dlrr_rb);
576 564
577 EXPECT_EQ(1, test_transport_.packet_count()); 565 EXPECT_EQ(1, test_transport_.packet_count());
578 } 566 }
579 567
580 TEST_F(RtcpSenderTest, RtcpSenderReportWithDlrr) { 568 TEST_F(RtcpSenderTest, RtcpSenderReportWithDlrr) {
581 RtcpSenderInfo sender_info; 569 RtcpSenderInfo sender_info;
582 sender_info.ntp_seconds = kNtpHigh; 570 sender_info.ntp_seconds = kNtpHigh;
583 sender_info.ntp_fraction = kNtpLow; 571 sender_info.ntp_fraction = kNtpLow;
584 sender_info.rtp_timestamp = kRtpTimestamp; 572 sender_info.rtp_timestamp = kRtpTimestamp;
585 sender_info.send_packet_count = kSendPacketCount; 573 sender_info.send_packet_count = kSendPacketCount;
586 sender_info.send_octet_count = kSendOctetCount; 574 sender_info.send_octet_count = kSendOctetCount;
587 575
588 // Sender report + c_name + dlrr. 576 // Sender report + dlrr.
589 TestRtcpPacketBuilder p1; 577 TestRtcpPacketBuilder p1;
590 p1.AddSr(kSendingSsrc, 0); 578 p1.AddSr(kSendingSsrc, 0);
591 p1.AddSdesCname(kSendingSsrc, kCName);
592 p1.AddXrHeader(kSendingSsrc); 579 p1.AddXrHeader(kSendingSsrc);
593 p1.AddXrDlrrBlock(kSendingSsrc); 580 p1.AddXrDlrrBlock(kSendingSsrc);
594 test_transport_.SetExpectedRtcpPacket(p1.GetPacket().Pass()); 581 test_transport_.SetExpectedRtcpPacket(p1.GetPacket().Pass());
595 582
596 RtcpDlrrReportBlock dlrr_rb; 583 RtcpDlrrReportBlock dlrr_rb;
597 dlrr_rb.last_rr = kLastRr; 584 dlrr_rb.last_rr = kLastRr;
598 dlrr_rb.delay_since_last_rr = kDelayLastRr; 585 dlrr_rb.delay_since_last_rr = kDelayLastRr;
599 586
600 rtcp_sender_->SendRtcpFromRtpSender( 587 rtcp_sender_->SendRtcpFromRtpSender(
601 kRtcpSr | kRtcpDlrr, 588 kRtcpSr | kRtcpDlrr,
602 sender_info, 589 sender_info,
603 dlrr_rb); 590 dlrr_rb);
604 591
605 EXPECT_EQ(1, test_transport_.packet_count()); 592 EXPECT_EQ(1, test_transport_.packet_count());
606 } 593 }
607 594
608 } // namespace cast 595 } // namespace cast
609 } // namespace media 596 } // 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