#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/modules/webgpu/external_texture_helper.h"
#include "media/base/video_frame.h"
#include "media/base/video_transformation.h"
#include "media/renderers/paint_canvas_video_renderer.h"
#include "third_party/blink/renderer/core/html/media/html_video_element.h"
#include "third_party/blink/renderer/modules/webcodecs/video_frame.h"
#include "third_party/blink/renderer/modules/webgpu/dawn_conversions.h"
#include "third_party/blink/renderer/modules/webgpu/gpu_adapter.h"
#include "third_party/blink/renderer/modules/webgpu/gpu_device.h"
#include "third_party/blink/renderer/modules/webgpu/gpu_supported_features.h"
#include "third_party/blink/renderer/modules/webgpu/gpu_texture.h"
#include "third_party/blink/renderer/modules/webgpu/gpu_texture_view.h"
#include "third_party/blink/renderer/platform/graphics/canvas_color_params.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/gpu/webgpu_mailbox_texture.h"
#include "third_party/blink/renderer/platform/graphics/video_frame_image_util.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
#include "third_party/skia/include/effects/SkColorMatrix.h"
#include "third_party/skia/modules/skcms/skcms.h"
namespace blink {
namespace {
wgpu::ExternalTextureRotation FromVideoRotation(media::VideoRotation rotation) { … }
bool DstColorSpaceSupportedByZeroCopy(
PredefinedColorSpace dst_predefined_color_space) { … }
}
std::array<float, 12> GetYUVToRGBMatrix(gfx::ColorSpace color_space,
size_t bit_depth) { … }
ColorSpaceConversionConstants GetColorSpaceConversionConstants(
gfx::ColorSpace src_color_space,
gfx::ColorSpace dst_color_space) { … }
bool IsSameGamutAndGamma(gfx::ColorSpace src_color_space,
gfx::ColorSpace dst_color_space) { … }
ExternalTextureSource GetExternalTextureSourceFromVideoElement(
HTMLVideoElement* video,
ExceptionState& exception_state) { … }
ExternalTextureSource GetExternalTextureSourceFromVideoFrame(
VideoFrame* frame,
ExceptionState& exception_state) { … }
ExternalTexture CreateExternalTexture(
GPUDevice* device,
PredefinedColorSpace dst_predefined_color_space,
scoped_refptr<media::VideoFrame> media_video_frame,
media::PaintCanvasVideoRenderer* video_renderer) { … }
}