[M120 Migration][MM] Framerate calculation
[platform/framework/web/chromium-efl.git] / media / mojo / mojom / video_encoder_info.mojom
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.
4
5 module media.mojom;
6
7 import "ui/gfx/geometry/mojom/geometry.mojom";
8
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;
16 };
17
18 // TODO(crbug.com/657632): Remove |has_*| values and use nullable types.
19 struct VideoEncoderInfo {
20   string implementation_name;
21
22   bool has_frame_delay = false;
23   int32 frame_delay;
24
25   bool has_input_capacity = false;
26   int32 input_capacity;
27
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;
35
36   // This array size is equal to media::VideoEncoderInfo::kMaxSpatialLayers.
37   array<array<uint8>, 5> fps_allocation;
38   array<ResolutionBitrateLimit> resolution_bitrate_limits;
39 };