OLD | NEW |
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_environment.h" | 7 #include "media/cast/cast_environment.h" |
8 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h" | 8 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h" |
9 #include "media/cast/rtcp/mock_rtcp_sender_feedback.h" | 9 #include "media/cast/rtcp/mock_rtcp_sender_feedback.h" |
10 #include "media/cast/rtcp/rtcp_receiver.h" | 10 #include "media/cast/rtcp/rtcp_receiver.h" |
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 event_log.type = kVideoAckSent; | 504 event_log.type = kVideoAckSent; |
505 event_log.event_timestamp = testing_clock.NowTicks(); | 505 event_log.event_timestamp = testing_clock.NowTicks(); |
506 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); | 506 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); |
507 frame_log.event_log_messages_.push_back(event_log); | 507 frame_log.event_log_messages_.push_back(event_log); |
508 | 508 |
509 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 509 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
510 event_log.type = kVideoPacketReceived; | 510 event_log.type = kVideoPacketReceived; |
511 event_log.event_timestamp = testing_clock.NowTicks(); | 511 event_log.event_timestamp = testing_clock.NowTicks(); |
512 event_log.packet_id = kLostPacketId1; | 512 event_log.packet_id = kLostPacketId1; |
513 frame_log.event_log_messages_.push_back(event_log); | 513 frame_log.event_log_messages_.push_back(event_log); |
| 514 |
| 515 event_log.type = kVideoPacketReceived; |
| 516 event_log.event_timestamp = testing_clock.NowTicks(); |
| 517 event_log.packet_id = kLostPacketId2; |
| 518 frame_log.event_log_messages_.push_back(event_log); |
| 519 |
514 receiver_log.push_back(frame_log); | 520 receiver_log.push_back(frame_log); |
515 | 521 |
516 cast_log_verification.SetExpectedReceiverLog(receiver_log); | 522 cast_log_verification.SetExpectedReceiverLog(receiver_log); |
517 | 523 |
518 TestRtcpPacketBuilder p; | 524 TestRtcpPacketBuilder p; |
519 p.AddRr(kSenderSsrc, 1); | 525 p.AddRr(kSenderSsrc, 1); |
520 p.AddRb(kSourceSsrc); | 526 p.AddRb(kSourceSsrc); |
521 p.AddReceiverLog(kSenderSsrc); | 527 p.AddReceiverLog(kSenderSsrc); |
522 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); | 528 p.AddReceiverFrameLog(kRtpTimestamp, 3, kTimeBaseMs); |
523 p.AddReceiverEventLog(kDelayDeltaMs, 5, 0); | 529 p.AddReceiverEventLog(kDelayDeltaMs, kVideoAckSent, 0); |
524 p.AddReceiverEventLog(kLostPacketId1, 8, kTimeDelayMs); | 530 p.AddReceiverEventLog(kLostPacketId1, kVideoPacketReceived, kTimeDelayMs); |
| 531 p.AddReceiverEventLog(kLostPacketId2, kVideoPacketReceived, kTimeDelayMs); |
525 | 532 |
526 // Adds duplicated receiver event. | 533 // Adds duplicated receiver event. |
527 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); | 534 p.AddReceiverFrameLog(kRtpTimestamp, 3, kTimeBaseMs); |
528 p.AddReceiverEventLog(kDelayDeltaMs, 5, 0); | 535 p.AddReceiverEventLog(kDelayDeltaMs, kVideoAckSent, 0); |
529 p.AddReceiverEventLog(kLostPacketId1, 8, kTimeDelayMs); | 536 p.AddReceiverEventLog(kLostPacketId1, kVideoPacketReceived, kTimeDelayMs); |
| 537 p.AddReceiverEventLog(kLostPacketId2, kVideoPacketReceived, kTimeDelayMs); |
530 | 538 |
531 EXPECT_CALL(mock_rtt_feedback_, | 539 EXPECT_CALL(mock_rtt_feedback_, |
532 OnReceivedDelaySinceLastReport( | 540 OnReceivedDelaySinceLastReport( |
533 kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); | 541 kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); |
534 | 542 |
535 RtcpParser rtcp_parser(p.Data(), p.Length()); | 543 RtcpParser rtcp_parser(p.Data(), p.Length()); |
536 rtcp_receiver.IncomingRtcpPacket(&rtcp_parser); | 544 rtcp_receiver.IncomingRtcpPacket(&rtcp_parser); |
537 | 545 |
538 EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled()); | 546 EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled()); |
539 } | 547 } |
(...skipping 27 matching lines...) Expand all Loading... |
567 } | 575 } |
568 | 576 |
569 cast_log_verification.SetExpectedReceiverLog(receiver_log); | 577 cast_log_verification.SetExpectedReceiverLog(receiver_log); |
570 | 578 |
571 TestRtcpPacketBuilder p; | 579 TestRtcpPacketBuilder p; |
572 p.AddRr(kSenderSsrc, 1); | 580 p.AddRr(kSenderSsrc, 1); |
573 p.AddRb(kSourceSsrc); | 581 p.AddRb(kSourceSsrc); |
574 p.AddReceiverLog(kSenderSsrc); | 582 p.AddReceiverLog(kSenderSsrc); |
575 for (int i = 0; i < 100; ++i) { | 583 for (int i = 0; i < 100; ++i) { |
576 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs); | 584 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs); |
577 p.AddReceiverEventLog(kDelayDeltaMs, 5, 0); | 585 p.AddReceiverEventLog(kDelayDeltaMs, kVideoAckSent, 0); |
578 } | 586 } |
579 | 587 |
580 EXPECT_CALL(mock_rtt_feedback_, | 588 EXPECT_CALL(mock_rtt_feedback_, |
581 OnReceivedDelaySinceLastReport( | 589 OnReceivedDelaySinceLastReport( |
582 kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); | 590 kSourceSsrc, kLastSr, kDelayLastSr)).Times(1); |
583 | 591 |
584 RtcpParser rtcp_parser(p.Data(), p.Length()); | 592 RtcpParser rtcp_parser(p.Data(), p.Length()); |
585 rtcp_receiver.IncomingRtcpPacket(&rtcp_parser); | 593 rtcp_receiver.IncomingRtcpPacket(&rtcp_parser); |
586 | 594 |
587 EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled()); | 595 EXPECT_TRUE(cast_log_verification.OnReceivedReceiverLogCalled()); |
588 } | 596 } |
589 | 597 |
590 } // namespace cast | 598 } // namespace cast |
591 } // namespace media | 599 } // namespace media |
OLD | NEW |