OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 #include <algorithm> | 10 #include <algorithm> |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 return false; | 74 return false; |
75 } | 75 } |
76 }; | 76 }; |
77 | 77 |
78 void DecodesRetransmittedFrame(bool use_rtx, bool use_red); | 78 void DecodesRetransmittedFrame(bool use_rtx, bool use_red); |
79 void ReceivesPliAndRecovers(int rtp_history_ms); | 79 void ReceivesPliAndRecovers(int rtp_history_ms); |
80 void RespectsRtcpMode(RtcpMode rtcp_mode); | 80 void RespectsRtcpMode(RtcpMode rtcp_mode); |
81 void TestXrReceiverReferenceTimeReport(bool enable_rrtr); | 81 void TestXrReceiverReferenceTimeReport(bool enable_rrtr); |
82 void TestSendsSetSsrcs(size_t num_ssrcs, bool send_single_ssrc_first); | 82 void TestSendsSetSsrcs(size_t num_ssrcs, bool send_single_ssrc_first); |
83 void TestRtpStatePreservation(bool use_rtx); | 83 void TestRtpStatePreservation(bool use_rtx); |
84 void VerifyHistogramStats(bool use_rtx, bool use_red); | 84 void VerifyHistogramStats(bool use_rtx, bool use_red, bool screenshare); |
85 }; | 85 }; |
86 | 86 |
87 TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) { | 87 TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) { |
88 CreateCalls(Call::Config(), Call::Config()); | 88 CreateCalls(Call::Config(), Call::Config()); |
89 | 89 |
90 test::NullTransport transport; | 90 test::NullTransport transport; |
91 CreateSendConfig(1, &transport); | 91 CreateSendConfig(1, &transport); |
92 CreateMatchingReceiveConfigs(&transport); | 92 CreateMatchingReceiveConfigs(&transport); |
93 | 93 |
94 CreateStreams(); | 94 CreateStreams(); |
(...skipping 1775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1870 EXPECT_EQ(1, test::NumHistogramSamples( | 1870 EXPECT_EQ(1, test::NumHistogramSamples( |
1871 "WebRTC.Video.UniqueNackRequestsSentInPercent")); | 1871 "WebRTC.Video.UniqueNackRequestsSentInPercent")); |
1872 EXPECT_EQ(1, test::NumHistogramSamples( | 1872 EXPECT_EQ(1, test::NumHistogramSamples( |
1873 "WebRTC.Video.UniqueNackRequestsReceivedInPercent")); | 1873 "WebRTC.Video.UniqueNackRequestsReceivedInPercent")); |
1874 EXPECT_GT(test::LastHistogramSample( | 1874 EXPECT_GT(test::LastHistogramSample( |
1875 "WebRTC.Video.NackPacketsSentPerMinute"), 0); | 1875 "WebRTC.Video.NackPacketsSentPerMinute"), 0); |
1876 EXPECT_GT(test::LastHistogramSample( | 1876 EXPECT_GT(test::LastHistogramSample( |
1877 "WebRTC.Video.NackPacketsReceivedPerMinute"), 0); | 1877 "WebRTC.Video.NackPacketsReceivedPerMinute"), 0); |
1878 } | 1878 } |
1879 | 1879 |
1880 void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { | 1880 void EndToEndTest::VerifyHistogramStats(bool use_rtx, |
| 1881 bool use_red, |
| 1882 bool screenshare) { |
1881 class StatsObserver : public test::EndToEndTest { | 1883 class StatsObserver : public test::EndToEndTest { |
1882 public: | 1884 public: |
1883 StatsObserver(bool use_rtx, bool use_red) | 1885 StatsObserver(bool use_rtx, bool use_red, bool screenshare) |
1884 : EndToEndTest(kLongTimeoutMs), | 1886 : EndToEndTest(kLongTimeoutMs), |
1885 use_rtx_(use_rtx), | 1887 use_rtx_(use_rtx), |
1886 use_red_(use_red), | 1888 use_red_(use_red), |
| 1889 screenshare_(screenshare), |
1887 sender_call_(nullptr), | 1890 sender_call_(nullptr), |
1888 receiver_call_(nullptr), | 1891 receiver_call_(nullptr), |
1889 start_runtime_ms_(-1) {} | 1892 start_runtime_ms_(-1) {} |
1890 | 1893 |
1891 private: | 1894 private: |
1892 Action OnSendRtp(const uint8_t* packet, size_t length) override { | 1895 Action OnSendRtp(const uint8_t* packet, size_t length) override { |
1893 if (MinMetricRunTimePassed()) | 1896 if (MinMetricRunTimePassed()) |
1894 observation_complete_->Set(); | 1897 observation_complete_->Set(); |
1895 | 1898 |
1896 // GetStats calls GetSendChannelRtcpStatistics | 1899 // GetStats calls GetSendChannelRtcpStatistics |
(...skipping 30 matching lines...) Expand all Loading... |
1927 } | 1930 } |
1928 // RTX | 1931 // RTX |
1929 if (use_rtx_) { | 1932 if (use_rtx_) { |
1930 send_config->rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[0]); | 1933 send_config->rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[0]); |
1931 send_config->rtp.rtx.payload_type = kSendRtxPayloadType; | 1934 send_config->rtp.rtx.payload_type = kSendRtxPayloadType; |
1932 (*receive_configs)[0].rtp.rtx[kFakeSendPayloadType].ssrc = | 1935 (*receive_configs)[0].rtp.rtx[kFakeSendPayloadType].ssrc = |
1933 kSendRtxSsrcs[0]; | 1936 kSendRtxSsrcs[0]; |
1934 (*receive_configs)[0].rtp.rtx[kFakeSendPayloadType].payload_type = | 1937 (*receive_configs)[0].rtp.rtx[kFakeSendPayloadType].payload_type = |
1935 kSendRtxPayloadType; | 1938 kSendRtxPayloadType; |
1936 } | 1939 } |
| 1940 encoder_config->content_type = |
| 1941 screenshare_ ? VideoEncoderConfig::ContentType::kScreen |
| 1942 : VideoEncoderConfig::ContentType::kRealtimeVideo; |
1937 } | 1943 } |
1938 | 1944 |
1939 void OnCallsCreated(Call* sender_call, Call* receiver_call) override { | 1945 void OnCallsCreated(Call* sender_call, Call* receiver_call) override { |
1940 sender_call_ = sender_call; | 1946 sender_call_ = sender_call; |
1941 receiver_call_ = receiver_call; | 1947 receiver_call_ = receiver_call; |
1942 } | 1948 } |
1943 | 1949 |
1944 void PerformTest() override { | 1950 void PerformTest() override { |
1945 EXPECT_EQ(kEventSignaled, Wait()) | 1951 EXPECT_EQ(kEventSignaled, Wait()) |
1946 << "Timed out waiting for packet to be NACKed."; | 1952 << "Timed out waiting for packet to be NACKed."; |
1947 } | 1953 } |
1948 | 1954 |
1949 bool use_rtx_; | 1955 const bool use_rtx_; |
1950 bool use_red_; | 1956 const bool use_red_; |
| 1957 const bool screenshare_; |
1951 Call* sender_call_; | 1958 Call* sender_call_; |
1952 Call* receiver_call_; | 1959 Call* receiver_call_; |
1953 int64_t start_runtime_ms_; | 1960 int64_t start_runtime_ms_; |
1954 } test(use_rtx, use_red); | 1961 } test(use_rtx, use_red, screenshare); |
1955 | 1962 |
1956 test::ClearHistograms(); | 1963 test::ClearHistograms(); |
1957 RunBaseTest(&test, FakeNetworkPipe::Config()); | 1964 RunBaseTest(&test, FakeNetworkPipe::Config()); |
1958 | 1965 |
1959 // Delete the call for Call stats to be reported. | 1966 // Delete the call for Call stats to be reported. |
1960 sender_call_.reset(); | 1967 sender_call_.reset(); |
1961 receiver_call_.reset(); | 1968 receiver_call_.reset(); |
1962 | 1969 |
| 1970 std::string video_prefix = |
| 1971 screenshare ? "WebRTC.Video.Screenshare." : "WebRTC.Video."; |
| 1972 |
1963 // Verify that stats have been updated once. | 1973 // Verify that stats have been updated once. |
1964 EXPECT_EQ( | 1974 EXPECT_EQ( |
1965 1, test::NumHistogramSamples("WebRTC.Call.VideoBitrateReceivedInKbps")); | 1975 1, test::NumHistogramSamples("WebRTC.Call.VideoBitrateReceivedInKbps")); |
1966 EXPECT_EQ(1, | 1976 EXPECT_EQ(1, |
1967 test::NumHistogramSamples("WebRTC.Call.RtcpBitrateReceivedInBps")); | 1977 test::NumHistogramSamples("WebRTC.Call.RtcpBitrateReceivedInBps")); |
1968 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Call.BitrateReceivedInKbps")); | 1978 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Call.BitrateReceivedInKbps")); |
1969 EXPECT_EQ( | 1979 EXPECT_EQ( |
1970 1, test::NumHistogramSamples("WebRTC.Call.EstimatedSendBitrateInKbps")); | 1980 1, test::NumHistogramSamples("WebRTC.Call.EstimatedSendBitrateInKbps")); |
1971 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Call.PacerBitrateInKbps")); | 1981 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Call.PacerBitrateInKbps")); |
1972 | 1982 |
1973 EXPECT_EQ(1, test::NumHistogramSamples( | 1983 EXPECT_EQ(1, test::NumHistogramSamples( |
1974 "WebRTC.Video.NackPacketsSentPerMinute")); | 1984 "WebRTC.Video.NackPacketsSentPerMinute")); |
1975 EXPECT_EQ(1, test::NumHistogramSamples( | 1985 EXPECT_EQ(1, test::NumHistogramSamples( |
1976 "WebRTC.Video.NackPacketsReceivedPerMinute")); | 1986 "WebRTC.Video.NackPacketsReceivedPerMinute")); |
1977 EXPECT_EQ(1, test::NumHistogramSamples( | 1987 EXPECT_EQ(1, test::NumHistogramSamples( |
1978 "WebRTC.Video.FirPacketsSentPerMinute")); | 1988 "WebRTC.Video.FirPacketsSentPerMinute")); |
1979 EXPECT_EQ(1, test::NumHistogramSamples( | 1989 EXPECT_EQ(1, test::NumHistogramSamples( |
1980 "WebRTC.Video.FirPacketsReceivedPerMinute")); | 1990 "WebRTC.Video.FirPacketsReceivedPerMinute")); |
1981 EXPECT_EQ(1, test::NumHistogramSamples( | 1991 EXPECT_EQ(1, test::NumHistogramSamples( |
1982 "WebRTC.Video.PliPacketsSentPerMinute")); | 1992 "WebRTC.Video.PliPacketsSentPerMinute")); |
1983 EXPECT_EQ(1, test::NumHistogramSamples( | 1993 EXPECT_EQ(1, test::NumHistogramSamples( |
1984 "WebRTC.Video.PliPacketsReceivedPerMinute")); | 1994 "WebRTC.Video.PliPacketsReceivedPerMinute")); |
1985 | 1995 |
1986 EXPECT_EQ(1, test::NumHistogramSamples( | 1996 EXPECT_EQ( |
1987 "WebRTC.Video.KeyFramesSentInPermille")); | 1997 1, test::NumHistogramSamples(video_prefix + "KeyFramesSentInPermille")); |
1988 EXPECT_EQ(1, test::NumHistogramSamples( | 1998 EXPECT_EQ(1, test::NumHistogramSamples( |
1989 "WebRTC.Video.KeyFramesReceivedInPermille")); | 1999 "WebRTC.Video.KeyFramesReceivedInPermille")); |
1990 | 2000 |
1991 EXPECT_EQ(1, test::NumHistogramSamples( | 2001 EXPECT_EQ(1, test::NumHistogramSamples( |
1992 "WebRTC.Video.SentPacketsLostInPercent")); | 2002 "WebRTC.Video.SentPacketsLostInPercent")); |
1993 EXPECT_EQ(1, test::NumHistogramSamples( | 2003 EXPECT_EQ(1, test::NumHistogramSamples( |
1994 "WebRTC.Video.ReceivedPacketsLostInPercent")); | 2004 "WebRTC.Video.ReceivedPacketsLostInPercent")); |
1995 | 2005 |
1996 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.InputWidthInPixels")); | 2006 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "InputWidthInPixels")); |
1997 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.InputHeightInPixels")); | 2007 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "InputHeightInPixels")); |
1998 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SentWidthInPixels")); | 2008 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentWidthInPixels")); |
1999 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SentHeightInPixels")); | 2009 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentHeightInPixels")); |
2000 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.ReceivedWidthInPixels")); | 2010 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.ReceivedWidthInPixels")); |
2001 EXPECT_EQ(1, | 2011 EXPECT_EQ(1, |
2002 test::NumHistogramSamples("WebRTC.Video.ReceivedHeightInPixels")); | 2012 test::NumHistogramSamples("WebRTC.Video.ReceivedHeightInPixels")); |
2003 | 2013 |
2004 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), | 2014 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), |
2005 test::LastHistogramSample("WebRTC.Video.InputWidthInPixels")); | 2015 test::LastHistogramSample(video_prefix + "InputWidthInPixels")); |
2006 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), | 2016 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), |
2007 test::LastHistogramSample("WebRTC.Video.InputHeightInPixels")); | 2017 test::LastHistogramSample(video_prefix + "InputHeightInPixels")); |
2008 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), | 2018 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), |
2009 test::LastHistogramSample("WebRTC.Video.SentWidthInPixels")); | 2019 test::LastHistogramSample(video_prefix + "SentWidthInPixels")); |
2010 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), | 2020 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), |
2011 test::LastHistogramSample("WebRTC.Video.SentHeightInPixels")); | 2021 test::LastHistogramSample(video_prefix + "SentHeightInPixels")); |
2012 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), | 2022 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), |
2013 test::LastHistogramSample("WebRTC.Video.ReceivedWidthInPixels")); | 2023 test::LastHistogramSample("WebRTC.Video.ReceivedWidthInPixels")); |
2014 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), | 2024 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), |
2015 test::LastHistogramSample("WebRTC.Video.ReceivedHeightInPixels")); | 2025 test::LastHistogramSample("WebRTC.Video.ReceivedHeightInPixels")); |
2016 | 2026 |
2017 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.InputFramesPerSecond")); | 2027 EXPECT_EQ(1, |
2018 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SentFramesPerSecond")); | 2028 test::NumHistogramSamples(video_prefix + "InputFramesPerSecond")); |
| 2029 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentFramesPerSecond")); |
2019 EXPECT_EQ(1, test::NumHistogramSamples( | 2030 EXPECT_EQ(1, test::NumHistogramSamples( |
2020 "WebRTC.Video.DecodedFramesPerSecond")); | 2031 "WebRTC.Video.DecodedFramesPerSecond")); |
2021 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.RenderFramesPerSecond")); | 2032 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.RenderFramesPerSecond")); |
2022 | 2033 |
2023 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.OnewayDelayInMs")); | 2034 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.OnewayDelayInMs")); |
2024 EXPECT_EQ( | 2035 EXPECT_EQ( |
2025 1, test::NumHistogramSamples("WebRTC.Video.RenderSqrtPixelsPerSecond")); | 2036 1, test::NumHistogramSamples("WebRTC.Video.RenderSqrtPixelsPerSecond")); |
2026 | 2037 |
2027 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.EncodeTimeInMs")); | 2038 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "EncodeTimeInMs")); |
2028 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.DecodeTimeInMs")); | 2039 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.DecodeTimeInMs")); |
2029 | 2040 |
2030 EXPECT_EQ(1, test::NumHistogramSamples( | 2041 EXPECT_EQ(1, test::NumHistogramSamples( |
2031 "WebRTC.Video.BitrateSentInKbps")); | 2042 "WebRTC.Video.BitrateSentInKbps")); |
2032 EXPECT_EQ(1, test::NumHistogramSamples( | 2043 EXPECT_EQ(1, test::NumHistogramSamples( |
2033 "WebRTC.Video.BitrateReceivedInKbps")); | 2044 "WebRTC.Video.BitrateReceivedInKbps")); |
2034 EXPECT_EQ(1, test::NumHistogramSamples( | 2045 EXPECT_EQ(1, test::NumHistogramSamples( |
2035 "WebRTC.Video.MediaBitrateSentInKbps")); | 2046 "WebRTC.Video.MediaBitrateSentInKbps")); |
2036 EXPECT_EQ(1, test::NumHistogramSamples( | 2047 EXPECT_EQ(1, test::NumHistogramSamples( |
2037 "WebRTC.Video.MediaBitrateReceivedInKbps")); | 2048 "WebRTC.Video.MediaBitrateReceivedInKbps")); |
2038 EXPECT_EQ(1, test::NumHistogramSamples( | 2049 EXPECT_EQ(1, test::NumHistogramSamples( |
2039 "WebRTC.Video.PaddingBitrateSentInKbps")); | 2050 "WebRTC.Video.PaddingBitrateSentInKbps")); |
2040 EXPECT_EQ(1, test::NumHistogramSamples( | 2051 EXPECT_EQ(1, test::NumHistogramSamples( |
2041 "WebRTC.Video.PaddingBitrateReceivedInKbps")); | 2052 "WebRTC.Video.PaddingBitrateReceivedInKbps")); |
2042 EXPECT_EQ(1, test::NumHistogramSamples( | 2053 EXPECT_EQ(1, test::NumHistogramSamples( |
2043 "WebRTC.Video.RetransmittedBitrateSentInKbps")); | 2054 "WebRTC.Video.RetransmittedBitrateSentInKbps")); |
2044 EXPECT_EQ(1, test::NumHistogramSamples( | 2055 EXPECT_EQ(1, test::NumHistogramSamples( |
2045 "WebRTC.Video.RetransmittedBitrateReceivedInKbps")); | 2056 "WebRTC.Video.RetransmittedBitrateReceivedInKbps")); |
2046 | 2057 |
2047 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SendSideDelayInMs")); | 2058 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SendSideDelayInMs")); |
2048 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SendSideDelayMaxInMs")); | 2059 EXPECT_EQ(1, |
| 2060 test::NumHistogramSamples(video_prefix + "SendSideDelayMaxInMs")); |
2049 | 2061 |
2050 int num_rtx_samples = use_rtx ? 1 : 0; | 2062 int num_rtx_samples = use_rtx ? 1 : 0; |
2051 EXPECT_EQ(num_rtx_samples, test::NumHistogramSamples( | 2063 EXPECT_EQ(num_rtx_samples, test::NumHistogramSamples( |
2052 "WebRTC.Video.RtxBitrateSentInKbps")); | 2064 "WebRTC.Video.RtxBitrateSentInKbps")); |
2053 EXPECT_EQ(num_rtx_samples, test::NumHistogramSamples( | 2065 EXPECT_EQ(num_rtx_samples, test::NumHistogramSamples( |
2054 "WebRTC.Video.RtxBitrateReceivedInKbps")); | 2066 "WebRTC.Video.RtxBitrateReceivedInKbps")); |
2055 | 2067 |
2056 int num_red_samples = use_red ? 1 : 0; | 2068 int num_red_samples = use_red ? 1 : 0; |
2057 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( | 2069 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( |
2058 "WebRTC.Video.FecBitrateSentInKbps")); | 2070 "WebRTC.Video.FecBitrateSentInKbps")); |
2059 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( | 2071 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( |
2060 "WebRTC.Video.FecBitrateReceivedInKbps")); | 2072 "WebRTC.Video.FecBitrateReceivedInKbps")); |
2061 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( | 2073 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( |
2062 "WebRTC.Video.ReceivedFecPacketsInPercent")); | 2074 "WebRTC.Video.ReceivedFecPacketsInPercent")); |
2063 } | 2075 } |
2064 | 2076 |
2065 TEST_F(EndToEndTest, VerifyHistogramStatsWithRtx) { | 2077 TEST_F(EndToEndTest, VerifyHistogramStatsWithRtx) { |
2066 const bool kEnabledRtx = true; | 2078 const bool kEnabledRtx = true; |
2067 const bool kEnabledRed = false; | 2079 const bool kEnabledRed = false; |
2068 VerifyHistogramStats(kEnabledRtx, kEnabledRed); | 2080 const bool kScreenshare = false; |
| 2081 VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare); |
2069 } | 2082 } |
2070 | 2083 |
2071 TEST_F(EndToEndTest, VerifyHistogramStatsWithRed) { | 2084 TEST_F(EndToEndTest, VerifyHistogramStatsWithRed) { |
2072 const bool kEnabledRtx = false; | 2085 const bool kEnabledRtx = false; |
2073 const bool kEnabledRed = true; | 2086 const bool kEnabledRed = true; |
2074 VerifyHistogramStats(kEnabledRtx, kEnabledRed); | 2087 const bool kScreenshare = false; |
| 2088 VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare); |
| 2089 } |
| 2090 |
| 2091 TEST_F(EndToEndTest, VerifyHistogramStatsWithScreenshare) { |
| 2092 const bool kEnabledRtx = false; |
| 2093 const bool kEnabledRed = false; |
| 2094 const bool kScreenshare = true; |
| 2095 VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare); |
2075 } | 2096 } |
2076 | 2097 |
2077 void EndToEndTest::TestXrReceiverReferenceTimeReport(bool enable_rrtr) { | 2098 void EndToEndTest::TestXrReceiverReferenceTimeReport(bool enable_rrtr) { |
2078 static const int kNumRtcpReportPacketsToObserve = 5; | 2099 static const int kNumRtcpReportPacketsToObserve = 5; |
2079 class RtcpXrObserver : public test::EndToEndTest { | 2100 class RtcpXrObserver : public test::EndToEndTest { |
2080 public: | 2101 public: |
2081 explicit RtcpXrObserver(bool enable_rrtr) | 2102 explicit RtcpXrObserver(bool enable_rrtr) |
2082 : EndToEndTest(kDefaultTimeoutMs), | 2103 : EndToEndTest(kDefaultTimeoutMs), |
2083 enable_rrtr_(enable_rrtr), | 2104 enable_rrtr_(enable_rrtr), |
2084 sent_rtcp_sr_(0), | 2105 sent_rtcp_sr_(0), |
(...skipping 1119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3204 EXPECT_TRUE(default_receive_config.rtp.rtx.empty()) | 3225 EXPECT_TRUE(default_receive_config.rtp.rtx.empty()) |
3205 << "Enabling RTX requires rtpmap: rtx negotiation."; | 3226 << "Enabling RTX requires rtpmap: rtx negotiation."; |
3206 EXPECT_TRUE(default_receive_config.rtp.extensions.empty()) | 3227 EXPECT_TRUE(default_receive_config.rtp.extensions.empty()) |
3207 << "Enabling RTP extensions require negotiation."; | 3228 << "Enabling RTP extensions require negotiation."; |
3208 | 3229 |
3209 VerifyEmptyNackConfig(default_receive_config.rtp.nack); | 3230 VerifyEmptyNackConfig(default_receive_config.rtp.nack); |
3210 VerifyEmptyFecConfig(default_receive_config.rtp.fec); | 3231 VerifyEmptyFecConfig(default_receive_config.rtp.fec); |
3211 } | 3232 } |
3212 | 3233 |
3213 } // namespace webrtc | 3234 } // namespace webrtc |
OLD | NEW |