// Copyright 2021 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 "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 retrievd and set in GLImageDCOMPSurface.
// 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 GLImageDCOMPSurface. Null token will be returned upon failure.
  RegisterDCOMPSurfaceHandle(handle<platform> 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);
};
