From 4dedf5efae7426467bc1839a3e2351f14ad9162d Mon Sep 17 00:00:00 2001 From: Sergey Silkin Date: Thu, 18 Jul 2024 11:17:45 +0200 Subject: [PATCH] Use EncoderStreamFactory::CreateEncoderStreams() instead of GetSimulcastConfig() In preparation for upcoming changes in GetSimulcastConfig(), which will require a vector of stream resolutions instead of just the max resolution as an input, switch tests to use CreateEncoderStreams() instead of calling GetSimulcastConfig() directly. Bug: webrtc:351644568, b/352504711 Change-Id: I541dd54a21a8b75028cff07a250f858a47898223 No-Try: true Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357400 Commit-Queue: Sergey Silkin Reviewed-by: Ilya Nikolaevskiy Reviewed-by: Mirko Bonadei Cr-Commit-Position: refs/heads/main@{#42648} --- media/engine/webrtc_video_engine_unittest.cc | 11 +++++++---- .../codecs/test/videocodec_test_fixture_impl.cc | 16 +++++++++++----- test/video_codec_tester.cc | 16 ++++++++++------ 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/media/engine/webrtc_video_engine_unittest.cc b/media/engine/webrtc_video_engine_unittest.cc index efff55b582..0259b02c8d 100644 --- a/media/engine/webrtc_video_engine_unittest.cc +++ b/media/engine/webrtc_video_engine_unittest.cc @@ -81,6 +81,7 @@ #include "test/rtcp_packet_parser.h" #include "test/scoped_key_value_config.h" #include "test/time_controller/simulated_time_controller.h" +#include "video/config/encoder_stream_factory.h" #include "video/config/simulcast.h" using ::testing::_; @@ -9384,10 +9385,12 @@ class WebRtcVideoChannelSimulcastTest : public ::testing::Test { std::vector expected_streams; if (num_configured_streams > 1 || conference_mode) { - expected_streams = GetSimulcastConfig( - /*min_layers=*/1, num_configured_streams, capture_width, - capture_height, screenshare && conference_mode, true, field_trials_, - webrtc::kVideoCodecVP8); + const webrtc::VideoEncoderConfig& encoder_config = + stream->GetEncoderConfig(); + webrtc::VideoEncoder::EncoderInfo encoder_info; + auto factory = rtc::make_ref_counted(encoder_info); + expected_streams = factory->CreateEncoderStreams( + field_trials_, capture_width, capture_height, encoder_config); if (screenshare && conference_mode) { for (const webrtc::VideoStream& stream : expected_streams) { // Never scale screen content. 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 8b75e59645..535640e780 100644 --- a/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc +++ b/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc @@ -62,7 +62,7 @@ #include "test/testsupport/file_utils.h" #include "test/testsupport/frame_writer.h" #include "test/video_codec_settings.h" -#include "video/config/simulcast.h" +#include "video/config/encoder_stream_factory.h" #include "video/config/video_encoder_config.h" namespace webrtc { @@ -77,10 +77,16 @@ const int kMaxQp = 56; 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, - /* is_screenshare = */ false, true, trials, webrtc::kVideoCodecVP8); + VideoEncoderConfig encoder_config; + encoder_config.codec_type = codec_settings->codecType; + encoder_config.number_of_streams = codec_settings->numberOfSimulcastStreams; + encoder_config.simulcast_layers.resize( + codec_settings->numberOfSimulcastStreams); + VideoEncoder::EncoderInfo encoder_info; + auto stream_factory = + rtc::make_ref_counted(encoder_info); + const std::vector streams = stream_factory->CreateEncoderStreams( + trials, codec_settings->width, codec_settings->height, encoder_config); for (size_t i = 0; i < streams.size(); ++i) { SimulcastStream* ss = &codec_settings->simulcastStream[i]; diff --git a/test/video_codec_tester.cc b/test/video_codec_tester.cc index 6e290a3a1f..da4ef150af 100644 --- a/test/video_codec_tester.cc +++ b/test/video_codec_tester.cc @@ -54,7 +54,7 @@ #include "test/testsupport/frame_reader.h" #include "test/testsupport/video_frame_writer.h" #include "third_party/libyuv/include/libyuv/compare.h" -#include "video/config/simulcast.h" +#include "video/config/encoder_stream_factory.h" namespace webrtc { namespace test { @@ -1294,11 +1294,15 @@ void ConfigureSimulcast(VideoCodec* vc) { } ExplicitKeyValueConfig field_trials(field_trial::GetFieldTrialString()); - const std::vector streams = cricket::GetSimulcastConfig( - /*min_layer=*/1, num_spatial_layers, vc->width, vc->height, - /*is_screenshare=*/false, /*temporal_layers_supported=*/true, - field_trials, webrtc::kVideoCodecVP8); - + VideoEncoderConfig encoder_config; + encoder_config.codec_type = vc->codecType; + encoder_config.number_of_streams = num_spatial_layers; + encoder_config.simulcast_layers.resize(num_spatial_layers); + VideoEncoder::EncoderInfo encoder_info; + auto stream_factory = + rtc::make_ref_counted(encoder_info); + const std::vector streams = stream_factory->CreateEncoderStreams( + field_trials, vc->width, vc->height, encoder_config); vc->numberOfSimulcastStreams = streams.size(); RTC_CHECK_LE(vc->numberOfSimulcastStreams, num_spatial_layers); if (vc->numberOfSimulcastStreams < num_spatial_layers) {