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

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

Issue 136903003: cast: Wire upp logging to be sent over RTCP between receiver and sender. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge TOT Created 6 years, 11 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
« no previous file with comments | « media/cast/rtcp/rtcp_sender.cc ('k') | media/cast/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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/rtcp/rtcp_sender.h" 9 #include "media/cast/rtcp/rtcp_sender.h"
10 #include "media/cast/rtcp/rtcp_utility.h" 10 #include "media/cast/rtcp/rtcp_utility.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 size_t expected_packet_length_; 57 size_t expected_packet_length_;
58 int packet_count_; 58 int packet_count_;
59 }; 59 };
60 60
61 class RtcpSenderTest : public ::testing::Test { 61 class RtcpSenderTest : public ::testing::Test {
62 protected: 62 protected:
63 RtcpSenderTest() 63 RtcpSenderTest()
64 : task_runner_(new test::FakeTaskRunner(&testing_clock_)), 64 : task_runner_(new test::FakeTaskRunner(&testing_clock_)),
65 cast_environment_(new CastEnvironment(&testing_clock_, task_runner_, 65 cast_environment_(new CastEnvironment(&testing_clock_, task_runner_,
66 task_runner_, task_runner_, task_runner_, task_runner_, 66 task_runner_, task_runner_, task_runner_, task_runner_,
67 task_runner_, GetDefaultCastLoggingConfig())), 67 task_runner_, GetDefaultCastSenderLoggingConfig())),
68 rtcp_sender_(new RtcpSender(cast_environment_, 68 rtcp_sender_(new RtcpSender(cast_environment_,
69 &test_transport_, 69 &test_transport_,
70 kSendingSsrc, 70 kSendingSsrc,
71 kCName)) { 71 kCName)) {
72 } 72 }
73 73
74 base::SimpleTestTickClock testing_clock_; 74 base::SimpleTestTickClock testing_clock_;
75 TestRtcpTransport test_transport_; 75 TestRtcpTransport test_transport_;
76 scoped_refptr<test::FakeTaskRunner> task_runner_; 76 scoped_refptr<test::FakeTaskRunner> task_runner_;
77 scoped_refptr<CastEnvironment> cast_environment_; 77 scoped_refptr<CastEnvironment> cast_environment_;
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 272
273 missing_packets.insert(kLostPacketId1); 273 missing_packets.insert(kLostPacketId1);
274 missing_packets.insert(kLostPacketId2); 274 missing_packets.insert(kLostPacketId2);
275 missing_packets.insert(kLostPacketId3); 275 missing_packets.insert(kLostPacketId3);
276 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = 276 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] =
277 missing_packets; 277 missing_packets;
278 278
279 // Test empty Log message. 279 // Test empty Log message.
280 RtcpReceiverLogMessage receiver_log; 280 RtcpReceiverLogMessage receiver_log;
281 281
282 VLOG(0) << " Test empty Log " ;
283 rtcp_sender_->SendRtcpFromRtpReceiver( 282 rtcp_sender_->SendRtcpFromRtpReceiver(
284 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast | 283 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast |
285 RtcpSender::kRtcpReceiverLog, 284 RtcpSender::kRtcpReceiverLog,
286 &report_block, 285 &report_block,
287 &rrtr, 286 &rrtr,
288 &cast_message, 287 &cast_message,
289 &receiver_log); 288 &receiver_log);
290 289
291 290
292 base::SimpleTestTickClock testing_clock; 291 base::SimpleTestTickClock testing_clock;
293 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 292 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
294 293
295 p.AddReceiverLog(kSendingSsrc); 294 p.AddReceiverLog(kSendingSsrc);
296 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); 295 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs);
297 p.AddReceiverEventLog(kDelayDeltaMs, 1, 0); 296 p.AddReceiverEventLog(kDelayDeltaMs, 5, 0);
298 p.AddReceiverEventLog(kLostPacketId1, 6, kTimeDelayMs); 297 p.AddReceiverEventLog(kLostPacketId1, 8, kTimeDelayMs);
299 298
300 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length()); 299 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length());
301 300
302 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp); 301 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp);
303 RtcpReceiverEventLogMessage event_log; 302 RtcpReceiverEventLogMessage event_log;
304 303
305 event_log.type = kAckSent; 304 event_log.type = kVideoAckSent;
306 event_log.event_timestamp = testing_clock.NowTicks(); 305 event_log.event_timestamp = testing_clock.NowTicks();
307 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); 306 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs);
308 frame_log.event_log_messages_.push_back(event_log); 307 frame_log.event_log_messages_.push_back(event_log);
309 308
310 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 309 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
311 event_log.type = kPacketReceived; 310 event_log.type = kVideoPacketReceived;
312 event_log.event_timestamp = testing_clock.NowTicks(); 311 event_log.event_timestamp = testing_clock.NowTicks();
313 event_log.packet_id = kLostPacketId1; 312 event_log.packet_id = kLostPacketId1;
314 frame_log.event_log_messages_.push_back(event_log); 313 frame_log.event_log_messages_.push_back(event_log);
315 314
316 receiver_log.push_back(frame_log); 315 receiver_log.push_back(frame_log);
317 316
318 VLOG(0) << " Test Log " ;
319 rtcp_sender_->SendRtcpFromRtpReceiver( 317 rtcp_sender_->SendRtcpFromRtpReceiver(
320 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast | 318 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast |
321 RtcpSender::kRtcpReceiverLog, 319 RtcpSender::kRtcpReceiverLog,
322 &report_block, 320 &report_block,
323 &rrtr, 321 &rrtr,
324 &cast_message, 322 &cast_message,
325 &receiver_log); 323 &receiver_log);
326 324
327 EXPECT_TRUE(receiver_log.empty()); 325 EXPECT_TRUE(receiver_log.empty());
328 EXPECT_EQ(2, test_transport_.packet_count()); 326 EXPECT_EQ(2, test_transport_.packet_count());
(...skipping 19 matching lines...) Expand all
348 report_block.jitter = kTestJitter; 346 report_block.jitter = kTestJitter;
349 report_block.last_sr = kLastSr; 347 report_block.last_sr = kLastSr;
350 report_block.delay_since_last_sr = kDelayLastSr; 348 report_block.delay_since_last_sr = kDelayLastSr;
351 349
352 base::SimpleTestTickClock testing_clock; 350 base::SimpleTestTickClock testing_clock;
353 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 351 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
354 352
355 p.AddReceiverLog(kSendingSsrc); 353 p.AddReceiverLog(kSendingSsrc);
356 354
357 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs); 355 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs);
358 p.AddReceiverEventLog(kDelayDeltaMs, 1, 0); 356 p.AddReceiverEventLog(kDelayDeltaMs, 5, 0);
359 p.AddReceiverFrameLog(kRtpTimestamp + 2345, 357 p.AddReceiverFrameLog(kRtpTimestamp + 2345,
360 kRtcpMaxReceiverLogMessages, kTimeBaseMs); 358 kRtcpMaxReceiverLogMessages, kTimeBaseMs);
361 359
362 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { 360 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) {
363 p.AddReceiverEventLog( 361 p.AddReceiverEventLog(
364 kLostPacketId1, 6, static_cast<uint16>(kTimeDelayMs * i)); 362 kLostPacketId1, 8, static_cast<uint16>(kTimeDelayMs * i));
365 } 363 }
366 364
367 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length()); 365 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length());
368 366
369 RtcpReceiverFrameLogMessage frame_1_log(kRtpTimestamp); 367 RtcpReceiverFrameLogMessage frame_1_log(kRtpTimestamp);
370 RtcpReceiverEventLogMessage event_log; 368 RtcpReceiverEventLogMessage event_log;
371 369
372 event_log.type = kAckSent; 370 event_log.type = kVideoAckSent;
373 event_log.event_timestamp = testing_clock.NowTicks(); 371 event_log.event_timestamp = testing_clock.NowTicks();
374 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); 372 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs);
375 frame_1_log.event_log_messages_.push_back(event_log); 373 frame_1_log.event_log_messages_.push_back(event_log);
376 374
377 RtcpReceiverLogMessage receiver_log; 375 RtcpReceiverLogMessage receiver_log;
378 receiver_log.push_back(frame_1_log); 376 receiver_log.push_back(frame_1_log);
379 377
380 RtcpReceiverFrameLogMessage frame_2_log(kRtpTimestamp + 2345); 378 RtcpReceiverFrameLogMessage frame_2_log(kRtpTimestamp + 2345);
381 379
382 for (int j = 0; j < 300; ++j) { 380 for (int j = 0; j < 300; ++j) {
383 event_log.type = kPacketReceived; 381 event_log.type = kVideoPacketReceived;
384 event_log.event_timestamp = testing_clock.NowTicks(); 382 event_log.event_timestamp = testing_clock.NowTicks();
385 event_log.packet_id = kLostPacketId1; 383 event_log.packet_id = kLostPacketId1;
386 frame_2_log.event_log_messages_.push_back(event_log); 384 frame_2_log.event_log_messages_.push_back(event_log);
387 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 385 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
388 } 386 }
389 receiver_log.push_back(frame_2_log); 387 receiver_log.push_back(frame_2_log);
390 388
391 rtcp_sender_->SendRtcpFromRtpReceiver( 389 rtcp_sender_->SendRtcpFromRtpReceiver(
392 RtcpSender::kRtcpRr | RtcpSender::kRtcpReceiverLog, 390 RtcpSender::kRtcpRr | RtcpSender::kRtcpReceiverLog,
393 &report_block, 391 &report_block,
(...skipping 28 matching lines...) Expand all
422 report_block.last_sr = kLastSr; 420 report_block.last_sr = kLastSr;
423 report_block.delay_since_last_sr = kDelayLastSr; 421 report_block.delay_since_last_sr = kDelayLastSr;
424 422
425 base::SimpleTestTickClock testing_clock; 423 base::SimpleTestTickClock testing_clock;
426 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 424 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
427 425
428 p.AddReceiverLog(kSendingSsrc); 426 p.AddReceiverLog(kSendingSsrc);
429 427
430 for (int i = 0; i < 119; ++i) { 428 for (int i = 0; i < 119; ++i) {
431 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs); 429 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs);
432 p.AddReceiverEventLog(kDelayDeltaMs, 1, 0); 430 p.AddReceiverEventLog(kDelayDeltaMs, 5, 0);
433 } 431 }
434 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length()); 432 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length());
435 433
436 RtcpReceiverLogMessage receiver_log; 434 RtcpReceiverLogMessage receiver_log;
437 435
438 for (int j = 0; j < 200; ++j) { 436 for (int j = 0; j < 200; ++j) {
439 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp); 437 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp);
440 RtcpReceiverEventLogMessage event_log; 438 RtcpReceiverEventLogMessage event_log;
441 439
442 event_log.type = kAckSent; 440 event_log.type = kVideoAckSent;
443 event_log.event_timestamp = testing_clock.NowTicks(); 441 event_log.event_timestamp = testing_clock.NowTicks();
444 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); 442 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs);
445 frame_log.event_log_messages_.push_back(event_log); 443 frame_log.event_log_messages_.push_back(event_log);
446 receiver_log.push_back(frame_log); 444 receiver_log.push_back(frame_log);
447 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 445 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
448 } 446 }
449 rtcp_sender_->SendRtcpFromRtpReceiver( 447 rtcp_sender_->SendRtcpFromRtpReceiver(
450 RtcpSender::kRtcpRr | RtcpSender::kRtcpReceiverLog, 448 RtcpSender::kRtcpRr | RtcpSender::kRtcpReceiverLog,
451 &report_block, 449 &report_block,
452 NULL, 450 NULL,
453 NULL, 451 NULL,
454 &receiver_log); 452 &receiver_log);
455 453
456 EXPECT_EQ(1, test_transport_.packet_count()); 454 EXPECT_EQ(1, test_transport_.packet_count());
457 EXPECT_EQ(81u, receiver_log.size()); 455 EXPECT_EQ(81u, receiver_log.size());
458 } 456 }
459 457
460 } // namespace cast 458 } // namespace cast
461 } // namespace media 459 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/rtcp/rtcp_sender.cc ('k') | media/cast/rtcp/rtcp_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698