| 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 <stdint.h> |
| 6 |
| 5 #include "base/test/simple_test_tick_clock.h" | 7 #include "base/test/simple_test_tick_clock.h" |
| 6 #include "media/cast/cast_defines.h" | 8 #include "media/cast/cast_defines.h" |
| 7 #include "media/cast/cast_environment.h" | 9 #include "media/cast/cast_environment.h" |
| 8 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h" | 10 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h" |
| 9 #include "media/cast/rtcp/mock_rtcp_sender_feedback.h" | 11 #include "media/cast/rtcp/mock_rtcp_sender_feedback.h" |
| 10 #include "media/cast/rtcp/rtcp.h" | 12 #include "media/cast/rtcp/rtcp.h" |
| 11 #include "media/cast/rtcp/test_rtcp_packet_builder.h" | 13 #include "media/cast/rtcp/test_rtcp_packet_builder.h" |
| 12 #include "media/cast/test/fake_single_thread_task_runner.h" | 14 #include "media/cast/test/fake_single_thread_task_runner.h" |
| 13 #include "media/cast/transport/cast_transport_config.h" | 15 #include "media/cast/transport/cast_transport_config.h" |
| 14 #include "media/cast/transport/cast_transport_sender_impl.h" | 16 #include "media/cast/transport/cast_transport_sender_impl.h" |
| 15 #include "media/cast/transport/pacing/paced_sender.h" | 17 #include "media/cast/transport/pacing/paced_sender.h" |
| 16 #include "testing/gmock/include/gmock/gmock.h" | 18 #include "testing/gmock/include/gmock/gmock.h" |
| 17 | 19 |
| 18 namespace media { | 20 namespace media { |
| 19 namespace cast { | 21 namespace cast { |
| 20 | 22 |
| 21 using testing::_; | 23 using testing::_; |
| 22 | 24 |
| 23 static const uint32 kSenderSsrc = 0x10203; | 25 static const uint32 kSenderSsrc = 0x10203; |
| 24 static const uint32 kReceiverSsrc = 0x40506; | 26 static const uint32 kReceiverSsrc = 0x40506; |
| 25 static const std::string kCName("test@10.1.1.1"); | 27 static const std::string kCName("test@10.1.1.1"); |
| 26 static const uint32 kRtcpIntervalMs = 500; | 28 static const uint32 kRtcpIntervalMs = 500; |
| 27 static const int64 kStartMillisecond = GG_INT64_C(12345678900000); | 29 static const int64 kStartMillisecond = INT64_C(12345678900000); |
| 28 static const int64 kAddedDelay = 123; | 30 static const int64 kAddedDelay = 123; |
| 29 static const int64 kAddedShortDelay = 100; | 31 static const int64 kAddedShortDelay = 100; |
| 30 | 32 |
| 31 class RtcpTestPacketSender : public transport::PacketSender { | 33 class RtcpTestPacketSender : public transport::PacketSender { |
| 32 public: | 34 public: |
| 33 explicit RtcpTestPacketSender(base::SimpleTestTickClock* testing_clock) | 35 explicit RtcpTestPacketSender(base::SimpleTestTickClock* testing_clock) |
| 34 : drop_packets_(false), | 36 : drop_packets_(false), |
| 35 short_delay_(false), | 37 short_delay_(false), |
| 36 rtcp_receiver_(NULL), | 38 rtcp_receiver_(NULL), |
| 37 testing_clock_(testing_clock) {} | 39 testing_clock_(testing_clock) {} |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL); | 482 rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL); |
| 481 rtcp_sender.SendRtcpFromRtpSender(empty_sender_log, | 483 rtcp_sender.SendRtcpFromRtpSender(empty_sender_log, |
| 482 rtp_sender_stats_.sender_info()); | 484 rtp_sender_stats_.sender_info()); |
| 483 RunTasks(33); | 485 RunTasks(33); |
| 484 | 486 |
| 485 EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); | 487 EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); |
| 486 EXPECT_NEAR(kAddedDelay + kAddedShortDelay, rtt.InMilliseconds(), 2); | 488 EXPECT_NEAR(kAddedDelay + kAddedShortDelay, rtt.InMilliseconds(), 2); |
| 487 } | 489 } |
| 488 | 490 |
| 489 TEST_F(RtcpTest, NtpAndTime) { | 491 TEST_F(RtcpTest, NtpAndTime) { |
| 490 const int64 kSecondsbetweenYear1900and2010 = GG_INT64_C(40176 * 24 * 60 * 60); | 492 const int64 kSecondsbetweenYear1900and2010 = INT64_C(40176 * 24 * 60 * 60); |
| 491 const int64 kSecondsbetweenYear1900and2030 = GG_INT64_C(47481 * 24 * 60 * 60); | 493 const int64 kSecondsbetweenYear1900and2030 = INT64_C(47481 * 24 * 60 * 60); |
| 492 | 494 |
| 493 uint32 ntp_seconds_1 = 0; | 495 uint32 ntp_seconds_1 = 0; |
| 494 uint32 ntp_fractions_1 = 0; | 496 uint32 ntp_fractions_1 = 0; |
| 495 base::TimeTicks input_time = base::TimeTicks::Now(); | 497 base::TimeTicks input_time = base::TimeTicks::Now(); |
| 496 ConvertTimeTicksToNtp(input_time, &ntp_seconds_1, &ntp_fractions_1); | 498 ConvertTimeTicksToNtp(input_time, &ntp_seconds_1, &ntp_fractions_1); |
| 497 | 499 |
| 498 // Verify absolute value. | 500 // Verify absolute value. |
| 499 EXPECT_GT(ntp_seconds_1, kSecondsbetweenYear1900and2010); | 501 EXPECT_GT(ntp_seconds_1, kSecondsbetweenYear1900and2010); |
| 500 EXPECT_LT(ntp_seconds_1, kSecondsbetweenYear1900and2030); | 502 EXPECT_LT(ntp_seconds_1, kSecondsbetweenYear1900and2030); |
| 501 | 503 |
| 502 base::TimeTicks out_1 = ConvertNtpToTimeTicks(ntp_seconds_1, ntp_fractions_1); | 504 base::TimeTicks out_1 = ConvertNtpToTimeTicks(ntp_seconds_1, ntp_fractions_1); |
| 503 EXPECT_EQ(input_time, out_1); // Verify inverse. | 505 EXPECT_EQ(input_time, out_1); // Verify inverse. |
| 504 | 506 |
| 505 base::TimeDelta time_delta = base::TimeDelta::FromMilliseconds(1000); | 507 base::TimeDelta time_delta = base::TimeDelta::FromMilliseconds(1000); |
| 506 input_time += time_delta; | 508 input_time += time_delta; |
| 507 | 509 |
| 508 uint32 ntp_seconds_2 = 0; | 510 uint32 ntp_seconds_2 = 0; |
| 509 uint32 ntp_fractions_2 = 0; | 511 uint32 ntp_fractions_2 = 0; |
| 510 | 512 |
| 511 ConvertTimeTicksToNtp(input_time, &ntp_seconds_2, &ntp_fractions_2); | 513 ConvertTimeTicksToNtp(input_time, &ntp_seconds_2, &ntp_fractions_2); |
| 512 base::TimeTicks out_2 = ConvertNtpToTimeTicks(ntp_seconds_2, ntp_fractions_2); | 514 base::TimeTicks out_2 = ConvertNtpToTimeTicks(ntp_seconds_2, ntp_fractions_2); |
| 513 EXPECT_EQ(input_time, out_2); // Verify inverse. | 515 EXPECT_EQ(input_time, out_2); // Verify inverse. |
| 514 | 516 |
| 515 // Verify delta. | 517 // Verify delta. |
| 516 EXPECT_EQ((out_2 - out_1), time_delta); | 518 EXPECT_EQ((out_2 - out_1), time_delta); |
| 517 EXPECT_EQ((ntp_seconds_2 - ntp_seconds_1), GG_UINT32_C(1)); | 519 EXPECT_EQ((ntp_seconds_2 - ntp_seconds_1), UINT32_C(1)); |
| 518 EXPECT_NEAR(ntp_fractions_2, ntp_fractions_1, 1); | 520 EXPECT_NEAR(ntp_fractions_2, ntp_fractions_1, 1); |
| 519 | 521 |
| 520 time_delta = base::TimeDelta::FromMilliseconds(500); | 522 time_delta = base::TimeDelta::FromMilliseconds(500); |
| 521 input_time += time_delta; | 523 input_time += time_delta; |
| 522 | 524 |
| 523 uint32 ntp_seconds_3 = 0; | 525 uint32 ntp_seconds_3 = 0; |
| 524 uint32 ntp_fractions_3 = 0; | 526 uint32 ntp_fractions_3 = 0; |
| 525 | 527 |
| 526 ConvertTimeTicksToNtp(input_time, &ntp_seconds_3, &ntp_fractions_3); | 528 ConvertTimeTicksToNtp(input_time, &ntp_seconds_3, &ntp_fractions_3); |
| 527 base::TimeTicks out_3 = ConvertNtpToTimeTicks(ntp_seconds_3, ntp_fractions_3); | 529 base::TimeTicks out_3 = ConvertNtpToTimeTicks(ntp_seconds_3, ntp_fractions_3); |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 618 rtcp_peer.OnReceivedLipSyncInfo(rtp_timestamp, ntp_seconds, ntp_fractions); | 620 rtcp_peer.OnReceivedLipSyncInfo(rtp_timestamp, ntp_seconds, ntp_fractions); |
| 619 rtp_timestamp = 64000; | 621 rtp_timestamp = 64000; |
| 620 EXPECT_TRUE(rtcp_peer.RtpTimestampInSenderTime( | 622 EXPECT_TRUE(rtcp_peer.RtpTimestampInSenderTime( |
| 621 frequency, rtp_timestamp, &rtp_timestamp_in_ticks)); | 623 frequency, rtp_timestamp, &rtp_timestamp_in_ticks)); |
| 622 EXPECT_EQ(input_time + base::TimeDelta::FromMilliseconds(4000), | 624 EXPECT_EQ(input_time + base::TimeDelta::FromMilliseconds(4000), |
| 623 rtp_timestamp_in_ticks); | 625 rtp_timestamp_in_ticks); |
| 624 } | 626 } |
| 625 | 627 |
| 626 } // namespace cast | 628 } // namespace cast |
| 627 } // namespace media | 629 } // namespace media |
| OLD | NEW |