Add Y4mFileReader
Encapsulate logic for reading .y4m video files in a single class. We
currently have spread out logic for opening .y4m files with partial
parsing. This CL consolidates this logic into a single class with a well
defined interface.
Change-Id: Id61673b3c95a0053b30e95b4cf382e1c6b05fc30
Bug: webrtc:9642
Reviewed-on: https://webrtc-review.googlesource.com/94772
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24398}
diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn
index 99f1ae6..f6b03da 100644
--- a/rtc_tools/BUILD.gn
+++ b/rtc_tools/BUILD.gn
@@ -17,6 +17,7 @@
":command_line_parser",
":frame_analyzer",
":video_quality_analysis",
+ ":y4m_file_reader",
]
if (!build_with_chromium) {
deps += [
@@ -59,12 +60,28 @@
]
}
+rtc_static_library("y4m_file_reader") {
+ sources = [
+ "y4m_file_reader.cc",
+ "y4m_file_reader.h",
+ ]
+ deps = [
+ "../api/video:video_frame",
+ "../api/video:video_frame_i420",
+ "../rtc_base:rtc_base_approved",
+ "../rtc_base:sequenced_task_checker",
+ "//third_party/abseil-cpp/absl/types:optional",
+ ]
+}
+
rtc_static_library("video_quality_analysis") {
sources = [
"frame_analyzer/video_quality_analysis.cc",
"frame_analyzer/video_quality_analysis.h",
]
deps = [
+ ":y4m_file_reader",
+ "../api/video:video_frame_i420",
"../common_video",
"../test:perf_test",
"//third_party/libyuv",
@@ -80,6 +97,7 @@
deps = [
":command_line_parser",
":video_quality_analysis",
+ ":y4m_file_reader",
"../test:perf_test",
"//build/win:default_exe_manifest",
]
@@ -96,6 +114,7 @@
deps = [
":command_line_parser",
":video_quality_analysis",
+ ":y4m_file_reader",
"//build/win:default_exe_manifest",
]
}
@@ -108,6 +127,7 @@
deps = [
":video_quality_analysis",
+ ":y4m_file_reader",
]
}
@@ -288,7 +308,6 @@
tools_unittests_resources = [
"../resources/foreman_cif.yuv",
"../resources/reference_less_video_test_file.y4m",
- "../resources/video_quality_analysis_frame.txt",
]
if (is_ios) {
@@ -310,6 +329,7 @@
"frame_editing/frame_editing_unittest.cc",
"sanitizers_unittest.cc",
"simple_command_line_parser_unittest.cc",
+ "y4m_file_reader_unittest.cc",
]
if (!build_with_chromium && is_clang) {
@@ -322,6 +342,7 @@
":frame_editing_lib",
":reference_less_video_analysis_lib",
":video_quality_analysis",
+ ":y4m_file_reader",
"../common_video:common_video",
"../rtc_base",
"../rtc_base:checks",