Chromium Code Reviews| Index: mojo/services/media/control/interfaces/media_sink.mojom |
| diff --git a/mojo/services/media/control/interfaces/media_sink.mojom b/mojo/services/media/control/interfaces/media_sink.mojom |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..efaa63081b5748e8bc07018b22f990c7c8cc3641 |
| --- /dev/null |
| +++ b/mojo/services/media/control/interfaces/media_sink.mojom |
| @@ -0,0 +1,53 @@ |
| +// Copyright 2015 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. |
| + |
| +[DartPackage="mojo_services"] |
| +module mojo.media; |
| + |
| +import "mojo/services/media/common/interfaces/media_clock.mojom"; |
| +import "mojo/services/media/common/interfaces/media_common.mojom"; |
| +import "mojo/services/media/common/interfaces/media_state.mojom"; |
| +import "mojo/services/media/common/interfaces/media_transport.mojom"; |
| +import "mojo/services/media/common/interfaces/media_types.mojom"; |
| +import "mojo/services/media/common/interfaces/rate_control.mojom"; |
| + |
| +// TODO(dalesat): Define a media sink that multiplexes streams. |
| + |
| +// Consumes media streams and delivers them to specified destinations. |
| +interface MediaSink { |
| + // TODO(dalesat): Support fanout to many destinations. |
| + |
| + // Gets the clock disposition from the source. |
| + GetClockDisposition() => (ClockDisposition clock_disposition); |
| + |
| + // Gets a master clock if the sink can be master, null otherwise. |
| + GetMasterClock(Clock& master_clock); |
| + |
| + // Sets a master clock. |
| + SetMasterClock(Clock? master_clock); |
| + |
| + // Gets the consumer for the stream to be delivered. |
| + GetConsumer(MediaConsumer& consumer); |
| + |
| + // Gets the status. To get the status immediately, call GetStatus(0). To |
| + // get updates thereafter, pass the version sent in the previous callback. |
| + GetStatus(uint64 version_last_seen) => |
| + (uint64 version, MediaSinkStatus status); |
| + |
| + // Starts playback. |
| + Play(); |
| + |
| + // Pauses playback. |
| + Pause(); |
|
johngro
2015/12/10 21:46:04
similar question/comment as before. Seems like pl
dalesat
2015/12/10 22:33:38
Acknowledged.
|
| +}; |
| + |
| +// MediaSink status information. |
| +struct MediaSinkStatus { |
| + // Current state of the sink. |
| + MediaState state; |
| + |
| + // Transform translating local time to presentation time. Reverse translation |
| + // (presentation time to local time) is only valid when media is playing. |
| + TimelineTransform? timeline_transform; |
| +}; |