// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. module media.mojom; import "mojo/public/mojom/base/unguessable_token.mojom"; // For Windows MediaFoundation playback, we need to send a DirectComposition // (DCOMP) surface handle from the MediaFoundationService (utility) process to // the GPU process which can be later retrieved and set in // DCompSurfaceImageBacking. This interface is used to send the handle to // DCOMPSurfaceRegistryBroker in the browser process, which then uses GpuService // to send it the GPU process. The client is MediaFoundationRendererWrapper in // the utility process, and the implementation is the DCOMPSurfaceRegistryBroker // in the browser process. interface DCOMPSurfaceRegistry { // Registers a DCOMP surface handle and returns a token. The token will then // be used by MediaFoundationRendererClient to call DCOMPTexture to set the // surface in DCompSurfaceImageBacking. Null token will be returned upon // failure. RegisterDCOMPSurfaceHandle(handle surface_handle) => (mojo_base.mojom.UnguessableToken? token); // Unregisters the DCOMP surface handle associated with `token`. This is to // avoid handle leak in case the handle is not taken during a playback, e.g. // user closes tab immediately after playback start. No-op if the handle has // already been taken. UnregisterDCOMPSurfaceHandle(mojo_base.mojom.UnguessableToken token); };