Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ | 5 #ifndef CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ |
| 6 #define CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ | 6 #define CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 129 | 129 |
| 130 const unsigned resource_id_; | 130 const unsigned resource_id_; |
| 131 const gfx::Size resource_size_; | 131 const gfx::Size resource_size_; |
| 132 const ResourceFormat resource_format_; | 132 const ResourceFormat resource_format_; |
| 133 const gpu::Mailbox mailbox_; | 133 const gpu::Mailbox mailbox_; |
| 134 }; | 134 }; |
| 135 | 135 |
| 136 // This needs to be a container where iterators can be erased without | 136 // This needs to be a container where iterators can be erased without |
| 137 // invalidating other iterators. | 137 // invalidating other iterators. |
| 138 typedef std::list<PlaneResource> ResourceList; | 138 typedef std::list<PlaneResource> ResourceList; |
| 139 | |
| 140 // Obtain a resource of the right format by either recycling an | |
| 141 // unreferenced but appropriately formatted resource, or by | |
| 142 // allocating a new resource. | |
| 143 // Additionally, if the |unique_id| and |plane_index| match, then | |
| 144 // the resource is assumed to have the right data already, and be | |
|
danakj
2016/09/12 22:06:53
"and be read-only" => "and will only be used for r
| |
| 145 // read-only, and is returned even if it is still referenced. | |
| 146 // Passing -1 for |plane_index| avoids returning referenced | |
| 147 // resources. | |
| 148 ResourceList::iterator RecycleOrAllocateResource( | |
| 149 const gfx::Size& resource_size, | |
| 150 ResourceFormat resource_format, | |
| 151 const gfx::ColorSpace& color_space, | |
| 152 bool software_resource, | |
| 153 bool immutable_hint, | |
| 154 int unique_id, | |
| 155 int plane_index); | |
| 139 ResourceList::iterator AllocateResource(const gfx::Size& plane_size, | 156 ResourceList::iterator AllocateResource(const gfx::Size& plane_size, |
| 140 ResourceFormat format, | 157 ResourceFormat format, |
| 141 const gfx::ColorSpace& color_space, | 158 const gfx::ColorSpace& color_space, |
| 142 bool has_mailbox, | 159 bool has_mailbox, |
| 143 bool immutable_hint); | 160 bool immutable_hint); |
| 144 void DeleteResource(ResourceList::iterator resource_it); | 161 void DeleteResource(ResourceList::iterator resource_it); |
| 145 void CopyPlaneTexture(media::VideoFrame* video_frame, | 162 void CopyPlaneTexture(media::VideoFrame* video_frame, |
| 146 const gpu::MailboxHolder& mailbox_holder, | 163 const gpu::MailboxHolder& mailbox_holder, |
| 147 VideoFrameExternalResources* external_resources); | 164 VideoFrameExternalResources* external_resources); |
| 148 VideoFrameExternalResources CreateForHardwarePlanes( | 165 VideoFrameExternalResources CreateForHardwarePlanes( |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 169 // Recycle resources so that we can reduce the number of allocations and | 186 // Recycle resources so that we can reduce the number of allocations and |
| 170 // data transfers. | 187 // data transfers. |
| 171 ResourceList all_resources_; | 188 ResourceList all_resources_; |
| 172 | 189 |
| 173 DISALLOW_COPY_AND_ASSIGN(VideoResourceUpdater); | 190 DISALLOW_COPY_AND_ASSIGN(VideoResourceUpdater); |
| 174 }; | 191 }; |
| 175 | 192 |
| 176 } // namespace cc | 193 } // namespace cc |
| 177 | 194 |
| 178 #endif // CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ | 195 #endif // CC_RESOURCES_VIDEO_RESOURCE_UPDATER_H_ |
| OLD | NEW |