-// Copyright 2012 The Chromium Authors. All rights reserved.
+// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CC_LAYERS_VIDEO_LAYER_IMPL_H_
#define CC_LAYERS_VIDEO_LAYER_IMPL_H_
+#include <memory>
#include <vector>
-#include "base/macros.h"
#include "cc/cc_export.h"
#include "cc/layers/layer_impl.h"
#include "components/viz/common/resources/release_callback.h"
-#include "media/base/video_rotation.h"
+#include "media/base/video_transformation.h"
+
+#if defined(TIZEN_TBM_SUPPORT)
+#include "components/viz/common/gpu/context_provider.h"
+#endif
+#if defined(TIZEN_VIDEO_HOLE)
+#include "ui/gfx/geometry/rect.h"
+#endif
namespace media {
class VideoFrame;
LayerTreeImpl* tree_impl,
int id,
VideoFrameProvider* provider,
- media::VideoRotation video_rotation);
+ const media::VideoTransformation& video_transform
+#if defined(TIZEN_VIDEO_HOLE) && BUILDFLAG(IS_TIZEN_TV)
+ ,
+ absl::optional<int> player_id
+#endif
+ );
+ VideoLayerImpl(const VideoLayerImpl&) = delete;
~VideoLayerImpl() override;
+ VideoLayerImpl& operator=(const VideoLayerImpl&) = delete;
+
// LayerImpl implementation.
- std::unique_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) override;
+ std::unique_ptr<LayerImpl> CreateLayerImpl(
+ LayerTreeImpl* tree_impl) const override;
bool WillDraw(DrawMode draw_mode,
viz::ClientResourceProvider* resource_provider) override;
- void AppendQuads(viz::RenderPass* render_pass,
+ void AppendQuads(viz::CompositorRenderPass* render_pass,
AppendQuadsData* append_quads_data) override;
void DidDraw(viz::ClientResourceProvider* resource_provider) override;
SimpleEnclosedRegion VisibleOpaqueRegion() const override;
void DidBecomeActive() override;
void ReleaseResources() override;
+ gfx::ContentColorUsage GetContentColorUsage() const override;
+#if defined(TIZEN_VIDEO_HOLE)
+ int render_target_effect_tree_index() const override;
+#if BUILDFLAG(IS_TIZEN_TV)
+ absl::optional<int> GetVideoId() const override;
+#endif // BUILDFLAG(IS_TIZEN_TV)
+#endif
void SetNeedsRedraw();
- media::VideoRotation video_rotation() const { return video_rotation_; }
+
+ media::VideoTransformation video_transform_for_testing() const {
+ return video_transform_;
+ }
+
+#if BUILDFLAG(IS_EFL)
+ LayerType GetLayerType() const override { return LAYER_TYPE_VIDEO; }
+#endif
private:
VideoLayerImpl(
LayerTreeImpl* tree_impl,
int id,
scoped_refptr<VideoFrameProviderClientImpl> provider_client_impl,
- media::VideoRotation video_rotation);
+ const media::VideoTransformation& video_transform
+#if defined(TIZEN_VIDEO_HOLE) && BUILDFLAG(IS_TIZEN_TV)
+ ,
+ absl::optional<int> player_id
+#endif
+ );
const char* LayerTypeAsString() const override;
+#if defined(TIZEN_TBM_SUPPORT)
+ void OnVideoCompositingFinished(
+ const scoped_refptr<media::VideoFrame> video_frame,
+ const gpu::SyncToken& sync_token,
+ bool lost_resource);
+#endif
+#if defined(TIZEN_VIDEO_HOLE)
+ gfx::Rect previous_visible_rect_;
+#endif
+
scoped_refptr<VideoFrameProviderClientImpl> provider_client_impl_;
scoped_refptr<media::VideoFrame> frame_;
- media::VideoRotation video_rotation_;
+ media::VideoTransformation video_transform_;
- std::unique_ptr<media::VideoResourceUpdater> updater_;
+#if defined(TIZEN_VIDEO_HOLE) && BUILDFLAG(IS_TIZEN_TV)
+ absl::optional<int> player_id_;
+#endif
- DISALLOW_COPY_AND_ASSIGN(VideoLayerImpl);
+#if defined(TIZEN_TBM_SUPPORT)
+ scoped_refptr<viz::ContextProvider> context_provider_;
+ viz::ResourceId resource_id_;
+#endif
+
+ std::unique_ptr<media::VideoResourceUpdater> updater_;
};
} // namespace cc