Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(214)

Unified Diff: webrtc/video/screenshare_loopback.cc

Issue 1267463002: Add a frame generator that allows scrolling images (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixed casts Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/test/frame_generator.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/screenshare_loopback.cc
diff --git a/webrtc/video/screenshare_loopback.cc b/webrtc/video/screenshare_loopback.cc
index f2133a211b8a947fbcecb543c103561e3cdef8cd..a3084249811d8b205a8ef96ed748c529eebdfc0f 100644
--- a/webrtc/video/screenshare_loopback.cc
+++ b/webrtc/video/screenshare_loopback.cc
@@ -15,6 +15,7 @@
#include "gflags/gflags.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "webrtc/base/checks.h"
#include "webrtc/test/field_trial.h"
#include "webrtc/test/frame_generator.h"
#include "webrtc/test/frame_generator_capturer.h"
@@ -27,12 +28,14 @@
namespace webrtc {
namespace flags {
-// Fixed for prerecorded screenshare content.
+DEFINE_int32(width, 1850, "Video width (crops source).");
size_t Width() {
- return 1850;
+ return static_cast<size_t>(FLAGS_width);
}
+
+DEFINE_int32(height, 1110, "Video height (crops source).");
size_t Height() {
- return 1110;
+ return static_cast<size_t>(FLAGS_height);
}
DEFINE_int32(fps, 5, "Frames per second.");
@@ -40,6 +43,21 @@ int Fps() {
return static_cast<int>(FLAGS_fps);
}
+DEFINE_int32(slide_change_interval,
+ 10,
+ "Interval (in seconds) between simulated slide changes.");
+int SlideChangeInterval() {
+ return static_cast<int>(FLAGS_slide_change_interval);
+}
+
+DEFINE_int32(
+ scroll_duration,
+ 0,
+ "Duration (in seconds) during which a slide will be scrolled into place.");
+int ScrollDuration() {
+ return static_cast<int>(FLAGS_scroll_duration);
+}
+
DEFINE_int32(min_bitrate, 50, "Minimum video bitrate.");
size_t MinBitrate() {
return static_cast<size_t>(FLAGS_min_bitrate);
@@ -138,9 +156,21 @@ class ScreenshareLoopback : public test::Loopback {
slides.push_back(test::ResourcePath("photo_1850_1110", "yuv"));
slides.push_back(test::ResourcePath("difficult_photo_1850_1110", "yuv"));
+ // Fixed for input resolution for prerecorded screenshare content.
+ const size_t kWidth = 1850;
+ const size_t kHeight = 1110;
+ CHECK_LE(flags::Width(), kWidth);
+ CHECK_LE(flags::Height(), kHeight);
+ CHECK_GT(flags::SlideChangeInterval(), 0);
+ const int kPauseDurationMs =
+ (flags::SlideChangeInterval() - flags::ScrollDuration()) * 1000;
+ CHECK_LE(flags::ScrollDuration(), flags::SlideChangeInterval());
+
test::FrameGenerator* frame_generator =
- test::FrameGenerator::CreateFromYuvFile(
- slides, flags::Width(), flags::Height(), 10 * flags::Fps());
+ test::FrameGenerator::CreateScrollingInputFromYuvFiles(
+ Clock::GetRealTimeClock(), slides, kWidth, kHeight, flags::Width(),
+ flags::Height(), flags::ScrollDuration() * 1000, kPauseDurationMs);
+
test::FrameGeneratorCapturer* capturer(new test::FrameGeneratorCapturer(
clock_, send_stream->Input(), frame_generator, flags::Fps()));
EXPECT_TRUE(capturer->Init());
« no previous file with comments | « webrtc/test/frame_generator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698