Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1951)

Unified Diff: media/base/video_frame.h

Issue 2006893002: Video Gmb Pool: Plumb GpuMemoryBufferId through to compositor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add gmb ID support to unittests Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/resources/video_resource_updater.cc ('k') | media/base/video_frame.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/video_frame.h
diff --git a/media/base/video_frame.h b/media/base/video_frame.h
index e4eeae48d1eb1a5fc5fc72100fa44e405fd2d134..4ff66ac333dd659f3c9d13523d1b45e1905f8843 100644
--- a/media/base/video_frame.h
+++ b/media/base/video_frame.h
@@ -136,6 +136,19 @@ class MEDIA_EXPORT VideoFrame : public base::RefCountedThreadSafe<VideoFrame> {
const gfx::Size& natural_size,
base::TimeDelta timestamp);
+ // Wraps a set of GpuMemoryBuffer-backed native textures with a VideoFrame.
+ // |mailbox_holders_release_cb| will be called with a sync token as the
+ // argument when the VideoFrame is to be destroyed.
+ static scoped_refptr<VideoFrame> WrapGpuMemoryBufferBackedNativeTextures(
+ VideoPixelFormat format,
+ const gpu::MailboxHolder (&mailbox_holder)[kMaxPlanes],
+ const gfx::GpuMemoryBufferId (&gpu_memory_buffer_ids)[kMaxPlanes],
+ const ReleaseMailboxCB& mailbox_holders_release_cb,
+ const gfx::Size& coded_size,
+ const gfx::Rect& visible_rect,
+ const gfx::Size& natural_size,
+ base::TimeDelta timestamp);
+
// Wraps packed image data residing in a memory buffer with a VideoFrame.
// The image data resides in |data| and is assumed to be packed tightly in a
// buffer of logical dimensions |coded_size| with the appropriate bit depth
@@ -339,6 +352,11 @@ class MEDIA_EXPORT VideoFrame : public base::RefCountedThreadSafe<VideoFrame> {
// mailbox, the caller must wait for the included sync point.
const gpu::MailboxHolder& mailbox_holder(size_t texture_index) const;
+ // Returns the GpuMemoryBufferId for the GpuMemoryBuffer that backs a
+ // a given texture.
+ const gfx::GpuMemoryBufferId& texture_gpu_memory_buffer_id(
+ size_t texture_index) const;
+
// Returns the shared-memory handle, if present
base::SharedMemoryHandle shared_memory_handle() const;
@@ -522,6 +540,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCountedThreadSafe<VideoFrame> {
// Native texture mailboxes, if this is a IsTexture() frame.
gpu::MailboxHolder mailbox_holders_[kMaxPlanes];
ReleaseMailboxCB mailbox_holders_release_cb_;
+ gfx::GpuMemoryBufferId texture_gpu_memory_buffer_ids_[kMaxPlanes];
// Shared memory handle and associated offset inside it, if this frame is
// a STORAGE_SHMEM one.
« no previous file with comments | « cc/resources/video_resource_updater.cc ('k') | media/base/video_frame.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698