| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 TEST_F(RtcpReceiverTest, InjectSrPacketCalculatesRTT) { | 264 TEST_F(RtcpReceiverTest, InjectSrPacketCalculatesRTT) { |
| 265 Random r(0x0123456789abcdef); | 265 Random r(0x0123456789abcdef); |
| 266 const int64_t kRttMs = r.Rand(1, 9 * 3600 * 1000); | 266 const int64_t kRttMs = r.Rand(1, 9 * 3600 * 1000); |
| 267 const uint32_t kDelayNtp = r.Rand(0, 0x7fffffff); | 267 const uint32_t kDelayNtp = r.Rand(0, 0x7fffffff); |
| 268 const int64_t kDelayMs = CompactNtpRttToMs(kDelayNtp); | 268 const int64_t kDelayMs = CompactNtpRttToMs(kDelayNtp); |
| 269 | 269 |
| 270 int64_t rtt_ms = 0; | 270 int64_t rtt_ms = 0; |
| 271 EXPECT_EQ( | 271 EXPECT_EQ( |
| 272 -1, rtcp_receiver_.RTT(kSenderSsrc, &rtt_ms, nullptr, nullptr, nullptr)); | 272 -1, rtcp_receiver_.RTT(kSenderSsrc, &rtt_ms, nullptr, nullptr, nullptr)); |
| 273 | 273 |
| 274 uint32_t sent_ntp = CompactNtp(NtpTime(system_clock_)); | 274 uint32_t sent_ntp = CompactNtp(system_clock_.CurrentNtpTime()); |
| 275 system_clock_.AdvanceTimeMilliseconds(kRttMs + kDelayMs); | 275 system_clock_.AdvanceTimeMilliseconds(kRttMs + kDelayMs); |
| 276 | 276 |
| 277 rtcp::SenderReport sr; | 277 rtcp::SenderReport sr; |
| 278 sr.SetSenderSsrc(kSenderSsrc); | 278 sr.SetSenderSsrc(kSenderSsrc); |
| 279 rtcp::ReportBlock block; | 279 rtcp::ReportBlock block; |
| 280 block.SetMediaSsrc(kReceiverMainSsrc); | 280 block.SetMediaSsrc(kReceiverMainSsrc); |
| 281 block.SetLastSr(sent_ntp); | 281 block.SetLastSr(sent_ntp); |
| 282 block.SetDelayLastSr(kDelayNtp); | 282 block.SetDelayLastSr(kDelayNtp); |
| 283 sr.AddReportBlock(block); | 283 sr.AddReportBlock(block); |
| 284 | 284 |
| 285 EXPECT_CALL(rtp_rtcp_impl_, OnReceivedRtcpReportBlocks(_)); | 285 EXPECT_CALL(rtp_rtcp_impl_, OnReceivedRtcpReportBlocks(_)); |
| 286 EXPECT_CALL(bandwidth_observer_, OnReceivedRtcpReceiverReport(_, _, _)); | 286 EXPECT_CALL(bandwidth_observer_, OnReceivedRtcpReceiverReport(_, _, _)); |
| 287 InjectRtcpPacket(sr); | 287 InjectRtcpPacket(sr); |
| 288 | 288 |
| 289 EXPECT_EQ( | 289 EXPECT_EQ( |
| 290 0, rtcp_receiver_.RTT(kSenderSsrc, &rtt_ms, nullptr, nullptr, nullptr)); | 290 0, rtcp_receiver_.RTT(kSenderSsrc, &rtt_ms, nullptr, nullptr, nullptr)); |
| 291 EXPECT_NEAR(kRttMs, rtt_ms, 1); | 291 EXPECT_NEAR(kRttMs, rtt_ms, 1); |
| 292 } | 292 } |
| 293 | 293 |
| 294 TEST_F(RtcpReceiverTest, InjectSrPacketCalculatesNegativeRTTAsOne) { | 294 TEST_F(RtcpReceiverTest, InjectSrPacketCalculatesNegativeRTTAsOne) { |
| 295 Random r(0x0123456789abcdef); | 295 Random r(0x0123456789abcdef); |
| 296 const int64_t kRttMs = r.Rand(-3600 * 1000, -1); | 296 const int64_t kRttMs = r.Rand(-3600 * 1000, -1); |
| 297 const uint32_t kDelayNtp = r.Rand(0, 0x7fffffff); | 297 const uint32_t kDelayNtp = r.Rand(0, 0x7fffffff); |
| 298 const int64_t kDelayMs = CompactNtpRttToMs(kDelayNtp); | 298 const int64_t kDelayMs = CompactNtpRttToMs(kDelayNtp); |
| 299 | 299 |
| 300 int64_t rtt_ms = 0; | 300 int64_t rtt_ms = 0; |
| 301 EXPECT_EQ( | 301 EXPECT_EQ( |
| 302 -1, rtcp_receiver_.RTT(kSenderSsrc, &rtt_ms, nullptr, nullptr, nullptr)); | 302 -1, rtcp_receiver_.RTT(kSenderSsrc, &rtt_ms, nullptr, nullptr, nullptr)); |
| 303 | 303 |
| 304 uint32_t sent_ntp = CompactNtp(NtpTime(system_clock_)); | 304 uint32_t sent_ntp = CompactNtp(system_clock_.CurrentNtpTime()); |
| 305 system_clock_.AdvanceTimeMilliseconds(kRttMs + kDelayMs); | 305 system_clock_.AdvanceTimeMilliseconds(kRttMs + kDelayMs); |
| 306 | 306 |
| 307 rtcp::SenderReport sr; | 307 rtcp::SenderReport sr; |
| 308 sr.SetSenderSsrc(kSenderSsrc); | 308 sr.SetSenderSsrc(kSenderSsrc); |
| 309 rtcp::ReportBlock block; | 309 rtcp::ReportBlock block; |
| 310 block.SetMediaSsrc(kReceiverMainSsrc); | 310 block.SetMediaSsrc(kReceiverMainSsrc); |
| 311 block.SetLastSr(sent_ntp); | 311 block.SetLastSr(sent_ntp); |
| 312 block.SetDelayLastSr(kDelayNtp); | 312 block.SetDelayLastSr(kDelayNtp); |
| 313 sr.AddReportBlock(block); | 313 sr.AddReportBlock(block); |
| 314 | 314 |
| (...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 767 rtcp_receiver_.SetRtcpXrRrtrStatus(true); | 767 rtcp_receiver_.SetRtcpXrRrtrStatus(true); |
| 768 int64_t rtt_ms = 0; | 768 int64_t rtt_ms = 0; |
| 769 EXPECT_FALSE(rtcp_receiver_.GetAndResetXrRrRtt(&rtt_ms)); | 769 EXPECT_FALSE(rtcp_receiver_.GetAndResetXrRrRtt(&rtt_ms)); |
| 770 | 770 |
| 771 rtcp::ExtendedReports xr; | 771 rtcp::ExtendedReports xr; |
| 772 xr.SetSenderSsrc(kSenderSsrc); | 772 xr.SetSenderSsrc(kSenderSsrc); |
| 773 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc, kLastRR, kDelay)); | 773 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc, kLastRR, kDelay)); |
| 774 | 774 |
| 775 InjectRtcpPacket(xr); | 775 InjectRtcpPacket(xr); |
| 776 | 776 |
| 777 uint32_t compact_ntp_now = CompactNtp(NtpTime(system_clock_)); | 777 uint32_t compact_ntp_now = CompactNtp(system_clock_.CurrentNtpTime()); |
| 778 EXPECT_TRUE(rtcp_receiver_.GetAndResetXrRrRtt(&rtt_ms)); | 778 EXPECT_TRUE(rtcp_receiver_.GetAndResetXrRrRtt(&rtt_ms)); |
| 779 uint32_t rtt_ntp = compact_ntp_now - kDelay - kLastRR; | 779 uint32_t rtt_ntp = compact_ntp_now - kDelay - kLastRR; |
| 780 EXPECT_NEAR(CompactNtpRttToMs(rtt_ntp), rtt_ms, 1); | 780 EXPECT_NEAR(CompactNtpRttToMs(rtt_ntp), rtt_ms, 1); |
| 781 } | 781 } |
| 782 | 782 |
| 783 TEST_F(RtcpReceiverTest, InjectExtendedReportsDlrrPacketWithMultipleSubBlocks) { | 783 TEST_F(RtcpReceiverTest, InjectExtendedReportsDlrrPacketWithMultipleSubBlocks) { |
| 784 const uint32_t kLastRR = 0x12345; | 784 const uint32_t kLastRR = 0x12345; |
| 785 const uint32_t kDelay = 0x56789; | 785 const uint32_t kDelay = 0x56789; |
| 786 rtcp_receiver_.SetRtcpXrRrtrStatus(true); | 786 rtcp_receiver_.SetRtcpXrRrtrStatus(true); |
| 787 | 787 |
| 788 rtcp::ExtendedReports xr; | 788 rtcp::ExtendedReports xr; |
| 789 xr.SetSenderSsrc(kSenderSsrc); | 789 xr.SetSenderSsrc(kSenderSsrc); |
| 790 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc, kLastRR, kDelay)); | 790 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc, kLastRR, kDelay)); |
| 791 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc + 1, 0x12345, 0x67890)); | 791 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc + 1, 0x12345, 0x67890)); |
| 792 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc + 2, 0x12345, 0x67890)); | 792 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc + 2, 0x12345, 0x67890)); |
| 793 | 793 |
| 794 InjectRtcpPacket(xr); | 794 InjectRtcpPacket(xr); |
| 795 | 795 |
| 796 uint32_t compact_ntp_now = CompactNtp(NtpTime(system_clock_)); | 796 uint32_t compact_ntp_now = CompactNtp(system_clock_.CurrentNtpTime()); |
| 797 int64_t rtt_ms = 0; | 797 int64_t rtt_ms = 0; |
| 798 EXPECT_TRUE(rtcp_receiver_.GetAndResetXrRrRtt(&rtt_ms)); | 798 EXPECT_TRUE(rtcp_receiver_.GetAndResetXrRrRtt(&rtt_ms)); |
| 799 uint32_t rtt_ntp = compact_ntp_now - kDelay - kLastRR; | 799 uint32_t rtt_ntp = compact_ntp_now - kDelay - kLastRR; |
| 800 EXPECT_NEAR(CompactNtpRttToMs(rtt_ntp), rtt_ms, 1); | 800 EXPECT_NEAR(CompactNtpRttToMs(rtt_ntp), rtt_ms, 1); |
| 801 } | 801 } |
| 802 | 802 |
| 803 TEST_F(RtcpReceiverTest, InjectExtendedReportsPacketWithMultipleReportBlocks) { | 803 TEST_F(RtcpReceiverTest, InjectExtendedReportsPacketWithMultipleReportBlocks) { |
| 804 rtcp_receiver_.SetRtcpXrRrtrStatus(true); | 804 rtcp_receiver_.SetRtcpXrRrtrStatus(true); |
| 805 | 805 |
| 806 rtcp::Rrtr rrtr; | 806 rtcp::Rrtr rrtr; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 852 int64_t rtt_ms; | 852 int64_t rtt_ms; |
| 853 EXPECT_FALSE(rtcp_receiver_.GetAndResetXrRrRtt(&rtt_ms)); | 853 EXPECT_FALSE(rtcp_receiver_.GetAndResetXrRrRtt(&rtt_ms)); |
| 854 } | 854 } |
| 855 | 855 |
| 856 TEST_F(RtcpReceiverTest, RttCalculatedAfterExtendedReportsDlrr) { | 856 TEST_F(RtcpReceiverTest, RttCalculatedAfterExtendedReportsDlrr) { |
| 857 Random rand(0x0123456789abcdef); | 857 Random rand(0x0123456789abcdef); |
| 858 const int64_t kRttMs = rand.Rand(1, 9 * 3600 * 1000); | 858 const int64_t kRttMs = rand.Rand(1, 9 * 3600 * 1000); |
| 859 const uint32_t kDelayNtp = rand.Rand(0, 0x7fffffff); | 859 const uint32_t kDelayNtp = rand.Rand(0, 0x7fffffff); |
| 860 const int64_t kDelayMs = CompactNtpRttToMs(kDelayNtp); | 860 const int64_t kDelayMs = CompactNtpRttToMs(kDelayNtp); |
| 861 rtcp_receiver_.SetRtcpXrRrtrStatus(true); | 861 rtcp_receiver_.SetRtcpXrRrtrStatus(true); |
| 862 NtpTime now(system_clock_); | 862 NtpTime now = system_clock_.CurrentNtpTime(); |
| 863 uint32_t sent_ntp = CompactNtp(now); | 863 uint32_t sent_ntp = CompactNtp(now); |
| 864 system_clock_.AdvanceTimeMilliseconds(kRttMs + kDelayMs); | 864 system_clock_.AdvanceTimeMilliseconds(kRttMs + kDelayMs); |
| 865 | 865 |
| 866 rtcp::ExtendedReports xr; | 866 rtcp::ExtendedReports xr; |
| 867 xr.SetSenderSsrc(kSenderSsrc); | 867 xr.SetSenderSsrc(kSenderSsrc); |
| 868 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc, sent_ntp, kDelayNtp)); | 868 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc, sent_ntp, kDelayNtp)); |
| 869 | 869 |
| 870 InjectRtcpPacket(xr); | 870 InjectRtcpPacket(xr); |
| 871 | 871 |
| 872 int64_t rtt_ms = 0; | 872 int64_t rtt_ms = 0; |
| 873 EXPECT_TRUE(rtcp_receiver_.GetAndResetXrRrRtt(&rtt_ms)); | 873 EXPECT_TRUE(rtcp_receiver_.GetAndResetXrRrRtt(&rtt_ms)); |
| 874 EXPECT_NEAR(kRttMs, rtt_ms, 1); | 874 EXPECT_NEAR(kRttMs, rtt_ms, 1); |
| 875 } | 875 } |
| 876 | 876 |
| 877 TEST_F(RtcpReceiverTest, XrDlrrCalculatesNegativeRttAsOne) { | 877 TEST_F(RtcpReceiverTest, XrDlrrCalculatesNegativeRttAsOne) { |
| 878 Random rand(0x0123456789abcdef); | 878 Random rand(0x0123456789abcdef); |
| 879 const int64_t kRttMs = rand.Rand(-3600 * 1000, -1); | 879 const int64_t kRttMs = rand.Rand(-3600 * 1000, -1); |
| 880 const uint32_t kDelayNtp = rand.Rand(0, 0x7fffffff); | 880 const uint32_t kDelayNtp = rand.Rand(0, 0x7fffffff); |
| 881 const int64_t kDelayMs = CompactNtpRttToMs(kDelayNtp); | 881 const int64_t kDelayMs = CompactNtpRttToMs(kDelayNtp); |
| 882 NtpTime now(system_clock_); | 882 NtpTime now = system_clock_.CurrentNtpTime(); |
| 883 uint32_t sent_ntp = CompactNtp(now); | 883 uint32_t sent_ntp = CompactNtp(now); |
| 884 system_clock_.AdvanceTimeMilliseconds(kRttMs + kDelayMs); | 884 system_clock_.AdvanceTimeMilliseconds(kRttMs + kDelayMs); |
| 885 rtcp_receiver_.SetRtcpXrRrtrStatus(true); | 885 rtcp_receiver_.SetRtcpXrRrtrStatus(true); |
| 886 | 886 |
| 887 rtcp::ExtendedReports xr; | 887 rtcp::ExtendedReports xr; |
| 888 xr.SetSenderSsrc(kSenderSsrc); | 888 xr.SetSenderSsrc(kSenderSsrc); |
| 889 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc, sent_ntp, kDelayNtp)); | 889 xr.AddDlrrItem(ReceiveTimeInfo(kReceiverMainSsrc, sent_ntp, kDelayNtp)); |
| 890 | 890 |
| 891 InjectRtcpPacket(xr); | 891 InjectRtcpPacket(xr); |
| 892 | 892 |
| (...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1308 | 1308 |
| 1309 rtcp::ExtendedReports xr; | 1309 rtcp::ExtendedReports xr; |
| 1310 xr.SetTargetBitrate(bitrate); | 1310 xr.SetTargetBitrate(bitrate); |
| 1311 | 1311 |
| 1312 EXPECT_CALL(bitrate_allocation_observer_, | 1312 EXPECT_CALL(bitrate_allocation_observer_, |
| 1313 OnBitrateAllocationUpdated(expected_allocation)); | 1313 OnBitrateAllocationUpdated(expected_allocation)); |
| 1314 InjectRtcpPacket(xr); | 1314 InjectRtcpPacket(xr); |
| 1315 } | 1315 } |
| 1316 | 1316 |
| 1317 } // namespace webrtc | 1317 } // namespace webrtc |
| OLD | NEW |