blob: b05ee0564bf5a203348cf4c035eeca0c022f3673 [file] [log] [blame]
// Copyright 2016 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/interface_factory.mojom";
import "mojo/common/file_path.mojom";
import "services/service_manager/public/interfaces/interface_provider.mojom";
// A service to provide media InterfaceFactory, typically to the media pipeline
// running in the renderer process. The service itself runs in the process
// specified by the |mojo_media_host| gn build flag, or in the utility process
// when this service runs as an standalone CDM service (see gn build flag
// |enable_standalone_cdm_service| for details). The service is always connected
// from the browser process.
// TODO(crbug.com/771791): Separate CdmService from MediaService.
interface MediaService {
// Loads the CDM at |cdm_path| into the process.
// Since the client will not know whether LoadCdm() has been called by a
// previous MediaService instance, the client should always call it after
// interface connection. If the CDM is already loaded, this will be a no-op.
LoadCdm(mojo.common.mojom.FilePath cdm_path);
// Requests an InterfaceFactory. |host_interfaces| can optionally be used to
// provide interfaces hosted by the caller to the remote InterfaceFactory
// implementation.
CreateInterfaceFactory(
InterfaceFactory& factory,
service_manager.mojom.InterfaceProvider? host_interfaces);
};