// Copyright 2017 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 "ui/gfx/geometry/mojom/geometry.mojom";

struct ResolutionBitrateLimit {
  gfx.mojom.Size frame_size;
  int32 min_start_bitrate_bps;
  int32 min_bitrate_bps;
  int32 max_bitrate_bps;
};

struct VideoEncoderInfo {
  string implementation_name;

  bool supports_native_handle;
  bool has_trusted_rate_controller;
  bool is_hardware_accelerated;
  bool supports_simulcast;

  // This array size is equal to media::VideoEncoderInfo::kMaxSpatialLayers.
  array<array<uint8>, 5> fps_allocation;
  array<ResolutionBitrateLimit> resolution_bitrate_limits;
};
