diff options
Diffstat (limited to 'chromium/media/video/picture.cc')
-rw-r--r-- | chromium/media/video/picture.cc | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/chromium/media/video/picture.cc b/chromium/media/video/picture.cc index 5763f3b4129..8e191581d5d 100644 --- a/chromium/media/video/picture.cc +++ b/chromium/media/video/picture.cc @@ -53,17 +53,37 @@ PictureBuffer::PictureBuffer(int32_t id, DCHECK_EQ(client_texture_ids.size(), texture_mailboxes.size()); } +PictureBuffer::PictureBuffer(int32_t id, + const gfx::Size& size, + const TextureSizes& texture_sizes, + const TextureIds& client_texture_ids, + const TextureIds& service_texture_ids, + uint32_t texture_target, + VideoPixelFormat pixel_format) + : id_(id), + size_(size), + texture_sizes_(texture_sizes), + client_texture_ids_(client_texture_ids), + service_texture_ids_(service_texture_ids), + texture_target_(texture_target), + pixel_format_(pixel_format) { + // We either not have client texture ids at all, or if we do, then their + // number must be the same as the number of service texture ids. + DCHECK(client_texture_ids_.empty() || + client_texture_ids_.size() == service_texture_ids_.size()); +} + PictureBuffer::PictureBuffer(const PictureBuffer& other) = default; PictureBuffer::~PictureBuffer() = default; -gpu::Mailbox PictureBuffer::texture_mailbox(size_t plane) const { - if (plane >= texture_mailboxes_.size()) { - LOG(ERROR) << "No mailbox for plane " << plane; - return gpu::Mailbox(); +gfx::Size PictureBuffer::texture_size(size_t plane) const { + if (plane >= texture_sizes_.size()) { + LOG(ERROR) << "Missing texture size for plane " << plane; + return gfx::Size(); } - return texture_mailboxes_[plane]; + return texture_sizes_[plane]; } Picture::Picture(int32_t picture_buffer_id, |