| 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();
|
| +};
|
| +
|
| +// 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;
|
| +};
|
|
|