Index: cc/resources/video_resource_updater.h |
diff --git a/cc/resources/video_resource_updater.h b/cc/resources/video_resource_updater.h |
deleted file mode 100644 |
index df9951a86ca96ae3683e07bcd5475bd6f5f18258..0000000000000000000000000000000000000000 |
--- a/cc/resources/video_resource_updater.h |
+++ /dev/null |
@@ -1,145 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ |
-#define CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ |
- |
-#include <list> |
-#include <vector> |
- |
-#include "base/basictypes.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/weak_ptr.h" |
-#include "base/time/time.h" |
-#include "cc/base/cc_export.h" |
-#include "cc/resources/release_callback_impl.h" |
-#include "cc/resources/resource_format.h" |
-#include "cc/resources/texture_mailbox.h" |
-#include "ui/gfx/geometry/size.h" |
- |
-namespace media { |
-class SkCanvasVideoRenderer; |
-class VideoFrame; |
-} |
- |
-namespace cc { |
-class ContextProvider; |
-class ResourceProvider; |
- |
-class CC_EXPORT VideoFrameExternalResources { |
- public: |
- // Specifies what type of data is contained in the mailboxes, as well as how |
- // many mailboxes will be present. |
- enum ResourceType { |
- NONE, |
- YUV_RESOURCE, |
- RGB_RESOURCE, |
- STREAM_TEXTURE_RESOURCE, |
- IO_SURFACE, |
- |
-#if defined(VIDEO_HOLE) |
- // TODO(danakj): Implement this with a solid color layer instead of a video |
- // frame and video layer. |
- HOLE, |
-#endif // defined(VIDEO_HOLE) |
- |
- // TODO(danakj): Remove this and abstract TextureMailbox into |
- // "ExternalResource" that can hold a hardware or software backing. |
- SOFTWARE_RESOURCE |
- }; |
- |
- ResourceType type; |
- std::vector<TextureMailbox> mailboxes; |
- std::vector<ReleaseCallbackImpl> release_callbacks; |
- |
- // TODO(danakj): Remove these too. |
- std::vector<unsigned> software_resources; |
- ReleaseCallbackImpl software_release_callback; |
- |
- VideoFrameExternalResources(); |
- ~VideoFrameExternalResources(); |
-}; |
- |
-// VideoResourceUpdater is used by the video system to produce frame content as |
-// resources consumable by the compositor. |
-class CC_EXPORT VideoResourceUpdater |
- : public base::SupportsWeakPtr<VideoResourceUpdater> { |
- public: |
- VideoResourceUpdater(ContextProvider* context_provider, |
- ResourceProvider* resource_provider); |
- ~VideoResourceUpdater(); |
- |
- VideoFrameExternalResources CreateExternalResourcesFromVideoFrame( |
- const scoped_refptr<media::VideoFrame>& video_frame); |
- |
- private: |
- struct PlaneResource { |
- unsigned resource_id; |
- gfx::Size resource_size; |
- ResourceFormat resource_format; |
- gpu::Mailbox mailbox; |
- // The balance between the number of times this resource has been returned |
- // from CreateForSoftwarePlanes vs released in RecycleResource. |
- int ref_count; |
- // These last three members will be used for identifying the data stored in |
- // this resource, and uniquely identifies a media::VideoFrame plane. The |
- // frame pointer will only be used for pointer comparison, i.e. the |
- // underlying data will not be accessed. |
- const void* frame_ptr; |
- int plane_index; |
- base::TimeDelta timestamp; |
- |
- PlaneResource(unsigned resource_id, |
- const gfx::Size& resource_size, |
- ResourceFormat resource_format, |
- gpu::Mailbox mailbox); |
- }; |
- |
- static bool PlaneResourceMatchesUniqueID(const PlaneResource& plane_resource, |
- const media::VideoFrame* video_frame, |
- int plane_index); |
- |
- static void SetPlaneResourceUniqueId(const media::VideoFrame* video_frame, |
- int plane_index, |
- PlaneResource* plane_resource); |
- |
- // This needs to be a container where iterators can be erased without |
- // invalidating other iterators. |
- typedef std::list<PlaneResource> ResourceList; |
- ResourceList::iterator AllocateResource(const gfx::Size& plane_size, |
- ResourceFormat format, |
- bool has_mailbox); |
- void DeleteResource(ResourceList::iterator resource_it); |
- bool VerifyFrame(const scoped_refptr<media::VideoFrame>& video_frame); |
- VideoFrameExternalResources CreateForHardwarePlanes( |
- const scoped_refptr<media::VideoFrame>& video_frame); |
- VideoFrameExternalResources CreateForSoftwarePlanes( |
- const scoped_refptr<media::VideoFrame>& video_frame); |
- |
- static void RecycleResource(base::WeakPtr<VideoResourceUpdater> updater, |
- unsigned resource_id, |
- uint32 sync_point, |
- bool lost_resource, |
- BlockingTaskRunner* main_thread_task_runner); |
- static void ReturnTexture(base::WeakPtr<VideoResourceUpdater> updater, |
- const scoped_refptr<media::VideoFrame>& video_frame, |
- uint32 sync_point, |
- bool lost_resource, |
- BlockingTaskRunner* main_thread_task_runner); |
- |
- ContextProvider* context_provider_; |
- ResourceProvider* resource_provider_; |
- scoped_ptr<media::SkCanvasVideoRenderer> video_renderer_; |
- std::vector<uint8_t> upload_pixels_; |
- |
- // Recycle resources so that we can reduce the number of allocations and |
- // data transfers. |
- ResourceList all_resources_; |
- |
- DISALLOW_COPY_AND_ASSIGN(VideoResourceUpdater); |
-}; |
- |
-} // namespace cc |
- |
-#endif // CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ |