#include "third_party/blink/renderer/platform/graphics/video_frame_resource_provider.h"
#include <memory>
#include "base/functional/bind.h"
#include "base/threading/thread_restrictions.h"
#include "base/trace_event/trace_event.h"
#include "components/viz/client/client_resource_provider.h"
#include "components/viz/common/gpu/raster_context_provider.h"
#include "components/viz/common/quads/compositor_render_pass.h"
#include "components/viz/common/quads/solid_color_draw_quad.h"
#include "components/viz/common/quads/texture_draw_quad.h"
#include "components/viz/common/quads/yuv_video_draw_quad.h"
#include "gpu/ipc/client/client_shared_image_interface.h"
#include "media/base/limits.h"
#include "media/base/video_frame.h"
#include "media/renderers/video_resource_updater.h"
#include "third_party/blink/public/platform/web_vector.h"
namespace blink {
VideoFrameResourceProvider::VideoFrameResourceProvider(
const cc::LayerTreeSettings& settings,
bool use_sync_primitives)
: … { … }
VideoFrameResourceProvider::~VideoFrameResourceProvider() { … }
void VideoFrameResourceProvider::Initialize(
viz::RasterContextProvider* media_context_provider,
viz::SharedBitmapReporter* shared_bitmap_reporter,
scoped_refptr<gpu::ClientSharedImageInterface> shared_image_interface) { … }
void VideoFrameResourceProvider::OnContextLost() { … }
void VideoFrameResourceProvider::AppendQuads(
viz::CompositorRenderPass* render_pass,
scoped_refptr<media::VideoFrame> frame,
media::VideoTransformation media_transform,
bool is_opaque) { … }
void VideoFrameResourceProvider::ReleaseFrameResources() { … }
void VideoFrameResourceProvider::PrepareSendToParent(
const WebVector<viz::ResourceId>& resource_ids,
WebVector<viz::TransferableResource>* transferable_resources) { … }
void VideoFrameResourceProvider::ReceiveReturnsFromParent(
Vector<viz::ReturnedResource> transferable_resources) { … }
}