// 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.

module media.mojom;

import "media/mojo/interfaces/audio_decoder.mojom";
import "media/mojo/interfaces/content_decryption_module.mojom";
import "media/mojo/interfaces/renderer.mojom";
import "media/mojo/interfaces/video_decoder.mojom";

// A factory interface to create media services. Renderers can only access
// ContentDecryptionModules created in the same factory.
interface InterfaceFactory {
  // Creates an AudioDecoder service.
  CreateAudioDecoder(AudioDecoder& audio_decoder);

  // Creates a VideoDecoder service.
  CreateVideoDecoder(VideoDecoder& video_decoder);

  // Creates a Renderer service.
  // Audio stream will be played on device_id, which is defined in
  // media/audio/audio_device_description.h. If audio_device_id
  // is empty, kDefaultDeviceId will be used. 
  CreateRenderer(string audio_device_id, Renderer& renderer);

  // Creates a ContentDecryptionModule service.
  CreateCdm(ContentDecryptionModule& cdm);
};
