From 3f9589ae640acf35ba14981610a18b84cc1acd74 Mon Sep 17 00:00:00 2001 From: Sergey Silkin Date: Fri, 12 Jul 2024 15:13:51 +0200 Subject: [PATCH] Remove max_qp argument from GetSimulcastConfig() This is a cleanup of simulcast.cc. max_qp is not needed to decide simulcast config. Move setting of max QP in VideoStream one level up, to EncoderStreamFactory::CreateEncoderStreams(), where it can be set per stream. Bug: webrtc:351644568, b/352504711 Change-Id: Ia0e3e9d90032383574dc8867b30d362e9c5df7e8 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357102 Reviewed-by: Mirko Bonadei Commit-Queue: Sergey Silkin Reviewed-by: Ilya Nikolaevskiy Cr-Commit-Position: refs/heads/main@{#42634} --- media/engine/webrtc_video_engine_unittest.cc | 6 +- .../test/videocodec_test_fixture_impl.cc | 4 +- test/video_codec_tester.cc | 3 +- video/config/encoder_stream_factory.cc | 2 +- video/config/simulcast.cc | 11 +-- video/config/simulcast.h | 3 - video/config/simulcast_unittest.cc | 90 +++++++++---------- 7 files changed, 52 insertions(+), 67 deletions(-) diff --git a/media/engine/webrtc_video_engine_unittest.cc b/media/engine/webrtc_video_engine_unittest.cc index 3f57d09868..4b49371e1d 100644 --- a/media/engine/webrtc_video_engine_unittest.cc +++ b/media/engine/webrtc_video_engine_unittest.cc @@ -9591,8 +9591,8 @@ class WebRtcVideoChannelSimulcastTest : public ::testing::Test { if (num_configured_streams > 1 || conference_mode) { expected_streams = GetSimulcastConfig( /*min_layers=*/1, num_configured_streams, capture_width, - capture_height, kDefaultVideoMaxQpVpx, screenshare && conference_mode, - true, field_trials_, webrtc::kVideoCodecVP8); + capture_height, screenshare && conference_mode, true, field_trials_, + webrtc::kVideoCodecVP8); if (screenshare && conference_mode) { for (const webrtc::VideoStream& stream : expected_streams) { // Never scale screen content. @@ -9636,7 +9636,7 @@ class WebRtcVideoChannelSimulcastTest : public ::testing::Test { video_streams[i].max_bitrate_bps); EXPECT_GT(video_streams[i].max_qp, 0); - EXPECT_EQ(expected_streams[i].max_qp, video_streams[i].max_qp); + EXPECT_EQ(video_streams[i].max_qp, kDefaultVideoMaxQpVpx); EXPECT_EQ(num_configured_streams > 1 || conference_mode, expected_streams[i].num_temporal_layers.has_value()); diff --git a/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc b/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc index 90beed85dd..8b75e59645 100644 --- a/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc +++ b/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc @@ -79,7 +79,7 @@ void ConfigureSimulcast(VideoCodec* codec_settings) { FieldTrialBasedConfig trials; const std::vector streams = cricket::GetSimulcastConfig( /*min_layer=*/1, codec_settings->numberOfSimulcastStreams, - codec_settings->width, codec_settings->height, kMaxQp, + codec_settings->width, codec_settings->height, /* is_screenshare = */ false, true, trials, webrtc::kVideoCodecVP8); for (size_t i = 0; i < streams.size(); ++i) { @@ -91,7 +91,7 @@ void ConfigureSimulcast(VideoCodec* codec_settings) { ss->maxBitrate = streams[i].max_bitrate_bps / 1000; ss->targetBitrate = streams[i].target_bitrate_bps / 1000; ss->minBitrate = streams[i].min_bitrate_bps / 1000; - ss->qpMax = streams[i].max_qp; + ss->qpMax = kMaxQp; ss->active = true; } } diff --git a/test/video_codec_tester.cc b/test/video_codec_tester.cc index 6b783dc7a8..8744af91f4 100644 --- a/test/video_codec_tester.cc +++ b/test/video_codec_tester.cc @@ -1298,7 +1298,6 @@ void ConfigureSimulcast(VideoCodec* vc) { const std::vector streams = cricket::GetSimulcastConfig( /*min_layer=*/1, num_spatial_layers, vc->width, vc->height, - cricket::kDefaultVideoMaxQpVpx, /*is_screenshare=*/false, /*temporal_layers_supported=*/true, field_trials, webrtc::kVideoCodecVP8); @@ -1318,7 +1317,7 @@ void ConfigureSimulcast(VideoCodec* vc) { ss->maxBitrate = streams[i].max_bitrate_bps / 1000; ss->targetBitrate = streams[i].target_bitrate_bps / 1000; ss->minBitrate = streams[i].min_bitrate_bps / 1000; - ss->qpMax = streams[i].max_qp; + ss->qpMax = vc->qpMax; ss->active = true; } } diff --git a/video/config/encoder_stream_factory.cc b/video/config/encoder_stream_factory.cc index 9c3cdc254f..623db82bff 100644 --- a/video/config/encoder_stream_factory.cc +++ b/video/config/encoder_stream_factory.cc @@ -328,7 +328,7 @@ EncoderStreamFactory::CreateSimulcastOrConferenceModeScreenshareStreams( // or use the regular simulcast configuration path which is generic. layers = GetSimulcastConfig( FindRequiredActiveLayers(encoder_config), - encoder_config.number_of_streams, width, height, encoder_config.max_qp, + encoder_config.number_of_streams, width, height, webrtc::SimulcastUtility::IsConferenceModeScreenshare(encoder_config), temporal_layers_supported, trials, encoder_config.codec_type); // Allow an experiment to override the minimum bitrate for the lowest diff --git a/video/config/simulcast.cc b/video/config/simulcast.cc index 3180489d21..14c0b94750 100644 --- a/video/config/simulcast.cc +++ b/video/config/simulcast.cc @@ -332,7 +332,6 @@ std::vector GetSimulcastConfig( size_t max_layers, int width, int height, - int max_qp, bool is_screenshare_with_conference_mode, bool temporal_layers_supported, const webrtc::FieldTrialsView& trials, @@ -343,7 +342,7 @@ std::vector GetSimulcastConfig( const bool base_heavy_tl3_rate_alloc = webrtc::RateControlSettings(trials).Vp8BaseHeavyTl3RateAllocation(); if (is_screenshare_with_conference_mode) { - return GetScreenshareLayers(max_layers, width, height, max_qp, + return GetScreenshareLayers(max_layers, width, height, temporal_layers_supported, base_heavy_tl3_rate_alloc, trials); } else { @@ -353,7 +352,7 @@ std::vector GetSimulcastConfig( max_layers = LimitSimulcastLayerCount(width, height, min_layers, max_layers, trials, codec); - return GetNormalSimulcastLayers(max_layers, width, height, max_qp, + return GetNormalSimulcastLayers(max_layers, width, height, temporal_layers_supported, base_heavy_tl3_rate_alloc, trials, codec); } @@ -363,7 +362,6 @@ std::vector GetNormalSimulcastLayers( size_t layer_count, int width, int height, - int max_qp, bool temporal_layers_supported, bool base_heavy_tl3_rate_alloc, const webrtc::FieldTrialsView& trials, @@ -381,8 +379,6 @@ std::vector GetNormalSimulcastLayers( for (size_t s = layer_count - 1;; --s) { layers[s].width = width; layers[s].height = height; - // TODO(pbos): Fill actual temporal-layer bitrate thresholds. - layers[s].max_qp = max_qp; layers[s].num_temporal_layers = temporal_layers_supported ? num_temporal_layers : 1; @@ -443,7 +439,6 @@ std::vector GetScreenshareLayers( size_t max_layers, int width, int height, - int max_qp, bool temporal_layers_supported, bool base_heavy_tl3_rate_alloc, const webrtc::FieldTrialsView& trials) { @@ -456,7 +451,6 @@ std::vector GetScreenshareLayers( // respectively. See eg. webrtc::LibvpxVp8Encoder::SetRates(). layers[0].width = width; layers[0].height = height; - layers[0].max_qp = max_qp; layers[0].max_framerate = 5; layers[0].min_bitrate_bps = webrtc::kDefaultMinVideoBitrateBps; layers[0].target_bitrate_bps = kScreenshareDefaultTl0Bitrate.bps(); @@ -485,7 +479,6 @@ std::vector GetScreenshareLayers( layers[1].width = width; layers[1].height = height; - layers[1].max_qp = max_qp; layers[1].max_framerate = kDefaultVideoMaxFramerate; layers[1].num_temporal_layers = temporal_layers_supported ? kScreenshareTemporalLayers : 1; diff --git a/video/config/simulcast.h b/video/config/simulcast.h index 3a377cb8ad..2e9ab331a6 100644 --- a/video/config/simulcast.h +++ b/video/config/simulcast.h @@ -41,7 +41,6 @@ std::vector GetSimulcastConfig( size_t max_layers, int width, int height, - int max_qp, bool is_screenshare_with_conference_mode, bool temporal_layers_supported, const webrtc::FieldTrialsView& trials, @@ -52,7 +51,6 @@ std::vector GetNormalSimulcastLayers( size_t max_layers, int width, int height, - int max_qp, bool temporal_layers_supported, bool base_heavy_tl3_rate_alloc, const webrtc::FieldTrialsView& trials, @@ -63,7 +61,6 @@ std::vector GetScreenshareLayers( size_t max_layers, int width, int height, - int max_qp, bool temporal_layers_supported, bool base_heavy_tl3_rate_alloc, const webrtc::FieldTrialsView& trials); diff --git a/video/config/simulcast_unittest.cc b/video/config/simulcast_unittest.cc index b1faeb08c5..87859208e7 100644 --- a/video/config/simulcast_unittest.cc +++ b/video/config/simulcast_unittest.cc @@ -19,7 +19,6 @@ namespace { using test::ExplicitKeyValueConfig; -constexpr int kQpMax = 55; constexpr bool kScreenshare = true; constexpr int kDefaultTemporalLayers = 3; // Value from simulcast.cc. @@ -87,7 +86,7 @@ TEST(SimulcastTest, GetConfig) { const size_t kMinLayers = 1; const size_t kMaxLayers = 3; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 1280, 720, kQpMax, !kScreenshare, true, trials, + kMinLayers, kMaxLayers, 1280, 720, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(kMaxLayers, streams.size()); @@ -101,7 +100,7 @@ TEST(SimulcastTest, GetConfig) { for (size_t i = 0; i < streams.size(); ++i) { EXPECT_EQ(size_t{kDefaultTemporalLayers}, streams[i].num_temporal_layers); EXPECT_EQ(cricket::kDefaultVideoMaxFramerate, streams[i].max_framerate); - EXPECT_EQ(kQpMax, streams[i].max_qp); + EXPECT_EQ(-1, streams[i].max_qp); EXPECT_EQ(kExpected[i].min_bitrate_bps, streams[i].min_bitrate_bps); EXPECT_EQ(kExpected[i].target_bitrate_bps, streams[i].target_bitrate_bps); EXPECT_EQ(kExpected[i].max_bitrate_bps, streams[i].max_bitrate_bps); @@ -118,7 +117,7 @@ TEST(SimulcastTest, GetConfigWithBaseHeavyVP8TL3RateAllocation) { const size_t kMinLayers = 1; const size_t kMaxLayers = 3; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 1280, 720, kQpMax, !kScreenshare, true, trials, + kMinLayers, kMaxLayers, 1280, 720, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(kExpected[0].min_bitrate_bps, streams[0].min_bitrate_bps); @@ -139,7 +138,7 @@ TEST(SimulcastTest, GetConfigWithLimitedMaxLayers) { const size_t kMinLayers = 1; const size_t kMaxLayers = 2; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 1280, 720, kQpMax, !kScreenshare, true, trials, + kMinLayers, kMaxLayers, 1280, 720, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(kMaxLayers, streams.size()); @@ -156,7 +155,7 @@ TEST(SimulcastTest, GetConfigWithLimitedMaxLayersForResolution) { const size_t kMinLayers = 1; const size_t kMaxLayers = 3; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 800, 600, kQpMax, !kScreenshare, true, trials, + kMinLayers, kMaxLayers, 800, 600, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(2u, streams.size()); @@ -173,7 +172,7 @@ TEST(SimulcastTest, GetConfigWithLowResolutionScreenshare) { const size_t kMinLayers = 1; const size_t kMaxLayers = 3; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 100, 100, kQpMax, kScreenshare, true, trials, + kMinLayers, kMaxLayers, 100, 100, kScreenshare, true, trials, webrtc::kVideoCodecVP8); // Simulcast streams number is never decreased for screenshare, @@ -188,7 +187,7 @@ TEST(SimulcastTest, GetConfigWithNotLimitedMaxLayersForResolution) { const size_t kMinLayers = 1; const size_t kMaxLayers = 3; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 800, 600, kQpMax, !kScreenshare, true, trials, + kMinLayers, kMaxLayers, 800, 600, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(kMaxLayers, streams.size()); @@ -206,8 +205,8 @@ TEST(SimulcastTest, GetConfigWithNormalizedResolution) { const size_t kMinLayers = 1; const size_t kMaxLayers = 2; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 640 + 1, 360 + 1, kQpMax, !kScreenshare, true, - trials, webrtc::kVideoCodecVP8); + kMinLayers, kMaxLayers, 640 + 1, 360 + 1, !kScreenshare, true, trials, + webrtc::kVideoCodecVP8); // Must be divisible by |2 ^ (num_layers - 1)|. EXPECT_EQ(kMaxLayers, streams.size()); @@ -224,7 +223,7 @@ TEST(SimulcastTest, GetConfigWithNormalizedResolutionDivisibleBy4) { const size_t kMinLayers = 1; const size_t kMaxLayers = 2; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 709, 501, kQpMax, !kScreenshare, true, trials, + kMinLayers, kMaxLayers, 709, 501, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); // Must be divisible by |2 ^ 2|. @@ -242,7 +241,7 @@ TEST(SimulcastTest, GetConfigWithNormalizedResolutionDivisibleBy8) { const size_t kMinLayers = 1; const size_t kMaxLayers = 2; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 709, 501, kQpMax, !kScreenshare, true, trials, + kMinLayers, kMaxLayers, 709, 501, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); // Must be divisible by |2 ^ 3|. @@ -260,17 +259,17 @@ TEST(SimulcastTest, GetConfigForLegacyLayerLimit) { const size_t kMinLayers = 1; const int kMaxLayers = 3; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 320, 180, kQpMax, !kScreenshare, true, trials, + kMinLayers, kMaxLayers, 320, 180, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(1u, streams.size()); streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 640, 360, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(2u, streams.size()); streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 1920, 1080, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(3u, streams.size()); } @@ -282,17 +281,17 @@ TEST(SimulcastTest, GetConfigForLegacyLayerLimitWithRequiredHD) { const size_t kMinLayers = 3; // "HD" layer must be present! const int kMaxLayers = 3; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 320, 180, kQpMax, !kScreenshare, true, trials, + kMinLayers, kMaxLayers, 320, 180, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(3u, streams.size()); streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 640, 360, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(3u, streams.size()); streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 1920, 1080, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(3u, streams.size()); } @@ -302,14 +301,14 @@ TEST(SimulcastTest, GetConfigForScreenshareSimulcast) { const size_t kMinLayers = 1; const size_t kMaxLayers = 3; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 1400, 800, kQpMax, kScreenshare, true, trials, + kMinLayers, kMaxLayers, 1400, 800, kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_GT(streams.size(), 1u); for (size_t i = 0; i < streams.size(); ++i) { EXPECT_EQ(1400u, streams[i].width) << "Screen content never scaled."; EXPECT_EQ(800u, streams[i].height) << "Screen content never scaled."; - EXPECT_EQ(kQpMax, streams[i].max_qp); + EXPECT_EQ(-1, streams[i].max_qp); EXPECT_TRUE(streams[i].active); EXPECT_GT(streams[i].num_temporal_layers, size_t{1}); EXPECT_GT(streams[i].max_framerate, 0); @@ -324,7 +323,7 @@ TEST(SimulcastTest, GetConfigForScreenshareSimulcastWithLimitedMaxLayers) { const size_t kMinLayers = 1; const size_t kMaxLayers = 1; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 1400, 800, kQpMax, kScreenshare, true, trials, + kMinLayers, kMaxLayers, 1400, 800, kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(kMaxLayers, streams.size()); @@ -335,7 +334,7 @@ TEST(SimulcastTest, AveragesBitratesForNonStandardResolution) { const size_t kMinLayers = 1; const size_t kMaxLayers = 3; std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, 900, 800, kQpMax, !kScreenshare, true, trials, + kMinLayers, kMaxLayers, 900, 800, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(kMaxLayers, streams.size()); @@ -357,8 +356,8 @@ TEST(SimulcastTest, BitratesForCloseToStandardResolution) { const std::vector kExpectedNear = GetSimulcastBitrates720p(); std::vector streams = cricket::GetSimulcastConfig( - kMinLayers, kMaxLayers, kWidth, kHeight, kQpMax, !kScreenshare, true, - trials, webrtc::kVideoCodecVP8); + kMinLayers, kMaxLayers, kWidth, kHeight, !kScreenshare, true, trials, + webrtc::kVideoCodecVP8); EXPECT_EQ(kMaxLayers, streams.size()); EXPECT_EQ(kWidth, streams[2].width); @@ -382,21 +381,21 @@ TEST(SimulcastTest, MaxLayersWithRoundUpDisabled) { std::vector streams; streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 960, 540, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(3u, streams.size()); // <960x540: 2 layers streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 960, 539, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(2u, streams.size()); streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 480, 270, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(2u, streams.size()); // <480x270: 1 layer streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 480, 269, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(1u, streams.size()); } @@ -409,29 +408,29 @@ TEST(SimulcastTest, MaxLayersWithDefaultRoundUpRatio) { std::vector streams; streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 960, 540, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(3u, streams.size()); // Lowest cropped height where max layers from higher resolution is used. streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 960, 512, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(3u, streams.size()); streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 960, 508, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(2u, streams.size()); streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 480, 270, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(2u, streams.size()); // Lowest cropped height where max layers from higher resolution is used. streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 480, 256, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(2u, streams.size()); streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 480, 254, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(1u, streams.size()); } @@ -445,16 +444,16 @@ TEST(SimulcastTest, MaxLayersWithRoundUpRatio) { std::vector streams; streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 480, 270, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(2u, streams.size()); // Lowest cropped height where max layers from higher resolution is used. streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 480, 252, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(2u, streams.size()); streams = cricket::GetSimulcastConfig(kMinLayers, kMaxLayers, 480, 250, - kQpMax, !kScreenshare, true, trials, + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); EXPECT_EQ(1u, streams.size()); } @@ -467,7 +466,7 @@ TEST(SimulcastTest, BitratesInterpolatedForResBelow180p) { const size_t kMaxLayers = 3; std::vector streams = cricket::GetSimulcastConfig( /* min_layers = */ 1, kMaxLayers, /* width = */ 960, /* height = */ 540, - kQpMax, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); ASSERT_EQ(streams.size(), kMaxLayers); EXPECT_EQ(240u, streams[0].width); @@ -484,8 +483,7 @@ TEST(SimulcastTest, BitratesConsistentForVerySmallRes) { std::vector streams = cricket::GetSimulcastConfig( /* min_layers = */ 1, /* max_layers = */ 3, /* width = */ 1, - /* height = */ 1, kQpMax, !kScreenshare, true, trials, - webrtc::kVideoCodecVP8); + /* height = */ 1, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); ASSERT_TRUE(!streams.empty()); EXPECT_EQ(1u, streams[0].width); @@ -503,7 +501,7 @@ TEST(SimulcastTest, const size_t kMaxLayers = 3; std::vector streams = cricket::GetSimulcastConfig( /* min_layers = */ 1, kMaxLayers, /* width = */ 960, /* height = */ 540, - kQpMax, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); + !kScreenshare, true, trials, webrtc::kVideoCodecVP8); ASSERT_EQ(streams.size(), kMaxLayers); EXPECT_EQ(240u, streams[0].width); @@ -519,13 +517,11 @@ TEST(SimulcastTest, BitratesBasedOnCodec) { const size_t kMaxLayers = 3; std::vector streams_vp8 = cricket::GetSimulcastConfig( /* min_layers = */ 1, /* max_layers = */ 3, /* width = */ 1280, - /* height = */ 720, kQpMax, !kScreenshare, true, trials, - webrtc::kVideoCodecVP8); + /* height = */ 720, !kScreenshare, true, trials, webrtc::kVideoCodecVP8); std::vector streams_vp9 = cricket::GetSimulcastConfig( /* min_layers = */ 1, /* max_layers = */ 3, /* width = */ 1280, - /* height = */ 720, kQpMax, !kScreenshare, true, trials, - webrtc::kVideoCodecVP9); + /* height = */ 720, !kScreenshare, true, trials, webrtc::kVideoCodecVP9); ASSERT_EQ(streams_vp8.size(), kMaxLayers); ASSERT_EQ(streams_vp9.size(), kMaxLayers); @@ -555,7 +551,7 @@ TEST(SimulcastTest, BitratesForVP9) { std::vector streams = cricket::GetSimulcastConfig( /* min_layers = */ 1, kMaxLayers, /* width = */ 1280, /* height = */ 720, - kQpMax, !kScreenshare, true, trials, webrtc::kVideoCodecVP9); + !kScreenshare, true, trials, webrtc::kVideoCodecVP9); ASSERT_EQ(streams.size(), kMaxLayers); EXPECT_EQ(1280u, streams[2].width); @@ -566,7 +562,7 @@ TEST(SimulcastTest, BitratesForVP9) { streams = cricket::GetSimulcastConfig( /* min_layers = */ 1, kMaxLayers, /* width = */ 1276, /* height = */ 716, - kQpMax, !kScreenshare, true, trials, webrtc::kVideoCodecVP9); + !kScreenshare, true, trials, webrtc::kVideoCodecVP9); ASSERT_EQ(streams.size(), kMaxLayers); EXPECT_EQ(1276u, streams[2].width);