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 1762 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1857 EXPECT_EQ(1, test::NumHistogramSamples( | 1857 EXPECT_EQ(1, test::NumHistogramSamples( |
1858 "WebRTC.Video.UniqueNackRequestsSentInPercent")); | 1858 "WebRTC.Video.UniqueNackRequestsSentInPercent")); |
1859 EXPECT_EQ(1, test::NumHistogramSamples( | 1859 EXPECT_EQ(1, test::NumHistogramSamples( |
1860 "WebRTC.Video.UniqueNackRequestsReceivedInPercent")); | 1860 "WebRTC.Video.UniqueNackRequestsReceivedInPercent")); |
1861 EXPECT_GT(test::LastHistogramSample( | 1861 EXPECT_GT(test::LastHistogramSample( |
1862 "WebRTC.Video.NackPacketsSentPerMinute"), 0); | 1862 "WebRTC.Video.NackPacketsSentPerMinute"), 0); |
1863 EXPECT_GT(test::LastHistogramSample( | 1863 EXPECT_GT(test::LastHistogramSample( |
1864 "WebRTC.Video.NackPacketsReceivedPerMinute"), 0); | 1864 "WebRTC.Video.NackPacketsReceivedPerMinute"), 0); |
1865 } | 1865 } |
1866 | 1866 |
1867 void EndToEndTest::VerifyHistogramStats(bool use_rtx, bool use_red) { | 1867 void EndToEndTest::VerifyHistogramStats(bool use_rtx, |
| 1868 bool use_red, |
| 1869 bool screenshare) { |
1868 class StatsObserver : public test::EndToEndTest { | 1870 class StatsObserver : public test::EndToEndTest { |
1869 public: | 1871 public: |
1870 StatsObserver(bool use_rtx, bool use_red) | 1872 StatsObserver(bool use_rtx, bool use_red, bool screenshare) |
1871 : EndToEndTest(kLongTimeoutMs), | 1873 : EndToEndTest(kLongTimeoutMs), |
1872 use_rtx_(use_rtx), | 1874 use_rtx_(use_rtx), |
1873 use_red_(use_red), | 1875 use_red_(use_red), |
| 1876 screenshare_(screenshare), |
1874 sender_call_(nullptr), | 1877 sender_call_(nullptr), |
1875 receiver_call_(nullptr), | 1878 receiver_call_(nullptr), |
1876 start_runtime_ms_(-1) {} | 1879 start_runtime_ms_(-1) {} |
1877 | 1880 |
1878 private: | 1881 private: |
1879 Action OnSendRtp(const uint8_t* packet, size_t length) override { | 1882 Action OnSendRtp(const uint8_t* packet, size_t length) override { |
1880 if (MinMetricRunTimePassed()) | 1883 if (MinMetricRunTimePassed()) |
1881 observation_complete_->Set(); | 1884 observation_complete_->Set(); |
1882 | 1885 |
1883 // GetStats calls GetSendChannelRtcpStatistics | 1886 // GetStats calls GetSendChannelRtcpStatistics |
(...skipping 30 matching lines...) Expand all Loading... |
1914 } | 1917 } |
1915 // RTX | 1918 // RTX |
1916 if (use_rtx_) { | 1919 if (use_rtx_) { |
1917 send_config->rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[0]); | 1920 send_config->rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[0]); |
1918 send_config->rtp.rtx.payload_type = kSendRtxPayloadType; | 1921 send_config->rtp.rtx.payload_type = kSendRtxPayloadType; |
1919 (*receive_configs)[0].rtp.rtx[kFakeSendPayloadType].ssrc = | 1922 (*receive_configs)[0].rtp.rtx[kFakeSendPayloadType].ssrc = |
1920 kSendRtxSsrcs[0]; | 1923 kSendRtxSsrcs[0]; |
1921 (*receive_configs)[0].rtp.rtx[kFakeSendPayloadType].payload_type = | 1924 (*receive_configs)[0].rtp.rtx[kFakeSendPayloadType].payload_type = |
1922 kSendRtxPayloadType; | 1925 kSendRtxPayloadType; |
1923 } | 1926 } |
| 1927 encoder_config->content_type = |
| 1928 screenshare_ ? VideoEncoderConfig::ContentType::kScreen |
| 1929 : VideoEncoderConfig::ContentType::kRealtimeVideo; |
1924 } | 1930 } |
1925 | 1931 |
1926 void OnCallsCreated(Call* sender_call, Call* receiver_call) override { | 1932 void OnCallsCreated(Call* sender_call, Call* receiver_call) override { |
1927 sender_call_ = sender_call; | 1933 sender_call_ = sender_call; |
1928 receiver_call_ = receiver_call; | 1934 receiver_call_ = receiver_call; |
1929 } | 1935 } |
1930 | 1936 |
1931 void PerformTest() override { | 1937 void PerformTest() override { |
1932 EXPECT_EQ(kEventSignaled, Wait()) | 1938 EXPECT_EQ(kEventSignaled, Wait()) |
1933 << "Timed out waiting for packet to be NACKed."; | 1939 << "Timed out waiting for packet to be NACKed."; |
1934 } | 1940 } |
1935 | 1941 |
1936 bool use_rtx_; | 1942 const bool use_rtx_; |
1937 bool use_red_; | 1943 const bool use_red_; |
| 1944 const bool screenshare_; |
1938 Call* sender_call_; | 1945 Call* sender_call_; |
1939 Call* receiver_call_; | 1946 Call* receiver_call_; |
1940 int64_t start_runtime_ms_; | 1947 int64_t start_runtime_ms_; |
1941 } test(use_rtx, use_red); | 1948 } test(use_rtx, use_red, screenshare); |
1942 | 1949 |
1943 test::ClearHistograms(); | 1950 test::ClearHistograms(); |
1944 RunBaseTest(&test, FakeNetworkPipe::Config()); | 1951 RunBaseTest(&test, FakeNetworkPipe::Config()); |
1945 | 1952 |
1946 // Delete the call for Call stats to be reported. | 1953 // Delete the call for Call stats to be reported. |
1947 sender_call_.reset(); | 1954 sender_call_.reset(); |
1948 receiver_call_.reset(); | 1955 receiver_call_.reset(); |
1949 | 1956 |
| 1957 std::string video_prefix = |
| 1958 screenshare ? "WebRTC.Video.Screenshare." : "WebRTC.Video."; |
| 1959 |
1950 // Verify that stats have been updated once. | 1960 // Verify that stats have been updated once. |
1951 EXPECT_EQ( | 1961 EXPECT_EQ( |
1952 1, test::NumHistogramSamples("WebRTC.Call.VideoBitrateReceivedInKbps")); | 1962 1, test::NumHistogramSamples("WebRTC.Call.VideoBitrateReceivedInKbps")); |
1953 EXPECT_EQ(1, | 1963 EXPECT_EQ(1, |
1954 test::NumHistogramSamples("WebRTC.Call.RtcpBitrateReceivedInBps")); | 1964 test::NumHistogramSamples("WebRTC.Call.RtcpBitrateReceivedInBps")); |
1955 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Call.BitrateReceivedInKbps")); | 1965 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Call.BitrateReceivedInKbps")); |
1956 EXPECT_EQ( | 1966 EXPECT_EQ( |
1957 1, test::NumHistogramSamples("WebRTC.Call.EstimatedSendBitrateInKbps")); | 1967 1, test::NumHistogramSamples("WebRTC.Call.EstimatedSendBitrateInKbps")); |
1958 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Call.PacerBitrateInKbps")); | 1968 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Call.PacerBitrateInKbps")); |
1959 | 1969 |
1960 EXPECT_EQ(1, test::NumHistogramSamples( | 1970 EXPECT_EQ(1, test::NumHistogramSamples( |
1961 "WebRTC.Video.NackPacketsSentPerMinute")); | 1971 "WebRTC.Video.NackPacketsSentPerMinute")); |
1962 EXPECT_EQ(1, test::NumHistogramSamples( | 1972 EXPECT_EQ(1, test::NumHistogramSamples( |
1963 "WebRTC.Video.NackPacketsReceivedPerMinute")); | 1973 "WebRTC.Video.NackPacketsReceivedPerMinute")); |
1964 EXPECT_EQ(1, test::NumHistogramSamples( | 1974 EXPECT_EQ(1, test::NumHistogramSamples( |
1965 "WebRTC.Video.FirPacketsSentPerMinute")); | 1975 "WebRTC.Video.FirPacketsSentPerMinute")); |
1966 EXPECT_EQ(1, test::NumHistogramSamples( | 1976 EXPECT_EQ(1, test::NumHistogramSamples( |
1967 "WebRTC.Video.FirPacketsReceivedPerMinute")); | 1977 "WebRTC.Video.FirPacketsReceivedPerMinute")); |
1968 EXPECT_EQ(1, test::NumHistogramSamples( | 1978 EXPECT_EQ(1, test::NumHistogramSamples( |
1969 "WebRTC.Video.PliPacketsSentPerMinute")); | 1979 "WebRTC.Video.PliPacketsSentPerMinute")); |
1970 EXPECT_EQ(1, test::NumHistogramSamples( | 1980 EXPECT_EQ(1, test::NumHistogramSamples( |
1971 "WebRTC.Video.PliPacketsReceivedPerMinute")); | 1981 "WebRTC.Video.PliPacketsReceivedPerMinute")); |
1972 | 1982 |
1973 EXPECT_EQ(1, test::NumHistogramSamples( | 1983 EXPECT_EQ( |
1974 "WebRTC.Video.KeyFramesSentInPermille")); | 1984 1, test::NumHistogramSamples(video_prefix + "KeyFramesSentInPermille")); |
1975 EXPECT_EQ(1, test::NumHistogramSamples( | 1985 EXPECT_EQ(1, test::NumHistogramSamples( |
1976 "WebRTC.Video.KeyFramesReceivedInPermille")); | 1986 "WebRTC.Video.KeyFramesReceivedInPermille")); |
1977 | 1987 |
1978 EXPECT_EQ(1, test::NumHistogramSamples( | 1988 EXPECT_EQ(1, test::NumHistogramSamples( |
1979 "WebRTC.Video.SentPacketsLostInPercent")); | 1989 "WebRTC.Video.SentPacketsLostInPercent")); |
1980 EXPECT_EQ(1, test::NumHistogramSamples( | 1990 EXPECT_EQ(1, test::NumHistogramSamples( |
1981 "WebRTC.Video.ReceivedPacketsLostInPercent")); | 1991 "WebRTC.Video.ReceivedPacketsLostInPercent")); |
1982 | 1992 |
1983 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.InputWidthInPixels")); | 1993 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "InputWidthInPixels")); |
1984 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.InputHeightInPixels")); | 1994 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "InputHeightInPixels")); |
1985 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SentWidthInPixels")); | 1995 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentWidthInPixels")); |
1986 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SentHeightInPixels")); | 1996 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentHeightInPixels")); |
1987 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.ReceivedWidthInPixels")); | 1997 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.ReceivedWidthInPixels")); |
1988 EXPECT_EQ(1, | 1998 EXPECT_EQ(1, |
1989 test::NumHistogramSamples("WebRTC.Video.ReceivedHeightInPixels")); | 1999 test::NumHistogramSamples("WebRTC.Video.ReceivedHeightInPixels")); |
1990 | 2000 |
1991 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), | 2001 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), |
1992 test::LastHistogramSample("WebRTC.Video.InputWidthInPixels")); | 2002 test::LastHistogramSample(video_prefix + "InputWidthInPixels")); |
1993 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), | 2003 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), |
1994 test::LastHistogramSample("WebRTC.Video.InputHeightInPixels")); | 2004 test::LastHistogramSample(video_prefix + "InputHeightInPixels")); |
1995 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), | 2005 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), |
1996 test::LastHistogramSample("WebRTC.Video.SentWidthInPixels")); | 2006 test::LastHistogramSample(video_prefix + "SentWidthInPixels")); |
1997 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), | 2007 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), |
1998 test::LastHistogramSample("WebRTC.Video.SentHeightInPixels")); | 2008 test::LastHistogramSample(video_prefix + "SentHeightInPixels")); |
1999 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), | 2009 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), |
2000 test::LastHistogramSample("WebRTC.Video.ReceivedWidthInPixels")); | 2010 test::LastHistogramSample("WebRTC.Video.ReceivedWidthInPixels")); |
2001 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), | 2011 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), |
2002 test::LastHistogramSample("WebRTC.Video.ReceivedHeightInPixels")); | 2012 test::LastHistogramSample("WebRTC.Video.ReceivedHeightInPixels")); |
2003 | 2013 |
2004 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.InputFramesPerSecond")); | 2014 EXPECT_EQ(1, |
2005 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SentFramesPerSecond")); | 2015 test::NumHistogramSamples(video_prefix + "InputFramesPerSecond")); |
| 2016 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentFramesPerSecond")); |
2006 EXPECT_EQ(1, test::NumHistogramSamples( | 2017 EXPECT_EQ(1, test::NumHistogramSamples( |
2007 "WebRTC.Video.DecodedFramesPerSecond")); | 2018 "WebRTC.Video.DecodedFramesPerSecond")); |
2008 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.RenderFramesPerSecond")); | 2019 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.RenderFramesPerSecond")); |
2009 | 2020 |
2010 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.OnewayDelayInMs")); | 2021 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.OnewayDelayInMs")); |
2011 EXPECT_EQ( | 2022 EXPECT_EQ( |
2012 1, test::NumHistogramSamples("WebRTC.Video.RenderSqrtPixelsPerSecond")); | 2023 1, test::NumHistogramSamples("WebRTC.Video.RenderSqrtPixelsPerSecond")); |
2013 | 2024 |
2014 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.EncodeTimeInMs")); | 2025 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "EncodeTimeInMs")); |
2015 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.DecodeTimeInMs")); | 2026 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.DecodeTimeInMs")); |
2016 | 2027 |
2017 EXPECT_EQ(1, test::NumHistogramSamples( | 2028 EXPECT_EQ(1, test::NumHistogramSamples( |
2018 "WebRTC.Video.BitrateSentInKbps")); | 2029 "WebRTC.Video.BitrateSentInKbps")); |
2019 EXPECT_EQ(1, test::NumHistogramSamples( | 2030 EXPECT_EQ(1, test::NumHistogramSamples( |
2020 "WebRTC.Video.BitrateReceivedInKbps")); | 2031 "WebRTC.Video.BitrateReceivedInKbps")); |
2021 EXPECT_EQ(1, test::NumHistogramSamples( | 2032 EXPECT_EQ(1, test::NumHistogramSamples( |
2022 "WebRTC.Video.MediaBitrateSentInKbps")); | 2033 "WebRTC.Video.MediaBitrateSentInKbps")); |
2023 EXPECT_EQ(1, test::NumHistogramSamples( | 2034 EXPECT_EQ(1, test::NumHistogramSamples( |
2024 "WebRTC.Video.MediaBitrateReceivedInKbps")); | 2035 "WebRTC.Video.MediaBitrateReceivedInKbps")); |
2025 EXPECT_EQ(1, test::NumHistogramSamples( | 2036 EXPECT_EQ(1, test::NumHistogramSamples( |
2026 "WebRTC.Video.PaddingBitrateSentInKbps")); | 2037 "WebRTC.Video.PaddingBitrateSentInKbps")); |
2027 EXPECT_EQ(1, test::NumHistogramSamples( | 2038 EXPECT_EQ(1, test::NumHistogramSamples( |
2028 "WebRTC.Video.PaddingBitrateReceivedInKbps")); | 2039 "WebRTC.Video.PaddingBitrateReceivedInKbps")); |
2029 EXPECT_EQ(1, test::NumHistogramSamples( | 2040 EXPECT_EQ(1, test::NumHistogramSamples( |
2030 "WebRTC.Video.RetransmittedBitrateSentInKbps")); | 2041 "WebRTC.Video.RetransmittedBitrateSentInKbps")); |
2031 EXPECT_EQ(1, test::NumHistogramSamples( | 2042 EXPECT_EQ(1, test::NumHistogramSamples( |
2032 "WebRTC.Video.RetransmittedBitrateReceivedInKbps")); | 2043 "WebRTC.Video.RetransmittedBitrateReceivedInKbps")); |
2033 | 2044 |
2034 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SendSideDelayInMs")); | 2045 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SendSideDelayInMs")); |
2035 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.SendSideDelayMaxInMs")); | 2046 EXPECT_EQ(1, |
| 2047 test::NumHistogramSamples(video_prefix + "SendSideDelayMaxInMs")); |
2036 | 2048 |
2037 int num_rtx_samples = use_rtx ? 1 : 0; | 2049 int num_rtx_samples = use_rtx ? 1 : 0; |
2038 EXPECT_EQ(num_rtx_samples, test::NumHistogramSamples( | 2050 EXPECT_EQ(num_rtx_samples, test::NumHistogramSamples( |
2039 "WebRTC.Video.RtxBitrateSentInKbps")); | 2051 "WebRTC.Video.RtxBitrateSentInKbps")); |
2040 EXPECT_EQ(num_rtx_samples, test::NumHistogramSamples( | 2052 EXPECT_EQ(num_rtx_samples, test::NumHistogramSamples( |
2041 "WebRTC.Video.RtxBitrateReceivedInKbps")); | 2053 "WebRTC.Video.RtxBitrateReceivedInKbps")); |
2042 | 2054 |
2043 int num_red_samples = use_red ? 1 : 0; | 2055 int num_red_samples = use_red ? 1 : 0; |
2044 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( | 2056 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( |
2045 "WebRTC.Video.FecBitrateSentInKbps")); | 2057 "WebRTC.Video.FecBitrateSentInKbps")); |
2046 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( | 2058 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( |
2047 "WebRTC.Video.FecBitrateReceivedInKbps")); | 2059 "WebRTC.Video.FecBitrateReceivedInKbps")); |
2048 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( | 2060 EXPECT_EQ(num_red_samples, test::NumHistogramSamples( |
2049 "WebRTC.Video.ReceivedFecPacketsInPercent")); | 2061 "WebRTC.Video.ReceivedFecPacketsInPercent")); |
2050 } | 2062 } |
2051 | 2063 |
2052 TEST_F(EndToEndTest, VerifyHistogramStatsWithRtx) { | 2064 TEST_F(EndToEndTest, VerifyHistogramStatsWithRtx) { |
2053 const bool kEnabledRtx = true; | 2065 const bool kEnabledRtx = true; |
2054 const bool kEnabledRed = false; | 2066 const bool kEnabledRed = false; |
2055 VerifyHistogramStats(kEnabledRtx, kEnabledRed); | 2067 const bool kScreenshare = false; |
| 2068 VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare); |
2056 } | 2069 } |
2057 | 2070 |
2058 TEST_F(EndToEndTest, VerifyHistogramStatsWithRed) { | 2071 TEST_F(EndToEndTest, VerifyHistogramStatsWithRed) { |
2059 const bool kEnabledRtx = false; | 2072 const bool kEnabledRtx = false; |
2060 const bool kEnabledRed = true; | 2073 const bool kEnabledRed = true; |
2061 VerifyHistogramStats(kEnabledRtx, kEnabledRed); | 2074 const bool kScreenshare = false; |
| 2075 VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare); |
| 2076 } |
| 2077 |
| 2078 TEST_F(EndToEndTest, VerifyHistogramStatsWithScreenshare) { |
| 2079 const bool kEnabledRtx = false; |
| 2080 const bool kEnabledRed = false; |
| 2081 const bool kScreenshare = true; |
| 2082 VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare); |
2062 } | 2083 } |
2063 | 2084 |
2064 void EndToEndTest::TestXrReceiverReferenceTimeReport(bool enable_rrtr) { | 2085 void EndToEndTest::TestXrReceiverReferenceTimeReport(bool enable_rrtr) { |
2065 static const int kNumRtcpReportPacketsToObserve = 5; | 2086 static const int kNumRtcpReportPacketsToObserve = 5; |
2066 class RtcpXrObserver : public test::EndToEndTest { | 2087 class RtcpXrObserver : public test::EndToEndTest { |
2067 public: | 2088 public: |
2068 explicit RtcpXrObserver(bool enable_rrtr) | 2089 explicit RtcpXrObserver(bool enable_rrtr) |
2069 : EndToEndTest(kDefaultTimeoutMs), | 2090 : EndToEndTest(kDefaultTimeoutMs), |
2070 enable_rrtr_(enable_rrtr), | 2091 enable_rrtr_(enable_rrtr), |
2071 sent_rtcp_sr_(0), | 2092 sent_rtcp_sr_(0), |
(...skipping 1119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3191 EXPECT_TRUE(default_receive_config.rtp.rtx.empty()) | 3212 EXPECT_TRUE(default_receive_config.rtp.rtx.empty()) |
3192 << "Enabling RTX requires rtpmap: rtx negotiation."; | 3213 << "Enabling RTX requires rtpmap: rtx negotiation."; |
3193 EXPECT_TRUE(default_receive_config.rtp.extensions.empty()) | 3214 EXPECT_TRUE(default_receive_config.rtp.extensions.empty()) |
3194 << "Enabling RTP extensions require negotiation."; | 3215 << "Enabling RTP extensions require negotiation."; |
3195 | 3216 |
3196 VerifyEmptyNackConfig(default_receive_config.rtp.nack); | 3217 VerifyEmptyNackConfig(default_receive_config.rtp.nack); |
3197 VerifyEmptyFecConfig(default_receive_config.rtp.fec); | 3218 VerifyEmptyFecConfig(default_receive_config.rtp.fec); |
3198 } | 3219 } |
3199 | 3220 |
3200 } // namespace webrtc | 3221 } // namespace webrtc |
OLD | NEW |