Update screenshare_loopback to support test duration and test clip
Setting the test duration parameter is a bug fix.
The addition of test clip parameter is a new feature for screenshare_loopback, although this already exists for video_loopback.
Bug: None
Change-Id: I7c307b07df9896456a1372fcd22cb13a25e2ca34
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/347640
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42084}
diff --git a/video/screenshare_loopback.cc b/video/screenshare_loopback.cc
index 40bf9ee..21aae1f 100644
--- a/video/screenshare_loopback.cc
+++ b/video/screenshare_loopback.cc
@@ -257,6 +257,14 @@
ABSL_FLAG(bool, allow_reordering, false, "Allow packet reordering to occur");
+ABSL_FLAG(std::string,
+ clip,
+ "",
+ "Name of the clip to show. If empty, use frame generator.");
+std::string Clip() {
+ return absl::GetFlag(FLAGS_clip);
+}
+
// Screenshare-specific flags.
ABSL_FLAG(int,
min_transmit_bitrate,
@@ -331,11 +339,14 @@
params.video[0].num_temporal_layers = NumTemporalLayers();
params.video[0].selected_tl = SelectedTL();
params.video[0].min_transmit_bps = MinTransmitBitrateKbps() * 1000;
+ params.video[0].clip_path = Clip();
params.screenshare[0].enabled = true;
params.screenshare[0].generate_slides = GenerateSlides();
params.screenshare[0].slide_change_interval = SlideChangeInterval();
params.screenshare[0].scroll_duration = ScrollDuration();
params.screenshare[0].slides = Slides();
+ params.analyzer.test_label = "screenshare";
+ params.analyzer.test_durations_secs = DurationSecs();
params.config = pipe_config;
params.logging.rtc_event_log_name = RtcEventLogName();
params.logging.rtp_dump_name = RtpDumpName();
diff --git a/video/video_loopback.cc b/video/video_loopback.cc
index b02184a..826936b 100644
--- a/video/video_loopback.cc
+++ b/video/video_loopback.cc
@@ -200,7 +200,6 @@
ABSL_FLAG(bool, video, true, "Add video stream");
-// Video-specific flags.
ABSL_FLAG(std::string,
clip,
"",
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index e305de8..b6cc765 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -1045,6 +1045,10 @@
kWidth, kHeight,
params_.screenshare[video_idx].slide_change_interval *
params_.video[video_idx].fps);
+ } else if (!params_.video[video_idx].clip_path.empty()) {
+ frame_generator = test::CreateFromYuvFileFrameGenerator(
+ {params_.video[video_idx].clip_path}, params_.video[video_idx].width,
+ params_.video[video_idx].height, 1);
} else {
std::vector<std::string> slides = params_.screenshare[video_idx].slides;
if (slides.empty()) {