diff --git a/api/BUILD.gn b/api/BUILD.gn index 1316e76e19..c14c412688 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -362,6 +362,7 @@ rtc_source_set("peer_connection_quality_test_fixture_api") { ":frame_generator_api", ":function_view", ":libjingle_peerconnection_api", + ":media_stream_interface", ":network_state_predictor_api", ":packet_socket_factory", ":simulated_network_api", diff --git a/api/test/create_peer_connection_quality_test_frame_generator.cc b/api/test/create_peer_connection_quality_test_frame_generator.cc index d9f0937b30..7f0ba20c85 100644 --- a/api/test/create_peer_connection_quality_test_frame_generator.cc +++ b/api/test/create_peer_connection_quality_test_frame_generator.cc @@ -42,7 +42,7 @@ void ValidateScreenShareConfig(const VideoConfig& video_config, RTC_CHECK_EQ(video_config.height, kDefaultSlidesHeight); } } - if (video_config.screen_share_config->scrolling_params) { + if (screen_share_config.scrolling_params) { RTC_CHECK_LE(screen_share_config.scrolling_params->duration, screen_share_config.slide_change_interval); RTC_CHECK_GE(screen_share_config.scrolling_params->source_width, diff --git a/api/test/peerconnection_quality_test_fixture.h b/api/test/peerconnection_quality_test_fixture.h index 5c27202afa..645dcb356e 100644 --- a/api/test/peerconnection_quality_test_fixture.h +++ b/api/test/peerconnection_quality_test_fixture.h @@ -23,6 +23,7 @@ #include "api/call/call_factory_interface.h" #include "api/fec_controller.h" #include "api/function_view.h" +#include "api/media_stream_interface.h" #include "api/peer_connection_interface.h" #include "api/rtc_event_log/rtc_event_log_factory_interface.h" #include "api/task_queue/task_queue_factory.h" @@ -113,9 +114,6 @@ class PeerConnectionE2EQualityTestFixture { // must be equal to |kDefaultSlidesWidth| and // |ScrollingParams::source_height| must be equal to |kDefaultSlidesHeight|. std::vector slides_yuv_file_names; - // If true will set VideoTrackInterface::ContentHint::kText for current - // video track. - bool use_text_content_hint = true; }; enum VideoGeneratorType { kDefault, kI420A, kI010 }; @@ -170,11 +168,9 @@ class PeerConnectionE2EQualityTestFixture { // Have to be unique among all specified configs for all peers in the call. // Will be auto generated if omitted. absl::optional stream_label; - - // If set, determines whether VideoTrackInterface::ContentHint::kText is set - // for the current video track. - // TODO(landrey) replace by use_text_content_hint boolean field. - absl::optional screen_share_config; + // Will be set for current video track. If equals to kText or kDetailed - + // screencast in on. + absl::optional content_hint; // If specified this capturing device will be used to get input video. The // |capturing_device_index| is the index of required capturing device in OS // provided list of video devices. On Linux and Windows the list will be diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn index 3be1812fb5..ec3e41a4b4 100644 --- a/test/pc/e2e/BUILD.gn +++ b/test/pc/e2e/BUILD.gn @@ -275,6 +275,7 @@ if (rtc_include_tests) { "../..:video_test_common", "../../../api:create_frame_generator", "../../../api:frame_generator_api", + "../../../api:media_stream_interface", "../../../api:peer_connection_quality_test_fixture_api", "../../../api/video:video_frame", "../../../pc:peerconnection", @@ -428,6 +429,7 @@ if (rtc_include_tests) { "../../../api:create_peer_connection_quality_test_frame_generator", "../../../api:create_peerconnection_quality_test_fixture", "../../../api:libjingle_peerconnection_api", + "../../../api:media_stream_interface", "../../../api:network_emulation_manager_api", "../../../api:peer_connection_quality_test_fixture_api", "../../../api:scoped_refptr", diff --git a/test/pc/e2e/media/media_helper.cc b/test/pc/e2e/media/media_helper.cc index 0dd7ab5ba3..ebe1571fe4 100644 --- a/test/pc/e2e/media/media_helper.cc +++ b/test/pc/e2e/media/media_helper.cc @@ -12,6 +12,7 @@ #include #include +#include "api/media_stream_interface.h" #include "api/test/create_frame_generator.h" #include "test/frame_generator_capturer.h" #include "test/platform_video_capturer.h" @@ -57,20 +58,21 @@ MediaHelper::MaybeAddVideo(TestPeer* peer) { video_config, peer->ReleaseVideoGenerator(i), video_quality_analyzer_injection_helper_->CreateFramePreprocessor( video_config)); + bool is_screencast = + video_config.content_hint == VideoTrackInterface::ContentHint::kText || + video_config.content_hint == + VideoTrackInterface::ContentHint::kDetailed; rtc::scoped_refptr source = new rtc::RefCountedObject( - std::move(capturer), - /*is_screencast=*/video_config.screen_share_config && - video_config.screen_share_config->use_text_content_hint); + std::move(capturer), is_screencast); out.push_back(source); RTC_LOG(INFO) << "Adding video with video_config.stream_label=" << video_config.stream_label.value(); rtc::scoped_refptr track = peer->pc_factory()->CreateVideoTrack(video_config.stream_label.value(), source); - if (video_config.screen_share_config && - video_config.screen_share_config->use_text_content_hint) { - track->set_content_hint(VideoTrackInterface::ContentHint::kText); + if (video_config.content_hint.has_value()) { + track->set_content_hint(video_config.content_hint.value()); } std::string sync_group = video_config.sync_group ? video_config.sync_group.value() diff --git a/test/pc/e2e/peer_connection_e2e_smoke_test.cc b/test/pc/e2e/peer_connection_e2e_smoke_test.cc index c88f9059d5..8e2880d9cc 100644 --- a/test/pc/e2e/peer_connection_e2e_smoke_test.cc +++ b/test/pc/e2e/peer_connection_e2e_smoke_test.cc @@ -11,6 +11,7 @@ #include #include +#include "api/media_stream_interface.h" #include "api/test/create_network_emulation_manager.h" #include "api/test/create_peer_connection_quality_test_frame_generator.h" #include "api/test/create_peerconnection_quality_test_fixture.h" @@ -169,12 +170,13 @@ TEST_F(PeerConnectionE2EQualityTestSmokeTest, MAYBE_Smoke) { VideoConfig screenshare(640, 360, 30); screenshare.stream_label = "bob-screenshare"; - screenshare.screen_share_config = + screenshare.content_hint = VideoTrackInterface::ContentHint::kText; + ScreenShareConfig screen_share_config = ScreenShareConfig(TimeDelta::Seconds(2)); - screenshare.screen_share_config->scrolling_params = ScrollingParams( + screen_share_config.scrolling_params = ScrollingParams( TimeDelta::Millis(1800), kDefaultSlidesWidth, kDefaultSlidesHeight); - auto screen_share_frame_generator = CreateScreenShareFrameGenerator( - screenshare, *screenshare.screen_share_config); + auto screen_share_frame_generator = + CreateScreenShareFrameGenerator(screenshare, screen_share_config); bob->AddVideoConfig(std::move(screenshare), std::move(screen_share_frame_generator)); diff --git a/video/BUILD.gn b/video/BUILD.gn index 551696afa7..d7085041b6 100644 --- a/video/BUILD.gn +++ b/video/BUILD.gn @@ -371,6 +371,7 @@ if (rtc_include_tests) { "../api:create_peer_connection_quality_test_frame_generator", "../api:create_peerconnection_quality_test_fixture", "../api:frame_generator_api", + "../api:media_stream_interface", "../api:network_emulation_manager_api", "../api:peer_connection_quality_test_fixture_api", "../api:simulated_network_api", diff --git a/video/pc_full_stack_tests.cc b/video/pc_full_stack_tests.cc index f86ac98cf4..dc61680694 100644 --- a/video/pc_full_stack_tests.cc +++ b/video/pc_full_stack_tests.cc @@ -12,6 +12,7 @@ #include #include +#include "api/media_stream_interface.h" #include "api/test/create_network_emulation_manager.h" #include "api/test/create_peer_connection_quality_test_frame_generator.h" #include "api/test/create_peerconnection_quality_test_fixture.h" @@ -1119,10 +1120,10 @@ TEST(PCFullStackTest, ScreenshareSlidesVP8_2TL_NoConferenceMode) { BuiltInNetworkBehaviorConfig()), [](PeerConfigurer* alice) { VideoConfig video(1850, 1110, 5); - video.screen_share_config = ScreenShareConfig(TimeDelta::Seconds(10)); video.stream_label = "alice-video"; - auto frame_generator = - CreateScreenShareFrameGenerator(video, *video.screen_share_config); + video.content_hint = VideoTrackInterface::ContentHint::kText; + auto frame_generator = CreateScreenShareFrameGenerator( + video, ScreenShareConfig(TimeDelta::Seconds(10))); alice->AddVideoConfig(std::move(video), std::move(frame_generator)); }, [](PeerConfigurer* bob) {}); @@ -1142,10 +1143,10 @@ TEST(PCFullStackTest, ScreenshareSlidesVP8_2TL) { BuiltInNetworkBehaviorConfig()), [](PeerConfigurer* alice) { VideoConfig video(1850, 1110, 5); - video.screen_share_config = ScreenShareConfig(TimeDelta::Seconds(10)); video.stream_label = "alice-video"; - auto frame_generator = - CreateScreenShareFrameGenerator(video, *video.screen_share_config); + video.content_hint = VideoTrackInterface::ContentHint::kText; + auto frame_generator = CreateScreenShareFrameGenerator( + video, ScreenShareConfig(TimeDelta::Seconds(10))); alice->AddVideoConfig(std::move(video), std::move(frame_generator)); }, [](PeerConfigurer* bob) {}); @@ -1168,12 +1169,12 @@ TEST(PCFullStackTest, ScreenshareSlidesVP8_2TL_Simulcast_NoConferenceMode) { BuiltInNetworkBehaviorConfig()), [](PeerConfigurer* alice) { VideoConfig video(1850, 1110, 30); - video.screen_share_config = ScreenShareConfig(TimeDelta::Seconds(10)); video.simulcast_config = VideoSimulcastConfig(2, 1); video.temporal_layers_count = 2; video.stream_label = "alice-video"; - auto frame_generator = - CreateScreenShareFrameGenerator(video, *video.screen_share_config); + video.content_hint = VideoTrackInterface::ContentHint::kText; + auto frame_generator = CreateScreenShareFrameGenerator( + video, ScreenShareConfig(TimeDelta::Seconds(10))); alice->AddVideoConfig(std::move(video), std::move(frame_generator)); }, [](PeerConfigurer* bob) {}); @@ -1193,12 +1194,12 @@ TEST(PCFullStackTest, ScreenshareSlidesVP8_2TL_Simulcast) { BuiltInNetworkBehaviorConfig()), [](PeerConfigurer* alice) { VideoConfig video(1850, 1110, 30); - video.screen_share_config = ScreenShareConfig(TimeDelta::Seconds(10)); video.simulcast_config = VideoSimulcastConfig(2, 1); video.temporal_layers_count = 2; video.stream_label = "alice-video"; - auto frame_generator = - CreateScreenShareFrameGenerator(video, *video.screen_share_config); + video.content_hint = VideoTrackInterface::ContentHint::kText; + auto frame_generator = CreateScreenShareFrameGenerator( + video, ScreenShareConfig(TimeDelta::Seconds(10))); alice->AddVideoConfig(std::move(video), std::move(frame_generator)); }, [](PeerConfigurer* bob) {}); @@ -1435,10 +1436,10 @@ TEST(PCFullStackTest, ScreenshareSlidesVP9_3SL_High_Fps) { [](PeerConfigurer* alice) { VideoConfig video(1850, 1110, 30); video.stream_label = "alice-video"; - video.screen_share_config = ScreenShareConfig(TimeDelta::Seconds(10)); video.simulcast_config = VideoSimulcastConfig(3, 2); - auto frame_generator = - CreateScreenShareFrameGenerator(video, *video.screen_share_config); + video.content_hint = VideoTrackInterface::ContentHint::kText; + auto frame_generator = CreateScreenShareFrameGenerator( + video, ScreenShareConfig(TimeDelta::Seconds(10))); alice->AddVideoConfig(std::move(video), std::move(frame_generator)); }, [](PeerConfigurer* bob) {});