| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2016 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 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 EXPECT_STREQ(kName, statistics_proxy_->GetStats().c_name.c_str()); | 301 EXPECT_STREQ(kName, statistics_proxy_->GetStats().c_name.c_str()); |
| 302 } | 302 } |
| 303 | 303 |
| 304 TEST_F(ReceiveStatisticsProxyTest, GetStatsReportsNoCNameForUnknownSsrc) { | 304 TEST_F(ReceiveStatisticsProxyTest, GetStatsReportsNoCNameForUnknownSsrc) { |
| 305 const char* kName = "cName"; | 305 const char* kName = "cName"; |
| 306 statistics_proxy_->CNameChanged(kName, kRemoteSsrc + 1); | 306 statistics_proxy_->CNameChanged(kName, kRemoteSsrc + 1); |
| 307 EXPECT_STREQ("", statistics_proxy_->GetStats().c_name.c_str()); | 307 EXPECT_STREQ("", statistics_proxy_->GetStats().c_name.c_str()); |
| 308 } | 308 } |
| 309 | 309 |
| 310 TEST_F(ReceiveStatisticsProxyTest, | 310 TEST_F(ReceiveStatisticsProxyTest, |
| 311 GetTimingFrameInfoReportsLongestTimingFrame) { | 311 ReportsLongestTimingFrameInfo) { |
| 312 const int64_t kShortEndToEndDelay = 10; | 312 const int64_t kShortEndToEndDelay = 10; |
| 313 const int64_t kMedEndToEndDelay = 20; | 313 const int64_t kMedEndToEndDelay = 20; |
| 314 const int64_t kLongEndToEndDelay = 100; | 314 const int64_t kLongEndToEndDelay = 100; |
| 315 const uint32_t kExpectedRtpTimestamp = 2; | 315 const uint32_t kExpectedRtpTimestamp = 2; |
| 316 TimingFrameInfo info; | 316 TimingFrameInfo info; |
| 317 rtc::Optional<TimingFrameInfo> result; | 317 rtc::Optional<TimingFrameInfo> result; |
| 318 info.rtp_timestamp = kExpectedRtpTimestamp - 1; | 318 info.rtp_timestamp = kExpectedRtpTimestamp - 1; |
| 319 info.capture_time_ms = 0; | 319 info.capture_time_ms = 0; |
| 320 info.decode_finish_ms = kShortEndToEndDelay; | 320 info.decode_finish_ms = kShortEndToEndDelay; |
| 321 statistics_proxy_->OnTimingFrameInfoUpdated(info); | 321 statistics_proxy_->OnTimingFrameInfoUpdated(info); |
| 322 info.rtp_timestamp = | 322 info.rtp_timestamp = |
| 323 kExpectedRtpTimestamp; // this frame should be reported in the end. | 323 kExpectedRtpTimestamp; // this frame should be reported in the end. |
| 324 info.capture_time_ms = 0; | 324 info.capture_time_ms = 0; |
| 325 info.decode_finish_ms = kLongEndToEndDelay; | 325 info.decode_finish_ms = kLongEndToEndDelay; |
| 326 statistics_proxy_->OnTimingFrameInfoUpdated(info); | 326 statistics_proxy_->OnTimingFrameInfoUpdated(info); |
| 327 info.rtp_timestamp = kExpectedRtpTimestamp + 1; | 327 info.rtp_timestamp = kExpectedRtpTimestamp + 1; |
| 328 info.capture_time_ms = 0; | 328 info.capture_time_ms = 0; |
| 329 info.decode_finish_ms = kMedEndToEndDelay; | 329 info.decode_finish_ms = kMedEndToEndDelay; |
| 330 statistics_proxy_->OnTimingFrameInfoUpdated(info); | 330 statistics_proxy_->OnTimingFrameInfoUpdated(info); |
| 331 result = statistics_proxy_->GetAndResetTimingFrameInfo(); | 331 result = statistics_proxy_->GetStats().timing_frame_info; |
| 332 EXPECT_TRUE(result); | 332 EXPECT_TRUE(result); |
| 333 EXPECT_EQ(kExpectedRtpTimestamp, result->rtp_timestamp); | 333 EXPECT_EQ(kExpectedRtpTimestamp, result->rtp_timestamp); |
| 334 } | 334 } |
| 335 | 335 |
| 336 TEST_F(ReceiveStatisticsProxyTest, GetTimingFrameInfoTimingFramesReportedOnce) { | 336 TEST_F(ReceiveStatisticsProxyTest, RespectsReportingIntervalForTimingFrames) { |
| 337 TimingFrameInfo info; |
| 337 const int64_t kShortEndToEndDelay = 10; | 338 const int64_t kShortEndToEndDelay = 10; |
| 338 const uint32_t kExpectedRtpTimestamp = 2; | 339 const uint32_t kExpectedRtpTimestamp = 2; |
| 339 TimingFrameInfo info; | 340 const int64_t kShortDelayMs = 1000; |
| 341 const int64_t kLongDelayMs = 10000; |
| 340 rtc::Optional<TimingFrameInfo> result; | 342 rtc::Optional<TimingFrameInfo> result; |
| 341 info.rtp_timestamp = kExpectedRtpTimestamp; | 343 info.rtp_timestamp = kExpectedRtpTimestamp; |
| 342 info.capture_time_ms = 0; | 344 info.capture_time_ms = 0; |
| 343 info.decode_finish_ms = kShortEndToEndDelay; | 345 info.decode_finish_ms = kShortEndToEndDelay; |
| 344 statistics_proxy_->OnTimingFrameInfoUpdated(info); | 346 statistics_proxy_->OnTimingFrameInfoUpdated(info); |
| 345 result = statistics_proxy_->GetAndResetTimingFrameInfo(); | 347 fake_clock_.AdvanceTimeMilliseconds(kShortDelayMs); |
| 348 result = statistics_proxy_->GetStats().timing_frame_info; |
| 346 EXPECT_TRUE(result); | 349 EXPECT_TRUE(result); |
| 347 EXPECT_EQ(kExpectedRtpTimestamp, result->rtp_timestamp); | 350 EXPECT_EQ(kExpectedRtpTimestamp, result->rtp_timestamp); |
| 348 result = statistics_proxy_->GetAndResetTimingFrameInfo(); | 351 fake_clock_.AdvanceTimeMilliseconds(kLongDelayMs); |
| 352 result = statistics_proxy_->GetStats().timing_frame_info; |
| 349 EXPECT_FALSE(result); | 353 EXPECT_FALSE(result); |
| 350 } | 354 } |
| 351 | 355 |
| 352 TEST_F(ReceiveStatisticsProxyTest, LifetimeHistogramIsUpdated) { | 356 TEST_F(ReceiveStatisticsProxyTest, LifetimeHistogramIsUpdated) { |
| 353 const int64_t kTimeSec = 3; | 357 const int64_t kTimeSec = 3; |
| 354 fake_clock_.AdvanceTimeMilliseconds(kTimeSec * 1000); | 358 fake_clock_.AdvanceTimeMilliseconds(kTimeSec * 1000); |
| 355 // Histograms are updated when the statistics_proxy_ is deleted. | 359 // Histograms are updated when the statistics_proxy_ is deleted. |
| 356 statistics_proxy_.reset(); | 360 statistics_proxy_.reset(); |
| 357 EXPECT_EQ(1, | 361 EXPECT_EQ(1, |
| 358 metrics::NumSamples("WebRTC.Video.ReceiveStreamLifetimeInSeconds")); | 362 metrics::NumSamples("WebRTC.Video.ReceiveStreamLifetimeInSeconds")); |
| (...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 851 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.InterframeDelayInMs")); | 855 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.InterframeDelayInMs")); |
| 852 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.InterframeDelayMaxInMs")); | 856 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.InterframeDelayMaxInMs")); |
| 853 EXPECT_EQ(kInterFrameDelayMs, | 857 EXPECT_EQ(kInterFrameDelayMs, |
| 854 metrics::MinSample("WebRTC.Video.InterframeDelayInMs")); | 858 metrics::MinSample("WebRTC.Video.InterframeDelayInMs")); |
| 855 EXPECT_EQ(kInterFrameDelayMs, | 859 EXPECT_EQ(kInterFrameDelayMs, |
| 856 metrics::MinSample("WebRTC.Video.InterframeDelayMaxInMs")); | 860 metrics::MinSample("WebRTC.Video.InterframeDelayMaxInMs")); |
| 857 } | 861 } |
| 858 } | 862 } |
| 859 | 863 |
| 860 } // namespace webrtc | 864 } // namespace webrtc |
| OLD | NEW |