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

// Next MinVersion: 8

module arc.mojom;

import "components/arc/mojom/video_decode_accelerator.mojom";
import "components/arc/mojom/video_encode_accelerator.mojom";
import "components/arc/mojom/video_protected_buffer_allocator.mojom";

// Deprecated method IDs: 0
// Next method ID: 2
interface VideoHost {
  // Requests an IPC channel from Chrome's browser process to bootstrap a new
  // mojo child process and a token which can be used to create a message pipe
  // connected to a new VideoAcceleratorFactory.
  [MinVersion=4]
  OnBootstrapVideoAcceleratorFactory@1() => (handle channel_handle,
                                             string token);
};

// Next method ID: 2
interface VideoInstance {
  // DEPRECATED: Please use Init@1 instead.
  InitDeprecated@0(pending_remote<VideoHost> host_remote);

  // Establishes full-duplex communication with the host.
  [MinVersion=5] Init@1(pending_remote<VideoHost> host_remote) => ();
};

// Deprecated method IDs: 0
// Next method ID: 4
interface VideoAcceleratorFactory {
  [MinVersion=1]
  CreateEncodeAccelerator@1(
      pending_receiver<VideoEncodeAccelerator> video_encoder);

  [MinVersion=6]
  CreateDecodeAccelerator@2(
      pending_receiver<VideoDecodeAccelerator> video_decoder);

  [Minversion=7]
  CreateProtectedBufferAllocator@3(
      pending_receiver<VideoProtectedBufferAllocator>
           video_protected_buffer_allocator);
};
