// 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_types.mojom";
import "mojo/services/media/control/interfaces/media_player.mojom";
import "mojo/services/media/control/interfaces/media_sink.mojom";
import "mojo/services/media/control/interfaces/media_source.mojom";

// Exposed by the factory service to create media-related agents.
[ServiceName="mojo::media::MediaFactory"]
interface MediaFactory {
  // Creates a player.
  // TODO(dalesat): Add means of specifying destinations.
  CreatePlayer(string origin_url, MediaPlayer& player);

  // Creates a source. If allowed_media_types is supplied, conversions will be
  // added to each stream as needed to make the media type of the stream match
  // one of the allowed types. If a stream cannot be converted to one of the
  // allowed types, its media type will have the scheme NONE, and the stream
  // will not be usable.
  CreateSource(
      string origin_url,
      array<MediaTypeSet>? allowed_media_types,
      MediaSource& source);

  // Creates a sink. Conversions are added to the pipeline as appropriate to
  // convert the indicated media type to a type compatible with the
  // destination.
  CreateSink(string destination_url, MediaType media_type, MediaSink& sink);
};
