Introduce factory method for IVF frame generator
Bug: webrtc:10138
Change-Id: I9039aa289c935b7fcc2f3ab4ddec6413eb1302c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161324
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30011}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 4265f97..8bb6f06 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -459,6 +459,7 @@
":frame_generator_api",
"../system_wrappers",
"../test:video_test_common",
+ "../test:video_test_support",
"//third_party/abseil-cpp/absl/types:optional",
]
}
diff --git a/api/test/create_frame_generator.cc b/api/test/create_frame_generator.cc
index b6e62a4..6b5b9fa 100644
--- a/api/test/create_frame_generator.cc
+++ b/api/test/create_frame_generator.cc
@@ -13,6 +13,7 @@
#include <utility>
#include "test/frame_generator.h"
+#include "test/testsupport/ivf_video_frame_generator.h"
namespace webrtc {
namespace test {
@@ -35,6 +36,12 @@
frame_repeat_count);
}
+// Creates a frame generator that repeatedly plays an ivf file.
+std::unique_ptr<FrameGeneratorInterface> CreateFromYuvFileFrameGenerator(
+ std::string file) {
+ return std::make_unique<IvfVideoFrameGenerator>(std::move(file));
+}
+
std::unique_ptr<FrameGeneratorInterface>
CreateScrollingInputFromYuvFilesFrameGenerator(
Clock* clock,
diff --git a/api/test/create_frame_generator.h b/api/test/create_frame_generator.h
index 692c964..920ff86 100644
--- a/api/test/create_frame_generator.h
+++ b/api/test/create_frame_generator.h
@@ -41,6 +41,10 @@
size_t height,
int frame_repeat_count);
+// Creates a frame generator that repeatedly plays an ivf file.
+std::unique_ptr<FrameGeneratorInterface> CreateFromYuvFileFrameGenerator(
+ std::string file);
+
// Creates a frame generator which takes a set of yuv files (wrapping a
// frame generator created by CreateFromYuvFile() above), but outputs frames
// that have been cropped to specified resolution: source_width/source_height