// Copyright 2017 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 "ui/gfx/geometry/mojom/geometry.mojom"; // The following mojom classes are the corresponding classes in webrtc project. // See third_party/webrtc/api/video_codecs/video_encoder.h for details. struct ResolutionBitrateLimit { gfx.mojom.Size frame_size; int32 min_start_bitrate_bps; int32 min_bitrate_bps; int32 max_bitrate_bps; }; // TODO(crbug.com/657632): Remove |has_*| values and use nullable types. struct VideoEncoderInfo { string implementation_name; bool has_frame_delay = false; int32 frame_delay; bool has_input_capacity = false; int32 input_capacity; bool supports_native_handle; bool has_trusted_rate_controller; bool is_hardware_accelerated; bool supports_simulcast; bool reports_average_qp; uint32 requested_resolution_alignment; bool apply_alignment_to_all_simulcast_layers; // This array size is equal to media::VideoEncoderInfo::kMaxSpatialLayers. array, 5> fps_allocation; array resolution_bitrate_limits; };