#include "cc/layers/video_layer_impl.h"
#include <stddef.h>
#include <memory>
#include <utility>
#include "base/check.h"
#include "base/functional/bind.h"
#include "base/memory/ptr_util.h"
#include "cc/base/features.h"
#include "cc/layers/video_frame_provider_client_impl.h"
#include "cc/trees/layer_tree_frame_sink.h"
#include "cc/trees/layer_tree_impl.h"
#include "cc/trees/occlusion.h"
#include "cc/trees/task_runner_provider.h"
#include "components/viz/client/client_resource_provider.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/video_frame.h"
#include "media/renderers/video_resource_updater.h"
#include "ui/gfx/color_space.h"
namespace cc {
std::unique_ptr<VideoLayerImpl> VideoLayerImpl::Create(
LayerTreeImpl* tree_impl,
int id,
VideoFrameProvider* provider,
const media::VideoTransformation& video_transform) { … }
VideoLayerImpl::VideoLayerImpl(
LayerTreeImpl* tree_impl,
int id,
scoped_refptr<VideoFrameProviderClientImpl> provider_client_impl,
const media::VideoTransformation& video_transform)
: … { … }
VideoLayerImpl::~VideoLayerImpl() { … }
mojom::LayerType VideoLayerImpl::GetLayerType() const { … }
std::unique_ptr<LayerImpl> VideoLayerImpl::CreateLayerImpl(
LayerTreeImpl* tree_impl) const { … }
void VideoLayerImpl::DidBecomeActive() { … }
bool VideoLayerImpl::WillDraw(DrawMode draw_mode,
viz::ClientResourceProvider* resource_provider)
NO_THREAD_SAFETY_ANALYSIS { … }
void VideoLayerImpl::AppendQuads(viz::CompositorRenderPass* render_pass,
AppendQuadsData* append_quads_data) { … }
void VideoLayerImpl::DidDraw(viz::ClientResourceProvider* resource_provider) { … }
SimpleEnclosedRegion VideoLayerImpl::VisibleOpaqueRegion() const { … }
void VideoLayerImpl::ReleaseResources() { … }
gfx::ContentColorUsage VideoLayerImpl::GetContentColorUsage() const { … }
void VideoLayerImpl::SetNeedsRedraw() { … }
DamageReasonSet VideoLayerImpl::GetDamageReasons() const { … }
std::optional<base::TimeDelta> VideoLayerImpl::GetPreferredRenderInterval() { … }
}