1 // Copyright 2017 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
7 import "ui/gfx/geometry/mojom/geometry.mojom";
9 // The following mojom classes are the corresponding classes in webrtc project.
10 // See third_party/webrtc/api/video_codecs/video_encoder.h for details.
11 struct ResolutionBitrateLimit {
12 gfx.mojom.Size frame_size;
13 int32 min_start_bitrate_bps;
14 int32 min_bitrate_bps;
15 int32 max_bitrate_bps;
18 // TODO(crbug.com/657632): Remove |has_*| values and use nullable types.
19 struct VideoEncoderInfo {
20 string implementation_name;
22 bool has_frame_delay = false;
25 bool has_input_capacity = false;
28 bool supports_native_handle;
29 bool has_trusted_rate_controller;
30 bool is_hardware_accelerated;
31 bool supports_simulcast;
32 bool reports_average_qp;
33 uint32 requested_resolution_alignment;
34 bool apply_alignment_to_all_simulcast_layers;
36 // This array size is equal to media::VideoEncoderInfo::kMaxSpatialLayers.
37 array<array<uint8>, 5> fps_allocation;
38 array<ResolutionBitrateLimit> resolution_bitrate_limits;