Index: media/mojo/interfaces/media_types.mojom |
diff --git a/media/mojo/interfaces/media_types.mojom b/media/mojo/interfaces/media_types.mojom |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a4c2d57a4a77ad43d232f544cb3014f6fc07f583 |
--- /dev/null |
+++ b/media/mojo/interfaces/media_types.mojom |
@@ -0,0 +1,48 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+module mojo { |
+ |
+// Buffer state reporting. See media/base/buffering_state.h. |
+enum BufferingState { |
+ // Indicates that there is no data buffered. |
+ // |
+ // Typical reason is data underflow and hence playback should be paused. |
+ BUFFERING_HAVE_NOTHING, |
darin (slow to review)
2014/09/02 20:51:47
doesn't this mean we end up with BUFFERING_STATE_B
tim (not reviewing)
2014/09/02 21:55:50
Ah yes. Done.
|
+ |
+ // Indicates that enough data has been buffered. |
+ // |
+ // Typical reason is enough data has been prerolled to start playback. |
+ BUFFERING_HAVE_ENOUGH, |
+}; |
+ |
+// This defines a mojo transport format for media::DecoderBuffer. |
+struct MediaDecoderBuffer { |
+ // See media/base/buffers.h for details. |
+ int64 timestamp; |
+ int64 duration; |
+ |
+ // The number of bytes in |data|. |
+ uint32 data_size; |
+ |
+ // This is backed by an std::vector and results in a few copies. |
+ // Into the vector, onto and off the MessagePipe, back into a vector. |
+ uint8[] side_data; |
+ uint32 side_data_size; |
+ |
+ // These fields indicate the amount of data to discard after decoding. |
+ int64 front_discard_usec; |
+ int64 back_discard_usec; |
+ |
+ // Indicates this buffer is part of a splice around |splice_timestamp_|. |
+ int64 splice_timestamp; |
+ |
+ // The payload. |
+ // TODO(tim): This currently results in allocating a new, largeish datapipe |
+ // for each buffer. Remove this once framed data pipes exist, but using this |
+ // for now for prototyping audio. |
+ handle<data_pipe_consumer> data; |
+}; |
+ |
+} // module mojo |