Add support for NV12 frame generator
Bug: b/240540204
Change-Id: Id2205e8bd0dfd59476dcd68c32c4981f98b51422
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/278402
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38322}
diff --git a/test/frame_utils.cc b/test/frame_utils.cc
index 30389fb..b280de1 100644
--- a/test/frame_utils.cc
+++ b/test/frame_utils.cc
@@ -14,6 +14,7 @@
#include <string.h>
#include "api/video/i420_buffer.h"
+#include "api/video/nv12_buffer.h"
#include "api/video/video_frame.h"
namespace webrtc {
@@ -87,5 +88,17 @@
return buffer;
}
+rtc::scoped_refptr<NV12Buffer> ReadNV12Buffer(int width, int height, FILE* f) {
+ rtc::scoped_refptr<NV12Buffer> buffer(NV12Buffer::Create(width, height));
+ size_t size_y = static_cast<size_t>(width) * height;
+ size_t size_uv = static_cast<size_t>(width + width % 2) * ((height + 1) / 2);
+
+ if (fread(buffer->MutableDataY(), 1, size_y, f) < size_y)
+ return nullptr;
+ if (fread(buffer->MutableDataUV(), 1, size_uv, f) < size_uv)
+ return nullptr;
+ return buffer;
+}
+
} // namespace test
} // namespace webrtc