Index: webrtc/video/end_to_end_tests.cc |
diff --git a/webrtc/video/end_to_end_tests.cc b/webrtc/video/end_to_end_tests.cc |
index 365995515b0a6c27666a463c3be4561cc829a33a..84bd88862256972d7c3795596c2ca04737cadaf6 100644 |
--- a/webrtc/video/end_to_end_tests.cc |
+++ b/webrtc/video/end_to_end_tests.cc |
@@ -81,7 +81,7 @@ class EndToEndTest : public test::CallTest { |
void TestXrReceiverReferenceTimeReport(bool enable_rrtr); |
void TestSendsSetSsrcs(size_t num_ssrcs, bool send_single_ssrc_first); |
void TestRtpStatePreservation(bool use_rtx); |
- void VerifyHistogramStats(bool use_rtx, bool use_red); |
+ void VerifyHistogramStats(bool use_rtx, bool use_red, bool screenshare); |
}; |
TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) { |
@@ -1877,13 +1877,16 @@ TEST_F(EndToEndTest, VerifyNackStats) { |
"WebRTC.Video.NackPacketsReceivedPerMinute"), 0); |
} |
-void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
+void EndToEndTest::VerifyHistogramStats(bool use_rtx, |
+ bool use_red, |
+ bool screenshare) { |
class StatsObserver : public test::EndToEndTest { |
public: |
- StatsObserver(bool use_rtx, bool use_red) |
+ StatsObserver(bool use_rtx, bool use_red, bool screenshare) |
: EndToEndTest(kLongTimeoutMs), |
use_rtx_(use_rtx), |
use_red_(use_red), |
+ screenshare_(screenshare), |
sender_call_(nullptr), |
receiver_call_(nullptr), |
start_runtime_ms_(-1) {} |
@@ -1934,6 +1937,9 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
(*receive_configs)[0].rtp.rtx[kFakeSendPayloadType].payload_type = |
kSendRtxPayloadType; |
} |
+ encoder_config->content_type = |
+ screenshare_ ? VideoEncoderConfig::ContentType::kScreen |
+ : VideoEncoderConfig::ContentType::kRealtimeVideo; |
} |
void OnCallsCreated(Call* sender_call, Call* receiver_call) override { |
@@ -1946,12 +1952,13 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
<< "Timed out waiting for packet to be NACKed."; |
} |
- bool use_rtx_; |
- bool use_red_; |
+ const bool use_rtx_; |
+ const bool use_red_; |
+ const bool screenshare_; |
Call* sender_call_; |
Call* receiver_call_; |
int64_t start_runtime_ms_; |
- } test(use_rtx, use_red); |
+ } test(use_rtx, use_red, screenshare); |
test::ClearHistograms(); |
RunBaseTest(&test, FakeNetworkPipe::Config()); |
@@ -1960,6 +1967,9 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
sender_call_.reset(); |
receiver_call_.reset(); |
+ std::string video_prefix = |
+ screenshare ? "WebRTC.Video.Screenshare." : "WebRTC.Video."; |
+ |
// Verify that stats have been updated once. |
EXPECT_EQ( |
1, test::NumHistogramSamples("WebRTC.Call.VideoBitrateReceivedInKbps")); |
@@ -1983,8 +1993,8 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
EXPECT_EQ(1, test::NumHistogramSamples( |
"WebRTC.Video.PliPacketsReceivedPerMinute")); |
- EXPECT_EQ(1, test::NumHistogramSamples( |
- "WebRTC.Video.KeyFramesSentInPermille")); |
+ EXPECT_EQ( |
+ 1, test::NumHistogramSamples(video_prefix + "KeyFramesSentInPermille")); |
EXPECT_EQ(1, test::NumHistogramSamples( |
"WebRTC.Video.KeyFramesReceivedInPermille")); |
@@ -1993,29 +2003,30 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
EXPECT_EQ(1, test::NumHistogramSamples( |
"WebRTC.Video.ReceivedPacketsLostInPercent")); |
- EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.InputWidthInPixels")); |
- EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.InputHeightInPixels")); |
- EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SentWidthInPixels")); |
- EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SentHeightInPixels")); |
+ EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "InputWidthInPixels")); |
+ EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "InputHeightInPixels")); |
+ EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentWidthInPixels")); |
+ EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentHeightInPixels")); |
EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.ReceivedWidthInPixels")); |
EXPECT_EQ(1, |
test::NumHistogramSamples("WebRTC.Video.ReceivedHeightInPixels")); |
EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), |
- test::LastHistogramSample("WebRTC.Video.InputWidthInPixels")); |
+ test::LastHistogramSample(video_prefix + "InputWidthInPixels")); |
EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), |
- test::LastHistogramSample("WebRTC.Video.InputHeightInPixels")); |
+ test::LastHistogramSample(video_prefix + "InputHeightInPixels")); |
EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), |
- test::LastHistogramSample("WebRTC.Video.SentWidthInPixels")); |
+ test::LastHistogramSample(video_prefix + "SentWidthInPixels")); |
EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), |
- test::LastHistogramSample("WebRTC.Video.SentHeightInPixels")); |
+ test::LastHistogramSample(video_prefix + "SentHeightInPixels")); |
EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), |
test::LastHistogramSample("WebRTC.Video.ReceivedWidthInPixels")); |
EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), |
test::LastHistogramSample("WebRTC.Video.ReceivedHeightInPixels")); |
- EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.InputFramesPerSecond")); |
- EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SentFramesPerSecond")); |
+ EXPECT_EQ(1, |
+ test::NumHistogramSamples(video_prefix + "InputFramesPerSecond")); |
+ EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentFramesPerSecond")); |
EXPECT_EQ(1, test::NumHistogramSamples( |
"WebRTC.Video.DecodedFramesPerSecond")); |
EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.RenderFramesPerSecond")); |
@@ -2024,7 +2035,7 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
EXPECT_EQ( |
1, test::NumHistogramSamples("WebRTC.Video.RenderSqrtPixelsPerSecond")); |
- EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.EncodeTimeInMs")); |
+ EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "EncodeTimeInMs")); |
EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.DecodeTimeInMs")); |
EXPECT_EQ(1, test::NumHistogramSamples( |
@@ -2044,8 +2055,9 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
EXPECT_EQ(1, test::NumHistogramSamples( |
"WebRTC.Video.RetransmittedBitrateReceivedInKbps")); |
- EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SendSideDelayInMs")); |
- EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SendSideDelayMaxInMs")); |
+ EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SendSideDelayInMs")); |
+ EXPECT_EQ(1, |
+ test::NumHistogramSamples(video_prefix + "SendSideDelayMaxInMs")); |
int num_rtx_samples = use_rtx ? 1 : 0; |
EXPECT_EQ(num_rtx_samples, test::NumHistogramSamples( |
@@ -2065,13 +2077,22 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { |
TEST_F(EndToEndTest, VerifyHistogramStatsWithRtx) { |
const bool kEnabledRtx = true; |
const bool kEnabledRed = false; |
- VerifyHistogramStats(kEnabledRtx, kEnabledRed); |
+ const bool kScreenshare = false; |
+ VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare); |
} |
TEST_F(EndToEndTest, VerifyHistogramStatsWithRed) { |
const bool kEnabledRtx = false; |
const bool kEnabledRed = true; |
- VerifyHistogramStats(kEnabledRtx, kEnabledRed); |
+ const bool kScreenshare = false; |
+ VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare); |
+} |
+ |
+TEST_F(EndToEndTest, VerifyHistogramStatsWithScreenshare) { |
+ const bool kEnabledRtx = false; |
+ const bool kEnabledRed = false; |
+ const bool kScreenshare = true; |
+ VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare); |
} |
void EndToEndTest::TestXrReceiverReferenceTimeReport(bool enable_rrtr) { |