Accept NV12 frames into VP9
NV12 frames can be encoded by libvpx now, and this change allows for
encoding of them with VP9.
VP9 encode/decode tests now run with NV12 as well as I420.
Manually tested using video loopback with VP9 and NV12 generated frames.
out/Default/video_loopback.app/Contents/MacOS/video_loopback --clip=GeneratorNV12 --codec="VP9"
Bug: webrtc:11635, webrtc:11974
Change-Id: Ifc5cbf77d2a27821cd5560c253d5d447c7a7cf53
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185123
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#32220}
diff --git a/api/test/frame_generator_interface.cc b/api/test/frame_generator_interface.cc
new file mode 100644
index 0000000..356fe3a
--- /dev/null
+++ b/api/test/frame_generator_interface.cc
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2020 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "api/test/frame_generator_interface.h"
+
+namespace webrtc {
+namespace test {
+
+// static
+const char* FrameGeneratorInterface::OutputTypeToString(
+ FrameGeneratorInterface::OutputType type) {
+ switch (type) {
+ case OutputType::kI420:
+ return "I420";
+ case OutputType::kI420A:
+ return "I420A";
+ case OutputType::kI010:
+ return "I010";
+ case OutputType::kNV12:
+ return "NV12";
+ default:
+ RTC_NOTREACHED();
+ }
+}
+
+} // namespace test
+} // namespace webrtc
diff --git a/api/test/frame_generator_interface.h b/api/test/frame_generator_interface.h
index 6d8da3d..90e60de 100644
--- a/api/test/frame_generator_interface.h
+++ b/api/test/frame_generator_interface.h
@@ -33,6 +33,7 @@
};
enum class OutputType { kI420, kI420A, kI010, kNV12 };
+ static const char* OutputTypeToString(OutputType type);
virtual ~FrameGeneratorInterface() = default;