Add command-line param to screenshare_loopback to specify a list of slides
BUG=none
Review-Url: https://codereview.webrtc.org/2814023003
Cr-Original-Commit-Position: refs/heads/master@{#17670}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 8d8185c7743f2713908a1823656493c13fc8ea67
diff --git a/video/screenshare_loopback.cc b/video/screenshare_loopback.cc
index a51274b..09a7d73 100644
--- a/video/screenshare_loopback.cc
+++ b/video/screenshare_loopback.cc
@@ -11,6 +11,7 @@
#include <stdio.h>
#include "gflags/gflags.h"
+#include "webrtc/base/stringencode.h"
#include "webrtc/test/field_trial.h"
#include "webrtc/test/gtest.h"
#include "webrtc/test/run_test.h"
@@ -214,6 +215,16 @@
return static_cast<int>(FLAGS_scroll_duration);
}
+DEFINE_string(slides,
+ "",
+ "Comma-separated list of *.yuv files to display as slides.");
+std::vector<std::string> Slides() {
+ std::vector<std::string> slides;
+ std::string slides_list = FLAGS_slides;
+ rtc::tokenize(slides_list, ',', &slides);
+ return slides;
+}
+
} // namespace flags
void Loopback() {
@@ -249,7 +260,7 @@
flags::EncodedFramePath(),
""};
params.screenshare = {true, flags::SlideChangeInterval(),
- flags::ScrollDuration()};
+ flags::ScrollDuration(), flags::Slides()};
params.analyzer = {"screenshare", 0.0, 0.0, flags::DurationSecs(),
flags::OutputFilename(), flags::GraphTitle()};
params.pipe = pipe_config;
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index cea8af1..565506c 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -1505,12 +1505,13 @@
// Setup frame generator.
const size_t kWidth = 1850;
const size_t kHeight = 1110;
- std::vector<std::string> slides;
- slides.push_back(test::ResourcePath("web_screenshot_1850_1110", "yuv"));
- slides.push_back(test::ResourcePath("presentation_1850_1110", "yuv"));
- slides.push_back(test::ResourcePath("photo_1850_1110", "yuv"));
- slides.push_back(test::ResourcePath("difficult_photo_1850_1110", "yuv"));
-
+ std::vector<std::string> slides = params_.screenshare.slides;
+ if (slides.size() == 0) {
+ slides.push_back(test::ResourcePath("web_screenshot_1850_1110", "yuv"));
+ slides.push_back(test::ResourcePath("presentation_1850_1110", "yuv"));
+ slides.push_back(test::ResourcePath("photo_1850_1110", "yuv"));
+ slides.push_back(test::ResourcePath("difficult_photo_1850_1110", "yuv"));
+ }
if (params_.screenshare.scroll_duration == 0) {
// Cycle image every slide_change_interval seconds.
frame_generator_ = test::FrameGenerator::CreateFromYuvFile(
diff --git a/video/video_quality_test.h b/video/video_quality_test.h
index 9e851f0..fac5e7c 100644
--- a/video/video_quality_test.h
+++ b/video/video_quality_test.h
@@ -62,6 +62,7 @@
bool enabled;
int32_t slide_change_interval;
int32_t scroll_duration;
+ std::vector<std::string> slides;
} screenshare;
struct Analyzer {
std::string test_label;