Index: media/mojo/interfaces/media_types.mojom |
diff --git a/media/mojo/interfaces/media_types.mojom b/media/mojo/interfaces/media_types.mojom |
index 085256eac3a139d30c26905ba51c1d4dd508dd21..d04f434eb537f012912427fd3b1ae934354c9fa0 100644 |
--- a/media/mojo/interfaces/media_types.mojom |
+++ b/media/mojo/interfaces/media_types.mojom |
@@ -266,8 +266,6 @@ struct AudioBuffer { |
}; |
// This defines a mojo transport format for media::VideoFrame. |
-// TODO(jrummell): Support shared memory based VideoFrame to avoid copying |
-// the data multiple times. |
struct VideoFrame { |
// Format of the frame. |
VideoFormat format; |
@@ -287,8 +285,16 @@ struct VideoFrame { |
// Timestamp in microseconds of the associated frame. |
int64 timestamp_usec; |
- // Frame data for each plane. Will be null for EOS buffers. |
- array<uint8>? y_data; |
- array<uint8>? u_data; |
- array<uint8>? v_data; |
+ // Reference to the shared memory containing the frame's data. |
+ handle<shared_buffer> frame_data; |
+ uint64 frame_data_size; |
+ |
+ // Stride and offsets for each plane. Offsets are relative to the start |
+ // of |frame_data|. |
+ int32 y_stride; |
+ int32 u_stride; |
+ int32 v_stride; |
+ int32 y_offset; |
+ int32 u_offset; |
+ int32 v_offset; |
}; |