#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/modules/webcodecs/video_frame.h"
#include "components/viz/test/test_context_provider.h"
#include "media/base/video_frame.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/web/web_heap.h"
#include "third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_tester.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_dom_rect_init.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_union_blob_htmlcanvaselement_htmlimageelement_htmlvideoelement_imagebitmap_imagedata_offscreencanvas_svgimageelement_videoframe.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_union_cssimagevalue_htmlcanvaselement_htmlimageelement_htmlvideoelement_imagebitmap_offscreencanvas_svgimageelement_videoframe.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_video_decoder_config.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_video_frame_copy_to_options.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_video_frame_init.h"
#include "third_party/blink/renderer/core/imagebitmap/image_bitmap.h"
#include "third_party/blink/renderer/modules/canvas/imagebitmap/image_bitmap_factories.h"
#include "third_party/blink/renderer/modules/webcodecs/video_frame_handle.h"
#include "third_party/blink/renderer/modules/webcodecs/video_frame_monitor.h"
#include "third_party/blink/renderer/modules/webcodecs/webcodecs_logger.h"
#include "third_party/blink/renderer/platform/graphics/canvas_resource_provider.h"
#include "third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h"
#include "third_party/blink/renderer/platform/graphics/test/gpu_test_utils.h"
#include "third_party/blink/renderer/platform/graphics/unaccelerated_static_bitmap_image.h"
#include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h"
#include "third_party/blink/renderer/platform/testing/task_environment.h"
#include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
#include "third_party/skia/include/core/SkSurface.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/size.h"
namespace blink {
namespace {
ImageBitmap* ToImageBitmap(V8TestingScope* v8_scope, ScriptValue value) { … }
class VideoFrameTest : public testing::Test { … };
TEST_F(VideoFrameTest, ConstructorAndAttributes) { … }
TEST_F(VideoFrameTest, CopyToRGB) { … }
TEST_F(VideoFrameTest, FramesSharingHandleClose) { … }
TEST_F(VideoFrameTest, FramesNotSharingHandleClose) { … }
TEST_F(VideoFrameTest, ClonedFrame) { … }
TEST_F(VideoFrameTest, CloningClosedFrame) { … }
TEST_F(VideoFrameTest, LeakedHandlesReportLeaks) { … }
TEST_F(VideoFrameTest, InvalidatedHandlesDontReportLeaks) { … }
TEST_F(VideoFrameTest, ImageBitmapCreationAndZeroCopyRoundTrip) { … }
void TestWrappedVideoFrameImageReuse(V8TestingScope& scope,
const sk_sp<SkImage> orig_image,
const V8CanvasImageSource* source) { … }
TEST_F(VideoFrameTest, ImageReuse_VideoFrameFromImage) { … }
TEST_F(VideoFrameTest, ImageReuse_VideoFrameFromVideoFrameFromImage) { … }
TEST_F(VideoFrameTest, VideoFrameFromGPUImageBitmap) { … }
TEST_F(VideoFrameTest, HandleMonitoring) { … }
TEST_F(VideoFrameTest, VideoFrameMonitoring) { … }
TEST_F(VideoFrameTest, TestExternalAllocatedMemoryIsReportedCorrectlyOnClose) { … }
TEST_F(VideoFrameTest,
TestExternalAllocatedMemoryIsReportedCorrectlyOnDestruction) { … }
}
}