Index: media/mojo/interfaces/media_types.mojom |
diff --git a/media/mojo/interfaces/media_types.mojom b/media/mojo/interfaces/media_types.mojom |
index 0bd3b3a1ae43c70e9edd38a65828f0b5fbff79c8..35a6860e78b2da394c76d95c45b9ad1c5f2804b2 100644 |
--- a/media/mojo/interfaces/media_types.mojom |
+++ b/media/mojo/interfaces/media_types.mojom |
@@ -4,8 +4,9 @@ |
module media.mojom; |
-import "ui/gfx/geometry/mojo/geometry.mojom"; |
+import "gpu/ipc/common/mailbox_holder.mojom"; |
import "mojo/common/time.mojom"; |
+import "ui/gfx/geometry/mojo/geometry.mojom"; |
// See media/base/buffering_state.h for descriptions. |
[Native] |
@@ -177,6 +178,18 @@ struct VideoFrame { |
// Timestamp in microseconds of the associated frame. |
mojo.common.mojom.TimeDelta timestamp; |
+ // Contents of the video frame. |
+ VideoFrameData data; |
+}; |
+ |
+// Possible choices for storing VideoFrame data. |
+union VideoFrameData { |
+ SharedBufferVideoFrameData shared_buffer_data; |
+ MailboxVideoFrameData mailbox_data; |
+}; |
+ |
+// This defines video frame data stored in a Mojo shared buffer. |
+struct SharedBufferVideoFrameData { |
// Reference to the shared memory containing the frame's data. |
handle<shared_buffer> frame_data; |
uint64 frame_data_size; |
@@ -191,6 +204,11 @@ struct VideoFrame { |
uint64 v_offset; |
}; |
+// This defines video frame data stored in texture mailboxes. |
+struct MailboxVideoFrameData { |
+ array<gpu.mojom.MailboxHolder> mailbox_holder; |
+}; |
+ |
struct PipelineStatistics { |
uint64 audio_bytes_decoded; |
uint64 video_bytes_decoded; |