Index: mojo/services/public/interfaces/media/media_renderer.mojom |
diff --git a/mojo/services/public/interfaces/media/media_renderer.mojom b/mojo/services/public/interfaces/media/media_renderer.mojom |
new file mode 100644 |
index 0000000000000000000000000000000000000000..08d154e941dc6474c646672336bd383e88458b14 |
--- /dev/null |
+++ b/mojo/services/public/interfaces/media/media_renderer.mojom |
@@ -0,0 +1,57 @@ |
+// 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. |
+ |
+import "mojo/services/public/interfaces/media/media_types.mojom" |
+ |
+module mojo { |
+ |
+[Client=MediaRendererClient] |
+interface MediaRenderer { |
+ // Initializes the Renderer, calling back with status upon completion. |
+ Initialize(handle<data_pipe_consumer> demuxer_stream) => |
+ (PipelineStatus pipeline_status); |
+ |
+ // Discards any buffered data, executing callback when completed. |
+ Flush() => (); |
+ |
+ // Starts rendering from |time|. |
+ StartPlayingFrom(int64 time_delta_usec); |
+ |
+ // Updates the current playback rate. The default playback rate should be 1. |
+ SetPlaybackRate(float playback_rate); |
+ |
+ // Sets the output volume. The default volume should be 1. |
+ SetVolume(float volume); |
+ |
+ /* TODO(tim): Figure out these |
+ GetMediaTime() => (int64 time_delta_usec); |
xhwang
2014/08/22 23:30:02
Since we have OnTimeAdvanced, we probably don't ne
|
+ HasAudio() |
+ HasVideo() |
+ */ |
+}; |
+ |
+interface MediaRendererClient { |
+ OnNewStatistics(PipelineStatistics statistics); |
xhwang
2014/08/22 23:30:02
nit: OnStatistics
|
+ OnTimeAdvanced(int64 time_delta_usec); |
xhwang
2014/08/22 23:30:02
OnTimeUpdate() would be a more media-ish term :)
|
+ OnBufferingStateChange(BufferingState state); |
+ OnEndOfStream(); |
xhwang
2014/08/22 23:30:02
OnEnded() to be more consistent with media Pipelin
|
+ OnPipelineError(PipelineStatus error); |
xhwang
2014/08/22 23:30:02
Renderer knows nothing about Pipeline. So just OnE
|
+}; |
+ |
+} |
+ |
+/* REMOVE THIS |
+ |
+e.g |
+ |
+class MojoRendererImpl : public media::Renderer, |
+ mojo::MediaRendererClient { |
+ |
+ ... |
+ mojo::MediaRendererPtr renderer; |
+ <magic_thing>->ConnectToService("lib with InterfaceImpl<MediaRenderer>", &renderer); |
+ |
+ |
+}; |
+*/ |