[go: nahoru, domu]

blob: aff66c835bc98f1df067b77dad128c7091ffd472 [file] [log] [blame]
// 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;
// True if encoder supports frame size change without re-initialization.
bool supports_frame_size_change = false;
// This array size is equal to media::VideoEncoderInfo::kMaxSpatialLayers.
array<array<uint8>, 5> fps_allocation;
array<ResolutionBitrateLimit> resolution_bitrate_limits;
};