#include "third_party/blink/renderer/platform/graphics/video_frame_image_util.h"
#include "base/logging.h"
#include "build/build_config.h"
#include "components/viz/common/gpu/raster_context_provider.h"
#include "components/viz/common/resources/release_callback.h"
#include "gpu/command_buffer/client/raster_interface.h"
#include "gpu/config/gpu_feature_info.h"
#include "media/base/video_frame.h"
#include "media/base/video_types.h"
#include "media/base/video_util.h"
#include "media/base/wait_and_replace_sync_token_client.h"
#include "media/renderers/paint_canvas_video_renderer.h"
#include "third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.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/static_bitmap_image.h"
#include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "third_party/skia/include/core/SkColorSpace.h"
#include "third_party/skia/include/core/SkImageInfo.h"
#include "third_party/skia/include/gpu/GrDriverBugWorkarounds.h"
#include "ui/gfx/color_space.h"
#include "ui/gfx/geometry/rect_f.h"
#include "ui/gfx/geometry/skia_conversions.h"
namespace blink {
namespace {
bool CanUseZeroCopyImages(const media::VideoFrame& frame) { … }
bool ShouldCreateAcceleratedImages(
viz::RasterContextProvider* raster_context_provider) { … }
}
ImageOrientationEnum VideoTransformationToImageOrientation(
media::VideoTransformation transform) { … }
media::VideoTransformation ImageOrientationToVideoTransformation(
ImageOrientationEnum orientation) { … }
bool WillCreateAcceleratedImagesFromVideoFrame(const media::VideoFrame* frame) { … }
scoped_refptr<StaticBitmapImage> CreateImageFromVideoFrame(
scoped_refptr<media::VideoFrame> frame,
bool allow_zero_copy_images,
CanvasResourceProvider* resource_provider,
media::PaintCanvasVideoRenderer* video_renderer,
const gfx::Rect& dest_rect,
bool prefer_tagged_orientation) { … }
bool DrawVideoFrameIntoResourceProvider(
scoped_refptr<media::VideoFrame> frame,
CanvasResourceProvider* resource_provider,
viz::RasterContextProvider* raster_context_provider,
const gfx::Rect& dest_rect,
media::PaintCanvasVideoRenderer* video_renderer,
bool ignore_video_transformation) { … }
void DrawVideoFrameIntoCanvas(scoped_refptr<media::VideoFrame> frame,
cc::PaintCanvas* canvas,
cc::PaintFlags& flags,
bool ignore_video_transformation) { … }
scoped_refptr<viz::RasterContextProvider> GetRasterContextProvider() { … }
std::unique_ptr<CanvasResourceProvider> CreateResourceProviderForVideoFrame(
const SkImageInfo& info,
viz::RasterContextProvider* raster_context_provider) { … }
}