#include "third_party/blink/renderer/platform/graphics/static_bitmap_image_to_video_frame_copier.h"
#include "base/functional/callback_helpers.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
#include "components/viz/common/resources/shared_image_format_utils.h"
#include "gpu/command_buffer/client/raster_interface.h"
#include "gpu/command_buffer/common/capabilities.h"
#include "media/base/video_frame.h"
#include "media/base/video_util.h"
#include "third_party/blink/public/platform/web_graphics_context_3d_provider.h"
#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
#include "third_party/blink/renderer/platform/graphics/web_graphics_context_3d_provider_wrapper.h"
#include "third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "third_party/libyuv/include/libyuv.h"
#include "third_party/skia/include/core/SkImage.h"
#include "ui/gfx/color_space.h"
namespace blink {
StaticBitmapImageToVideoFrameCopier::StaticBitmapImageToVideoFrameCopier(
bool accelerated_frame_pool_enabled)
: … { … }
StaticBitmapImageToVideoFrameCopier::~StaticBitmapImageToVideoFrameCopier() =
default;
WebGraphicsContext3DVideoFramePool*
StaticBitmapImageToVideoFrameCopier::GetAcceleratedVideoFramePool(
base::WeakPtr<blink::WebGraphicsContext3DProviderWrapper>
context_provider) { … }
void StaticBitmapImageToVideoFrameCopier::Convert(
scoped_refptr<StaticBitmapImage> image,
bool can_discard_alpha,
base::WeakPtr<blink::WebGraphicsContext3DProviderWrapper>
context_provider_wrapper,
FrameReadyCallback callback) { … }
void StaticBitmapImageToVideoFrameCopier::ReadARGBPixelsSync(
scoped_refptr<StaticBitmapImage> image,
FrameReadyCallback callback) { … }
void StaticBitmapImageToVideoFrameCopier::ReadARGBPixelsAsync(
scoped_refptr<StaticBitmapImage> image,
blink::WebGraphicsContext3DProvider* context_provider,
FrameReadyCallback callback) { … }
void StaticBitmapImageToVideoFrameCopier::ReadYUVPixelsAsync(
scoped_refptr<StaticBitmapImage> image,
blink::WebGraphicsContext3DProvider* context_provider,
FrameReadyCallback callback) { … }
void StaticBitmapImageToVideoFrameCopier::OnARGBPixelsReadAsync(
scoped_refptr<StaticBitmapImage> image,
scoped_refptr<media::VideoFrame> argb_frame,
FrameReadyCallback callback,
bool success) { … }
void StaticBitmapImageToVideoFrameCopier::OnYUVPixelsReadAsync(
scoped_refptr<media::VideoFrame> yuv_frame,
FrameReadyCallback callback,
bool success) { … }
void StaticBitmapImageToVideoFrameCopier::OnReleaseMailbox(
scoped_refptr<StaticBitmapImage> image) { … }
}