xref: /aosp_15_r20/external/libaom/aom/aomcx.h (revision 77c1e3ccc04c968bd2bc212e87364f250e820521)
1 /*
2  * Copyright (c) 2016, Alliance for Open Media. All rights reserved.
3  *
4  * This source code is subject to the terms of the BSD 2 Clause License and
5  * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6  * was not distributed with this source code in the LICENSE file, you can
7  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8  * Media Patent License 1.0 was not distributed with this source code in the
9  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10  */
11 #ifndef AOM_AOM_AOMCX_H_
12 #define AOM_AOM_AOMCX_H_
13 
14 /*!\defgroup aom_encoder AOMedia AOM/AV1 Encoder
15  * \ingroup aom
16  *
17  * @{
18  */
19 #include "aom/aom.h"
20 #include "aom/aom_encoder.h"
21 #include "aom/aom_external_partition.h"
22 
23 /*!\file
24  * \brief Provides definitions for using AOM or AV1 encoder algorithm within the
25  *        aom Codec Interface.
26  *
27  * Several interfaces are excluded with CONFIG_REALTIME_ONLY build:
28  * Global motion
29  * Warped motion
30  * OBMC
31  * TPL model
32  * Loop restoration
33  *
34  * The following features are also disabled with CONFIG_REALTIME_ONLY:
35  * AV1E_SET_QUANT_B_ADAPT
36  * CNN
37  * 4X rectangular blocks
38  * 4X rectangular transform in intra prediction
39  */
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 /*!\name Algorithm interface for AV1
46  *
47  * This interface provides the capability to encode raw AV1 streams.
48  *@{
49  */
50 
51 /*!\brief A single instance of the AV1 encoder.
52  *\deprecated This access mechanism is provided for backwards compatibility;
53  * prefer aom_codec_av1_cx().
54  */
55 extern aom_codec_iface_t aom_codec_av1_cx_algo;
56 
57 /*!\brief The interface to the AV1 encoder.
58  */
59 extern aom_codec_iface_t *aom_codec_av1_cx(void);
60 /*!@} - end algorithm interface member group */
61 
62 /*
63  * Algorithm Flags
64  */
65 
66 /*!\brief Don't reference the last frame
67  *
68  * When this flag is set, the encoder will not use the last frame as a
69  * predictor. When not set, the encoder will choose whether to use the
70  * last frame or not automatically.
71  */
72 #define AOM_EFLAG_NO_REF_LAST (1 << 16)
73 /*!\brief Don't reference the last2 frame
74  *
75  * When this flag is set, the encoder will not use the last2 frame as a
76  * predictor. When not set, the encoder will choose whether to use the
77  * last2 frame or not automatically.
78  */
79 #define AOM_EFLAG_NO_REF_LAST2 (1 << 17)
80 /*!\brief Don't reference the last3 frame
81  *
82  * When this flag is set, the encoder will not use the last3 frame as a
83  * predictor. When not set, the encoder will choose whether to use the
84  * last3 frame or not automatically.
85  */
86 #define AOM_EFLAG_NO_REF_LAST3 (1 << 18)
87 /*!\brief Don't reference the golden frame
88  *
89  * When this flag is set, the encoder will not use the golden frame as a
90  * predictor. When not set, the encoder will choose whether to use the
91  * golden frame or not automatically.
92  */
93 #define AOM_EFLAG_NO_REF_GF (1 << 19)
94 
95 /*!\brief Don't reference the alternate reference frame
96  *
97  * When this flag is set, the encoder will not use the alt ref frame as a
98  * predictor. When not set, the encoder will choose whether to use the
99  * alt ref frame or not automatically.
100  */
101 #define AOM_EFLAG_NO_REF_ARF (1 << 20)
102 /*!\brief Don't reference the bwd reference frame
103  *
104  * When this flag is set, the encoder will not use the bwd ref frame as a
105  * predictor. When not set, the encoder will choose whether to use the
106  * bwd ref frame or not automatically.
107  */
108 #define AOM_EFLAG_NO_REF_BWD (1 << 21)
109 /*!\brief Don't reference the alt2 reference frame
110  *
111  * When this flag is set, the encoder will not use the alt2 ref frame as a
112  * predictor. When not set, the encoder will choose whether to use the
113  * alt2 ref frame or not automatically.
114  */
115 #define AOM_EFLAG_NO_REF_ARF2 (1 << 22)
116 
117 /*!\brief Don't update the last frame
118  *
119  * When this flag is set, the encoder will not update the last frame with
120  * the contents of the current frame.
121  */
122 #define AOM_EFLAG_NO_UPD_LAST (1 << 23)
123 
124 /*!\brief Don't update the golden frame
125  *
126  * When this flag is set, the encoder will not update the golden frame with
127  * the contents of the current frame.
128  */
129 #define AOM_EFLAG_NO_UPD_GF (1 << 24)
130 
131 /*!\brief Don't update the alternate reference frame
132  *
133  * When this flag is set, the encoder will not update the alt ref frame with
134  * the contents of the current frame.
135  */
136 #define AOM_EFLAG_NO_UPD_ARF (1 << 25)
137 /*!\brief Disable entropy update
138  *
139  * When this flag is set, the encoder will not update its internal entropy
140  * model based on the entropy of this frame.
141  */
142 #define AOM_EFLAG_NO_UPD_ENTROPY (1 << 26)
143 /*!\brief Disable ref frame mvs
144  *
145  * When this flag is set, the encoder will not allow frames to
146  * be encoded using mfmv.
147  */
148 #define AOM_EFLAG_NO_REF_FRAME_MVS (1 << 27)
149 /*!\brief Enable error resilient frame
150  *
151  * When this flag is set, the encoder will code frames as error
152  * resilient.
153  */
154 #define AOM_EFLAG_ERROR_RESILIENT (1 << 28)
155 /*!\brief Enable s frame mode
156  *
157  * When this flag is set, the encoder will code frames as an
158  * s frame.
159  */
160 #define AOM_EFLAG_SET_S_FRAME (1 << 29)
161 /*!\brief Force primary_ref_frame to PRIMARY_REF_NONE
162  *
163  * When this flag is set, the encoder will set a frame's primary_ref_frame
164  * to PRIMARY_REF_NONE
165  */
166 #define AOM_EFLAG_SET_PRIMARY_REF_NONE (1 << 30)
167 
168 /*!\brief AVx encoder control functions
169  *
170  * This set of macros define the control functions available for AVx
171  * encoder interface.
172  * The range of encode control ID is 7-229(max).
173  *
174  * \sa #aom_codec_control(aom_codec_ctx_t *ctx, int ctrl_id, ...)
175  */
176 enum aome_enc_control_id {
177   /*!\brief Codec control function to set which reference frame encoder can use,
178    * int parameter.
179    */
180   AOME_USE_REFERENCE = 7,
181 
182   /*!\brief Codec control function to pass an ROI map to encoder, aom_roi_map_t*
183    * parameter.
184    */
185   AOME_SET_ROI_MAP = 8,
186 
187   /*!\brief Codec control function to pass an Active map to encoder,
188    * aom_active_map_t* parameter.
189    */
190   AOME_SET_ACTIVEMAP = 9,
191 
192   /* NOTE: enum 10 unused */
193 
194   /*!\brief Codec control function to set encoder scaling mode for the next
195    * frame to be coded, aom_scaling_mode_t* parameter.
196    */
197   AOME_SET_SCALEMODE = 11,
198 
199   /*!\brief Codec control function to set encoder spatial layer id, int
200    * parameter.
201    */
202   AOME_SET_SPATIAL_LAYER_ID = 12,
203 
204   /*!\brief Codec control function to set encoder internal speed settings,
205    * int parameter
206    *
207    * Changes in this value influences the complexity of algorithms used in
208    * encoding process, values greater than 0 will increase encoder speed at
209    * the expense of quality.
210    *
211    * Valid range: 0..11. 0 runs the slowest, and 11 runs the fastest;
212    * quality improves as speed decreases (since more compression
213    * possibilities are explored).
214    *
215    * NOTE: 10 and 11 are only allowed in AOM_USAGE_REALTIME. In
216    * AOM_USAGE_GOOD_QUALITY and AOM_USAGE_ALL_INTRA, 9 is the highest allowed
217    * value. However, AOM_USAGE_GOOD_QUALITY treats 7..9 the same as 6. Also,
218    * AOM_USAGE_REALTIME treats 0..4 the same as 5.
219    */
220   AOME_SET_CPUUSED = 13,
221 
222   /*!\brief Codec control function to enable automatic set and use alf frames,
223    * unsigned int parameter
224    *
225    * - 0 = disable
226    * - 1 = enable (default)
227    */
228   AOME_SET_ENABLEAUTOALTREF = 14,
229 
230   /* NOTE: enum 15 unused */
231 
232   /*!\brief Codec control function to set the sharpness parameter,
233    * unsigned int parameter.
234    *
235    * This parameter controls the level at which rate-distortion optimization of
236    * transform coefficients favours sharpness in the block.
237    *
238    * Valid range: 0..7. The default is 0. Values 1-7 will avoid eob and skip
239    * block optimization and will change rdmult in favour of block sharpness.
240    */
241   AOME_SET_SHARPNESS = AOME_SET_ENABLEAUTOALTREF + 2,  // 16
242 
243   /*!\brief Codec control function to set the threshold for MBs treated static,
244    * unsigned int parameter
245    */
246   AOME_SET_STATIC_THRESHOLD = 17,
247 
248   /* NOTE: enum 18 unused */
249 
250   /*!\brief Codec control function to get last quantizer chosen by the encoder,
251    * int* parameter
252    *
253    * Return value uses internal quantizer scale defined by the codec.
254    */
255   AOME_GET_LAST_QUANTIZER = AOME_SET_STATIC_THRESHOLD + 2,  // 19
256 
257   /*!\brief Codec control function to get last quantizer chosen by the encoder,
258    * int* parameter
259    *
260    * Return value uses the 0..63 scale as used by the rc_*_quantizer config
261    * parameters.
262    */
263   AOME_GET_LAST_QUANTIZER_64 = 20,
264 
265   /*!\brief Codec control function to set the max no of frames to create arf,
266    * unsigned int parameter
267    */
268   AOME_SET_ARNR_MAXFRAMES = 21,
269 
270   /*!\brief Codec control function to set the filter strength for the arf,
271    * unsigned int parameter
272    */
273   AOME_SET_ARNR_STRENGTH = 22,
274 
275   /* NOTE: enum 23 unused */
276 
277   /*!\brief Codec control function to set visual tuning, aom_tune_metric (int)
278    * parameter
279    *
280    * The default is AOM_TUNE_PSNR.
281    */
282   AOME_SET_TUNING = AOME_SET_ARNR_STRENGTH + 2,  // 24
283 
284   /*!\brief Codec control function to set constrained / constant quality level,
285    * unsigned int parameter
286    *
287    * Valid range: 0..63
288    *
289    * \attention For this value to be used aom_codec_enc_cfg_t::rc_end_usage
290    *            must be set to #AOM_CQ or #AOM_Q.
291    */
292   AOME_SET_CQ_LEVEL = 25,
293 
294   /*!\brief Codec control function to set max data rate for intra frames,
295    * unsigned int parameter
296    *
297    * This value controls additional clamping on the maximum size of a
298    * keyframe. It is expressed as a percentage of the average
299    * per-frame bitrate, with the special (and default) value 0 meaning
300    * unlimited, or no additional clamping beyond the codec's built-in
301    * algorithm.
302    *
303    * For example, to allocate no more than 4.5 frames worth of bitrate
304    * to a keyframe, set this to 450.
305    */
306   AOME_SET_MAX_INTRA_BITRATE_PCT = 26,
307 
308   /*!\brief Codec control function to set number of spatial layers, int
309    * parameter
310    */
311   AOME_SET_NUMBER_SPATIAL_LAYERS = 27,
312 
313   /*!\brief Codec control function to set max data rate for inter frames,
314    * unsigned int parameter
315    *
316    * This value controls additional clamping on the maximum size of an
317    * inter frame. It is expressed as a percentage of the average
318    * per-frame bitrate, with the special (and default) value 0 meaning
319    * unlimited, or no additional clamping beyond the codec's built-in
320    * algorithm.
321    *
322    * For example, to allow no more than 4.5 frames worth of bitrate
323    * to an inter frame, set this to 450.
324    */
325   AV1E_SET_MAX_INTER_BITRATE_PCT = AOME_SET_MAX_INTRA_BITRATE_PCT + 2,  // 28
326 
327   /*!\brief Boost percentage for Golden Frame in CBR mode, unsigned int
328    * parameter
329    *
330    * This value controls the amount of boost given to Golden Frame in
331    * CBR mode. It is expressed as a percentage of the average
332    * per-frame bitrate, with the special (and default) value 0 meaning
333    * the feature is off, i.e., no golden frame boost in CBR mode and
334    * average bitrate target is used.
335    *
336    * For example, to allow 100% more bits, i.e, 2X, in a golden frame
337    * than average frame, set this to 100.
338    */
339   AV1E_SET_GF_CBR_BOOST_PCT = 29,
340 
341   /* NOTE: enum 30 unused */
342 
343   /*!\brief Codec control function to set lossless encoding mode, unsigned int
344    * parameter
345    *
346    * AV1 can operate in lossless encoding mode, in which the bitstream
347    * produced will be able to decode and reconstruct a perfect copy of
348    * input source.
349    *
350    * - 0 = normal coding mode, may be lossy (default)
351    * - 1 = lossless coding mode
352    */
353   AV1E_SET_LOSSLESS = AV1E_SET_GF_CBR_BOOST_PCT + 2,  // 31
354 
355   /*!\brief Codec control function to enable the row based multi-threading
356    * of the encoder, unsigned int parameter
357    *
358    * - 0 = disable
359    * - 1 = enable (default)
360    */
361   AV1E_SET_ROW_MT = 32,
362 
363   /*!\brief Codec control function to set number of tile columns. unsigned int
364    * parameter
365    *
366    * In encoding and decoding, AV1 allows an input image frame be partitioned
367    * into separate vertical tile columns, which can be encoded or decoded
368    * independently. This enables easy implementation of parallel encoding and
369    * decoding. The parameter for this control describes the number of tile
370    * columns (in log2 units), which has a valid range of [0, 6]:
371    * \verbatim
372                  0 = 1 tile column
373                  1 = 2 tile columns
374                  2 = 4 tile columns
375                  .....
376                  n = 2**n tile columns
377      \endverbatim
378    * By default, the value is 0, i.e. one single column tile for entire image.
379    */
380   AV1E_SET_TILE_COLUMNS = 33,
381 
382   /*!\brief Codec control function to set number of tile rows, unsigned int
383    * parameter
384    *
385    * In encoding and decoding, AV1 allows an input image frame be partitioned
386    * into separate horizontal tile rows, which can be encoded or decoded
387    * independently. The parameter for this control describes the number of tile
388    * rows (in log2 units), which has a valid range of [0, 6]:
389    * \verbatim
390                 0 = 1 tile row
391                 1 = 2 tile rows
392                 2 = 4 tile rows
393                 .....
394                 n = 2**n tile rows
395    \endverbatim
396    * By default, the value is 0, i.e. one single row tile for entire image.
397    */
398   AV1E_SET_TILE_ROWS = 34,
399 
400   /*!\brief Codec control function to enable RDO modulated by frame temporal
401    * dependency, unsigned int parameter
402    *
403    * - 0 = disable
404    * - 1 = enable (default)
405    *
406    * \note Excluded from CONFIG_REALTIME_ONLY build.
407    */
408   AV1E_SET_ENABLE_TPL_MODEL = 35,
409 
410   /*!\brief Codec control function to enable temporal filtering on key frame,
411    * unsigned int parameter
412    *
413    * - 0 = disable
414    * - 1 = enable without overlay (default)
415    * - 2 = enable with overlay
416    */
417   AV1E_SET_ENABLE_KEYFRAME_FILTERING = 36,
418 
419   /*!\brief Codec control function to enable frame parallel decoding feature,
420    * unsigned int parameter
421    *
422    * AV1 has a bitstream feature to reduce decoding dependency between frames
423    * by turning off backward update of probability context used in encoding
424    * and decoding. This allows staged parallel processing of more than one
425    * video frames in the decoder. This control function provides a means to
426    * turn this feature on or off for bitstreams produced by encoder.
427    *
428    * - 0 = disable (default)
429    * - 1 = enable
430    */
431   AV1E_SET_FRAME_PARALLEL_DECODING = 37,
432 
433   /*!\brief Codec control function to enable error_resilient_mode, int parameter
434    *
435    * AV1 has a bitstream feature to guarantee parsability of a frame
436    * by turning on the error_resilient_decoding mode, even though the
437    * reference buffers are unreliable or not received.
438    *
439    * - 0 = disable (default)
440    * - 1 = enable
441    */
442   AV1E_SET_ERROR_RESILIENT_MODE = 38,
443 
444   /*!\brief Codec control function to enable s_frame_mode, int parameter
445    *
446    * AV1 has a bitstream feature to designate certain frames as S-frames,
447    * from where we can switch to a different stream,
448    * even though the reference buffers may not be exactly identical.
449    *
450    * - 0 = disable (default)
451    * - 1 = enable
452    */
453   AV1E_SET_S_FRAME_MODE = 39,
454 
455   /*!\brief Codec control function to set adaptive quantization mode, unsigned
456    * int parameter
457    *
458    * AV1 has a segment based feature that allows encoder to adaptively change
459    * quantization parameter for each segment within a frame to improve the
460    * subjective quality. This control makes encoder operate in one of the
461    * several AQ modes supported.
462    *
463    * - 0 = disable (default)
464    * - 1 = variance
465    * - 2 = complexity
466    * - 3 = cyclic refresh
467    */
468   AV1E_SET_AQ_MODE = 40,
469 
470   /*!\brief Codec control function to enable/disable periodic Q boost, unsigned
471    * int parameter
472    *
473    * One AV1 encoder speed feature is to enable quality boost by lowering
474    * frame level Q periodically. This control function provides a means to
475    * turn on/off this feature.
476    *
477    * - 0 = disable (default)
478    * - 1 = enable
479    */
480   AV1E_SET_FRAME_PERIODIC_BOOST = 41,
481 
482   /*!\brief Codec control function to set noise sensitivity, unsigned int
483    * parameter
484    *
485    * - 0 = disable (default)
486    * - 1 = enable (Y only)
487    */
488   AV1E_SET_NOISE_SENSITIVITY = 42,
489 
490   /*!\brief Codec control function to set content type, aom_tune_content
491    * parameter
492    *
493    *  - AOM_CONTENT_DEFAULT = Regular video content (default)
494    *  - AOM_CONTENT_SCREEN  = Screen capture content
495    *  - AOM_CONTENT_FILM = Film content
496    */
497   AV1E_SET_TUNE_CONTENT = 43,
498 
499   /*!\brief Codec control function to set CDF update mode, unsigned int
500    * parameter
501    *
502    *  - 0: no update
503    *  - 1: update on every frame (default)
504    *  - 2: selectively update
505    */
506   AV1E_SET_CDF_UPDATE_MODE = 44,
507 
508   /*!\brief Codec control function to set color space info, int parameter
509    *
510    *  - 0 = For future use
511    *  - 1 = BT.709
512    *  - 2 = Unspecified (default)
513    *  - 3 = For future use
514    *  - 4 = BT.470 System M (historical)
515    *  - 5 = BT.470 System B, G (historical)
516    *  - 6 = BT.601
517    *  - 7 = SMPTE 240
518    *  - 8 = Generic film (color filters using illuminant C)
519    *  - 9 = BT.2020, BT.2100
520    *  - 10 = SMPTE 428 (CIE 1921 XYZ)
521    *  - 11 = SMPTE RP 431-2
522    *  - 12 = SMPTE EG 432-1
523    *  - 13..21 = For future use
524    *  - 22 = EBU Tech. 3213-E
525    *  - 23 = For future use
526    */
527   AV1E_SET_COLOR_PRIMARIES = 45,
528 
529   /*!\brief Codec control function to set transfer function info, int parameter
530    *
531    * - 0 = For future use
532    * - 1 = BT.709
533    * - 2 = Unspecified (default)
534    * - 3 = For future use
535    * - 4 = BT.470 System M (historical)
536    * - 5 = BT.470 System B, G (historical)
537    * - 6 = BT.601
538    * - 7 = SMPTE 240 M
539    * - 8 = Linear
540    * - 9 = Logarithmic (100 : 1 range)
541    * - 10 = Logarithmic (100 * Sqrt(10) : 1 range)
542    * - 11 = IEC 61966-2-4
543    * - 12 = BT.1361
544    * - 13 = sRGB or sYCC
545    * - 14 = BT.2020 10-bit systems
546    * - 15 = BT.2020 12-bit systems
547    * - 16 = SMPTE ST 2084, ITU BT.2100 PQ
548    * - 17 = SMPTE ST 428
549    * - 18 = BT.2100 HLG, ARIB STD-B67
550    * - 19 = For future use
551    */
552   AV1E_SET_TRANSFER_CHARACTERISTICS = 46,
553 
554   /*!\brief Codec control function to set transfer function info, int parameter
555    *
556    * - 0 = Identity matrix
557    * - 1 = BT.709
558    * - 2 = Unspecified (default)
559    * - 3 = For future use
560    * - 4 = US FCC 73.628
561    * - 5 = BT.470 System B, G (historical)
562    * - 6 = BT.601
563    * - 7 = SMPTE 240 M
564    * - 8 = YCgCo
565    * - 9 = BT.2020 non-constant luminance, BT.2100 YCbCr
566    * - 10 = BT.2020 constant luminance
567    * - 11 = SMPTE ST 2085 YDzDx
568    * - 12 = Chromaticity-derived non-constant luminance
569    * - 13 = Chromaticity-derived constant luminance
570    * - 14 = BT.2100 ICtCp
571    * - 15 = For future use
572    */
573   AV1E_SET_MATRIX_COEFFICIENTS = 47,
574 
575   /*!\brief Codec control function to set chroma 4:2:0 sample position info,
576    * aom_chroma_sample_position_t parameter
577    *
578    * AOM_CSP_UNKNOWN is default
579    */
580   AV1E_SET_CHROMA_SAMPLE_POSITION = 48,
581 
582   /*!\brief Codec control function to set minimum interval between GF/ARF
583    * frames, unsigned int parameter
584    *
585    * By default the value is set as 4.
586    */
587   AV1E_SET_MIN_GF_INTERVAL = 49,
588 
589   /*!\brief Codec control function to set minimum interval between GF/ARF
590    * frames, unsigned int parameter
591    *
592    * By default the value is set as 16.
593    */
594   AV1E_SET_MAX_GF_INTERVAL = 50,
595 
596   /*!\brief Codec control function to get an active map back from the encoder,
597     aom_active_map_t* parameter
598    */
599   AV1E_GET_ACTIVEMAP = 51,
600 
601   /*!\brief Codec control function to set color range bit, int parameter
602    *
603    * - 0 = Limited range, 16..235 or HBD equivalent (default)
604    * - 1 = Full range, 0..255 or HBD equivalent
605    */
606   AV1E_SET_COLOR_RANGE = 52,
607 
608   /*!\brief Codec control function to set intended rendering image size,
609    * int32_t[2] parameter
610    *
611    * By default, this is identical to the image size in pixels.
612    */
613   AV1E_SET_RENDER_SIZE = 53,
614 
615   /*!\brief Control to set target sequence level index for a certain operating
616    * point (OP), int parameter
617    * Possible values are in the form of "ABxy".
618    *  - AB: OP index.
619    *  - xy: Target level index for the OP. Possible values are:
620    *    + 0~27: corresponding to level 2.0 ~ 8.3. Note:
621    *      > Levels 2.2 (2), 2.3 (3), 3.2 (6), 3.3 (7), 4.2 (10) & 4.3 (11) are
622    *        undefined.
623    *      > Levels 7.x and 8.x (20~27) are in draft status, available under the
624    *        config flag CONFIG_CWG_C013.
625    *    + 31: maximum parameters level, no level-based constraints.
626    *    + 32: keep level stats only for level monitoring.
627    *
628    * E.g.:
629    * - "0" means target level index 0 (2.0) for the 0th OP;
630    * - "109" means target level index 9 (4.1) for the 1st OP;
631    * - "1019" means target level index 19 (6.3) for the 10th OP.
632    *
633    * If the target level is not specified for an OP, the maximum parameters
634    * level of 31 is used as default.
635    */
636   AV1E_SET_TARGET_SEQ_LEVEL_IDX = 54,
637 
638   /*!\brief Codec control function to get sequence level index for each
639    * operating point. int* parameter. There can be at most 32 operating points.
640    * The results will be written into a provided integer array of sufficient
641    * size.
642    */
643   AV1E_GET_SEQ_LEVEL_IDX = 55,
644 
645   /*!\brief Codec control function to set intended superblock size, unsigned int
646    * parameter
647    *
648    * By default, the superblock size is determined separately for each
649    * frame by the encoder.
650    */
651   AV1E_SET_SUPERBLOCK_SIZE = 56,
652 
653   /*!\brief Codec control function to enable automatic set and use of
654    * bwd-pred frames, unsigned int parameter
655    *
656    * - 0 = disable (default)
657    * - 1 = enable
658    */
659   AOME_SET_ENABLEAUTOBWDREF = 57,
660 
661   /*!\brief Codec control function to encode with CDEF, unsigned int parameter
662    *
663    * CDEF is the constrained directional enhancement filter which is an
664    * in-loop filter aiming to remove coding artifacts
665    *
666    * - 0 = disable
667    * - 1 = enable for all frames (default)
668    * - 2 = disable for non-reference frames
669    */
670   AV1E_SET_ENABLE_CDEF = 58,
671 
672   /*!\brief Codec control function to encode with Loop Restoration Filter,
673    * unsigned int parameter
674    *
675    * - 0 = disable
676    * - 1 = enable (default)
677    *
678    * \note Excluded from CONFIG_REALTIME_ONLY build.
679    */
680   AV1E_SET_ENABLE_RESTORATION = 59,
681 
682   /*!\brief Codec control function to force video mode, unsigned int parameter
683    *
684    * - 0 = do not force video mode (default)
685    * - 1 = force video mode even for a single frame
686    */
687   AV1E_SET_FORCE_VIDEO_MODE = 60,
688 
689   /*!\brief Codec control function to predict with OBMC mode, unsigned int
690    * parameter
691    *
692    * - 0 = disable
693    * - 1 = enable (default)
694    *
695    * \note Excluded from CONFIG_REALTIME_ONLY build.
696    */
697   AV1E_SET_ENABLE_OBMC = 61,
698 
699   /*!\brief Codec control function to encode without trellis quantization,
700    * unsigned int parameter
701    *
702    * - 0 = apply trellis quantization (default)
703    * - 1 = do not apply trellis quantization
704    * - 2 = disable trellis quantization in rd search
705    * - 3 = disable trellis quantization in estimate yrd
706    */
707   AV1E_SET_DISABLE_TRELLIS_QUANT = 62,
708 
709   /*!\brief Codec control function to encode with quantisation matrices,
710    * unsigned int parameter
711    *
712    * AOM can operate with default quantisation matrices dependent on
713    * quantisation level and block type.
714    *
715    * - 0 = disable (default)
716    * - 1 = enable
717    */
718   AV1E_SET_ENABLE_QM = 63,
719 
720   /*!\brief Codec control function to set the min quant matrix flatness,
721    * unsigned int parameter
722    *
723    * AOM can operate with different ranges of quantisation matrices.
724    * As quantisation levels increase, the matrices get flatter. This
725    * control sets the minimum level of flatness from which the matrices
726    * are determined.
727    *
728    * By default, the encoder sets this minimum at half the available
729    * range.
730    */
731   AV1E_SET_QM_MIN = 64,
732 
733   /*!\brief Codec control function to set the max quant matrix flatness,
734    * unsigned int parameter
735    *
736    * AOM can operate with different ranges of quantisation matrices.
737    * As quantisation levels increase, the matrices get flatter. This
738    * control sets the maximum level of flatness possible.
739    *
740    * By default, the encoder sets this maximum at the top of the
741    * available range.
742    */
743   AV1E_SET_QM_MAX = 65,
744 
745   /*!\brief Codec control function to set the min quant matrix flatness,
746    * unsigned int parameter
747    *
748    * AOM can operate with different ranges of quantisation matrices.
749    * As quantisation levels increase, the matrices get flatter. This
750    * control sets the flatness for luma (Y).
751    *
752    * By default, the encoder sets this minimum at half the available
753    * range.
754    */
755   AV1E_SET_QM_Y = 66,
756 
757   /*!\brief Codec control function to set the min quant matrix flatness,
758    * unsigned int parameter
759    *
760    * AOM can operate with different ranges of quantisation matrices.
761    * As quantisation levels increase, the matrices get flatter. This
762    * control sets the flatness for chroma (U).
763    *
764    * By default, the encoder sets this minimum at half the available
765    * range.
766    */
767   AV1E_SET_QM_U = 67,
768 
769   /*!\brief Codec control function to set the min quant matrix flatness,
770    * unsigned int parameter
771    *
772    * AOM can operate with different ranges of quantisation matrices.
773    * As quantisation levels increase, the matrices get flatter. This
774    * control sets the flatness for chrome (V).
775    *
776    * By default, the encoder sets this minimum at half the available
777    * range.
778    */
779   AV1E_SET_QM_V = 68,
780 
781   /* NOTE: enum 69 unused */
782 
783   /*!\brief Codec control function to set a maximum number of tile groups,
784    * unsigned int parameter
785    *
786    * This will set the maximum number of tile groups. This will be
787    * overridden if an MTU size is set. The default value is 1.
788    */
789   AV1E_SET_NUM_TG = 70,
790 
791   /*!\brief Codec control function to set an MTU size for a tile group, unsigned
792    * int parameter
793    *
794    * This will set the maximum number of bytes in a tile group. This can be
795    * exceeded only if a single tile is larger than this amount.
796    *
797    * By default, the value is 0, in which case a fixed number of tile groups
798    * is used.
799    */
800   AV1E_SET_MTU = 71,
801 
802   /* NOTE: enum 72 unused */
803 
804   /*!\brief Codec control function to enable/disable rectangular partitions, int
805    * parameter
806    *
807    * - 0 = disable
808    * - 1 = enable (default)
809    */
810   AV1E_SET_ENABLE_RECT_PARTITIONS = 73,
811 
812   /*!\brief Codec control function to enable/disable AB partitions, int
813    * parameter
814    *
815    * - 0 = disable
816    * - 1 = enable (default)
817    */
818   AV1E_SET_ENABLE_AB_PARTITIONS = 74,
819 
820   /*!\brief Codec control function to enable/disable 1:4 and 4:1 partitions, int
821    * parameter
822    *
823    * - 0 = disable
824    * - 1 = enable (default)
825    */
826   AV1E_SET_ENABLE_1TO4_PARTITIONS = 75,
827 
828   /*!\brief Codec control function to set min partition size, int parameter
829    *
830    * min_partition_size is applied to both width and height of the partition.
831    * i.e, both width and height of a partition can not be smaller than
832    * the min_partition_size, except the partition at the picture boundary.
833    *
834    * Valid values: [4, 8, 16, 32, 64, 128]. The default value is 4 for
835    * 4x4.
836    */
837   AV1E_SET_MIN_PARTITION_SIZE = 76,
838 
839   /*!\brief Codec control function to set max partition size, int parameter
840    *
841    * max_partition_size is applied to both width and height of the partition.
842    * i.e, both width and height of a partition can not be larger than
843    * the max_partition_size.
844    *
845    * Valid values:[4, 8, 16, 32, 64, 128] The default value is 128 for
846    * 128x128.
847    */
848   AV1E_SET_MAX_PARTITION_SIZE = 77,
849 
850   /*!\brief Codec control function to turn on / off intra edge filter
851    * at sequence level, int parameter
852    *
853    * - 0 = disable
854    * - 1 = enable (default)
855    */
856   AV1E_SET_ENABLE_INTRA_EDGE_FILTER = 78,
857 
858   /*!\brief Codec control function to turn on / off frame order hint (int
859    * parameter). Affects: joint compound mode, motion field motion vector,
860    * ref frame sign bias
861    *
862    * - 0 = disable
863    * - 1 = enable (default)
864    */
865   AV1E_SET_ENABLE_ORDER_HINT = 79,
866 
867   /*!\brief Codec control function to turn on / off 64-length transforms, int
868    * parameter
869    *
870    * This will enable or disable usage of length 64 transforms in any
871    * direction.
872    *
873    * - 0 = disable
874    * - 1 = enable (default)
875    */
876   AV1E_SET_ENABLE_TX64 = 80,
877 
878   /*!\brief Codec control function to turn on / off flip and identity
879    * transforms, int parameter
880    *
881    * This will enable or disable usage of flip and identity transform
882    * types in any direction. If enabled, this includes:
883    * - FLIPADST_DCT
884    * - DCT_FLIPADST
885    * - FLIPADST_FLIPADST
886    * - ADST_FLIPADST
887    * - FLIPADST_ADST
888    * - IDTX
889    * - V_DCT
890    * - H_DCT
891    * - V_ADST
892    * - H_ADST
893    * - V_FLIPADST
894    * - H_FLIPADST
895    *
896    * Valid values:
897    * - 0 = disable
898    * - 1 = enable (default)
899    */
900   AV1E_SET_ENABLE_FLIP_IDTX = 81,
901 
902   /*!\brief Codec control function to turn on / off rectangular transforms, int
903    * parameter
904    *
905    * This will enable or disable usage of rectangular transforms. NOTE:
906    * Rectangular transforms only enabled when corresponding rectangular
907    * partitions are.
908    *
909    * - 0 = disable
910    * - 1 = enable (default)
911    */
912   AV1E_SET_ENABLE_RECT_TX = 82,
913 
914   /*!\brief Codec control function to turn on / off dist-wtd compound mode
915    * at sequence level, int parameter
916    *
917    * This will enable or disable distance-weighted compound mode.
918    * \attention If AV1E_SET_ENABLE_ORDER_HINT is 0, then this flag is forced
919    * to 0.
920    *
921    * - 0 = disable
922    * - 1 = enable (default)
923    */
924   AV1E_SET_ENABLE_DIST_WTD_COMP = 83,
925 
926   /*!\brief Codec control function to turn on / off ref frame mvs (mfmv) usage
927    * at sequence level, int parameter
928    *
929    * \attention If AV1E_SET_ENABLE_ORDER_HINT is 0, then this flag is forced
930    * to 0.
931    *
932    * - 0 = disable
933    * - 1 = enable (default)
934    */
935   AV1E_SET_ENABLE_REF_FRAME_MVS = 84,
936 
937   /*!\brief Codec control function to set temporal mv prediction
938    * enabling/disabling at frame level, int parameter
939    *
940    * \attention If AV1E_SET_ENABLE_REF_FRAME_MVS is 0, then this flag is
941    * forced to 0.
942    *
943    * - 0 = disable
944    * - 1 = enable (default)
945    */
946   AV1E_SET_ALLOW_REF_FRAME_MVS = 85,
947 
948   /*!\brief Codec control function to turn on / off dual interpolation filter
949    * for a sequence, int parameter
950    *
951    * - 0 = disable
952    * - 1 = enable
953    */
954   AV1E_SET_ENABLE_DUAL_FILTER = 86,
955 
956   /*!\brief Codec control function to turn on / off delta quantization in chroma
957    * planes for a sequence, int parameter
958    *
959    * - 0 = disable (default)
960    * - 1 = enable
961    */
962   AV1E_SET_ENABLE_CHROMA_DELTAQ = 87,
963 
964   /*!\brief Codec control function to turn on / off masked compound usage
965    * (wedge and diff-wtd compound modes) for a sequence, int parameter
966    *
967    * - 0 = disable
968    * - 1 = enable (default)
969    */
970   AV1E_SET_ENABLE_MASKED_COMP = 88,
971 
972   /*!\brief Codec control function to turn on / off one sided compound usage
973    * for a sequence, int parameter
974    *
975    * - 0 = disable
976    * - 1 = enable (default)
977    */
978   AV1E_SET_ENABLE_ONESIDED_COMP = 89,
979 
980   /*!\brief Codec control function to turn on / off interintra compound
981    * for a sequence, int parameter
982    *
983    * - 0 = disable
984    * - 1 = enable (default)
985    */
986   AV1E_SET_ENABLE_INTERINTRA_COMP = 90,
987 
988   /*!\brief Codec control function to turn on / off smooth inter-intra
989    * mode for a sequence, int parameter
990    *
991    * - 0 = disable
992    * - 1 = enable (default)
993    */
994   AV1E_SET_ENABLE_SMOOTH_INTERINTRA = 91,
995 
996   /*!\brief Codec control function to turn on / off difference weighted
997    * compound, int parameter
998    *
999    * - 0 = disable
1000    * - 1 = enable (default)
1001    */
1002   AV1E_SET_ENABLE_DIFF_WTD_COMP = 92,
1003 
1004   /*!\brief Codec control function to turn on / off interinter wedge
1005    * compound, int parameter
1006    *
1007    * - 0 = disable
1008    * - 1 = enable (default)
1009    */
1010   AV1E_SET_ENABLE_INTERINTER_WEDGE = 93,
1011 
1012   /*!\brief Codec control function to turn on / off interintra wedge
1013    * compound, int parameter
1014    *
1015    * - 0 = disable
1016    * - 1 = enable (default)
1017    */
1018   AV1E_SET_ENABLE_INTERINTRA_WEDGE = 94,
1019 
1020   /*!\brief Codec control function to turn on / off global motion usage
1021    * for a sequence, int parameter
1022    *
1023    * - 0 = disable
1024    * - 1 = enable (default)
1025    *
1026    * \note Excluded from CONFIG_REALTIME_ONLY build.
1027    */
1028   AV1E_SET_ENABLE_GLOBAL_MOTION = 95,
1029 
1030   /*!\brief Codec control function to turn on / off warped motion usage
1031    * at sequence level, int parameter
1032    *
1033    * - 0 = disable
1034    * - 1 = enable (default)
1035    *
1036    * \note Excluded from CONFIG_REALTIME_ONLY build.
1037    */
1038   AV1E_SET_ENABLE_WARPED_MOTION = 96,
1039 
1040   /*!\brief Codec control function to turn on / off warped motion usage
1041    * at frame level, int parameter
1042    *
1043    * \attention If AV1E_SET_ENABLE_WARPED_MOTION is 0, then this flag is
1044    * forced to 0.
1045    *
1046    * - 0 = disable
1047    * - 1 = enable (default)
1048    *
1049    * \note Excluded from CONFIG_REALTIME_ONLY build.
1050    */
1051   AV1E_SET_ALLOW_WARPED_MOTION = 97,
1052 
1053   /*!\brief Codec control function to turn on / off filter intra usage at
1054    * sequence level, int parameter
1055    *
1056    * - 0 = disable
1057    * - 1 = enable (default)
1058    */
1059   AV1E_SET_ENABLE_FILTER_INTRA = 98,
1060 
1061   /*!\brief Codec control function to turn on / off smooth intra modes usage,
1062    * int parameter
1063    *
1064    * This will enable or disable usage of smooth, smooth_h and smooth_v intra
1065    * modes.
1066    *
1067    * - 0 = disable
1068    * - 1 = enable (default)
1069    */
1070   AV1E_SET_ENABLE_SMOOTH_INTRA = 99,
1071 
1072   /*!\brief Codec control function to turn on / off Paeth intra mode usage, int
1073    * parameter
1074    *
1075    * - 0 = disable
1076    * - 1 = enable (default)
1077    */
1078   AV1E_SET_ENABLE_PAETH_INTRA = 100,
1079 
1080   /*!\brief Codec control function to turn on / off CFL uv intra mode usage, int
1081    * parameter
1082    *
1083    * This will enable or disable usage of chroma-from-luma intra mode.
1084    *
1085    * - 0 = disable
1086    * - 1 = enable (default)
1087    */
1088   AV1E_SET_ENABLE_CFL_INTRA = 101,
1089 
1090   /*!\brief Codec control function to turn on / off frame superresolution, int
1091    * parameter
1092    *
1093    * - 0 = disable
1094    * - 1 = enable (default)
1095    */
1096   AV1E_SET_ENABLE_SUPERRES = 102,
1097 
1098   /*!\brief Codec control function to turn on / off overlay frames for
1099    * filtered ALTREF frames, int parameter
1100    *
1101    * This will enable or disable coding of overlay frames for filtered ALTREF
1102    * frames. When set to 0, overlay frames are not used but show existing frame
1103    * is used to display the filtered ALTREF frame as is. As a result the decoded
1104    * frame rate remains the same as the display frame rate. The default is 1.
1105    */
1106   AV1E_SET_ENABLE_OVERLAY = 103,
1107 
1108   /*!\brief Codec control function to turn on/off palette mode, int parameter */
1109   AV1E_SET_ENABLE_PALETTE = 104,
1110 
1111   /*!\brief Codec control function to turn on/off intra block copy mode, int
1112      parameter */
1113   AV1E_SET_ENABLE_INTRABC = 105,
1114 
1115   /*!\brief Codec control function to turn on/off intra angle delta, int
1116      parameter */
1117   AV1E_SET_ENABLE_ANGLE_DELTA = 106,
1118 
1119   /*!\brief Codec control function to set the delta q mode, unsigned int
1120    * parameter
1121    *
1122    * AV1 supports a delta q mode feature, that allows modulating q per
1123    * superblock.
1124    *
1125    * - 0 = deltaq signaling off
1126    * - 1 = use modulation to maximize objective quality (default)
1127    * - 2 = use modulation for local test
1128    * - 3 = use modulation for key frame perceptual quality optimization
1129    * - 4 = use modulation for user rating based perceptual quality optimization
1130    */
1131   AV1E_SET_DELTAQ_MODE = 107,
1132 
1133   /*!\brief Codec control function to turn on/off loopfilter modulation
1134    * when delta q modulation is enabled, unsigned int parameter.
1135    *
1136    * \attention AV1 only supports loopfilter modulation when delta q
1137    * modulation is enabled as well.
1138    */
1139   AV1E_SET_DELTALF_MODE = 108,
1140 
1141   /*!\brief Codec control function to set the single tile decoding mode,
1142    * unsigned int parameter
1143    *
1144    * \attention Only applicable if large scale tiling is on.
1145    *
1146    * - 0 = single tile decoding is off
1147    * - 1 = single tile decoding is on (default)
1148    */
1149   AV1E_SET_SINGLE_TILE_DECODING = 109,
1150 
1151   /*!\brief Codec control function to enable the extreme motion vector unit
1152    * test, unsigned int parameter
1153    *
1154    * - 0 = off
1155    * - 1 = MAX_EXTREME_MV
1156    * - 2 = MIN_EXTREME_MV
1157    *
1158    * \note This is only used in motion vector unit test.
1159    */
1160   AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST = 110,
1161 
1162   /*!\brief Codec control function to signal picture timing info in the
1163    * bitstream, aom_timing_info_type_t parameter. Default is
1164    * AOM_TIMING_UNSPECIFIED.
1165    */
1166   AV1E_SET_TIMING_INFO_TYPE = 111,
1167 
1168   /*!\brief Codec control function to add film grain parameters (one of several
1169    * preset types) info in the bitstream, int parameter
1170    *
1171    Valid range: 0..16, 0 is unknown, 1..16 are test vectors
1172    */
1173   AV1E_SET_FILM_GRAIN_TEST_VECTOR = 112,
1174 
1175   /*!\brief Codec control function to set the path to the film grain parameters,
1176    * const char* parameter
1177    */
1178   AV1E_SET_FILM_GRAIN_TABLE = 113,
1179 
1180   /*!\brief Sets the noise level, int parameter */
1181   AV1E_SET_DENOISE_NOISE_LEVEL = 114,
1182 
1183   /*!\brief Sets the denoisers block size, unsigned int parameter */
1184   AV1E_SET_DENOISE_BLOCK_SIZE = 115,
1185 
1186   /*!\brief Sets the chroma subsampling x value, unsigned int parameter */
1187   AV1E_SET_CHROMA_SUBSAMPLING_X = 116,
1188 
1189   /*!\brief Sets the chroma subsampling y value, unsigned int parameter */
1190   AV1E_SET_CHROMA_SUBSAMPLING_Y = 117,
1191 
1192   /*!\brief Control to use a reduced tx type set, int parameter */
1193   AV1E_SET_REDUCED_TX_TYPE_SET = 118,
1194 
1195   /*!\brief Control to use dct only for intra modes, int parameter */
1196   AV1E_SET_INTRA_DCT_ONLY = 119,
1197 
1198   /*!\brief Control to use dct only for inter modes, int parameter */
1199   AV1E_SET_INTER_DCT_ONLY = 120,
1200 
1201   /*!\brief Control to use default tx type only for intra modes, int parameter
1202    */
1203   AV1E_SET_INTRA_DEFAULT_TX_ONLY = 121,
1204 
1205   /*!\brief Control to use adaptive quantize_b, int parameter */
1206   AV1E_SET_QUANT_B_ADAPT = 122,
1207 
1208   /*!\brief Control to select maximum height for the GF group pyramid structure,
1209    * unsigned int parameter
1210    *
1211    * Valid range: 0..5
1212    */
1213   AV1E_SET_GF_MAX_PYRAMID_HEIGHT = 123,
1214 
1215   /*!\brief Control to select maximum reference frames allowed per frame, int
1216    * parameter
1217    *
1218    * Valid range: 3..7
1219    */
1220   AV1E_SET_MAX_REFERENCE_FRAMES = 124,
1221 
1222   /*!\brief Control to use reduced set of single and compound references, int
1223      parameter */
1224   AV1E_SET_REDUCED_REFERENCE_SET = 125,
1225 
1226   /*!\brief Control to set frequency of the cost updates for coefficients,
1227    * unsigned int parameter
1228    *
1229    * - 0 = update at SB level (default)
1230    * - 1 = update at SB row level in tile
1231    * - 2 = update at tile level
1232    * - 3 = turn off
1233    */
1234   AV1E_SET_COEFF_COST_UPD_FREQ = 126,
1235 
1236   /*!\brief Control to set frequency of the cost updates for mode, unsigned int
1237    * parameter
1238    *
1239    * - 0 = update at SB level (default)
1240    * - 1 = update at SB row level in tile
1241    * - 2 = update at tile level
1242    * - 3 = turn off
1243    */
1244   AV1E_SET_MODE_COST_UPD_FREQ = 127,
1245 
1246   /*!\brief Control to set frequency of the cost updates for motion vectors,
1247    * unsigned int parameter
1248    *
1249    * - 0 = update at SB level (default)
1250    * - 1 = update at SB row level in tile
1251    * - 2 = update at tile level
1252    * - 3 = turn off
1253    */
1254   AV1E_SET_MV_COST_UPD_FREQ = 128,
1255 
1256   /*!\brief Control to set bit mask that specifies which tier each of the 32
1257    * possible operating points conforms to, unsigned int parameter
1258    *
1259    * - 0 = main tier (default)
1260    * - 1 = high tier
1261    */
1262   AV1E_SET_TIER_MASK = 129,
1263 
1264   /*!\brief Control to set minimum compression ratio, unsigned int parameter
1265    * Take integer values. If non-zero, encoder will try to keep the compression
1266    * ratio of each frame to be higher than the given value divided by 100.
1267    * E.g. 850 means minimum compression ratio of 8.5.
1268    */
1269   AV1E_SET_MIN_CR = 130,
1270 
1271   /* NOTE: enums 145-149 unused */
1272 
1273   /*!\brief Codec control function to set the layer id, aom_svc_layer_id_t*
1274    * parameter
1275    */
1276   AV1E_SET_SVC_LAYER_ID = 131,
1277 
1278   /*!\brief Codec control function to set SVC parameters, aom_svc_params_t*
1279    * parameter
1280    */
1281   AV1E_SET_SVC_PARAMS = 132,
1282 
1283   /*!\brief Codec control function to set the reference frame config,
1284    * aom_svc_ref_frame_config_t* parameter
1285    */
1286   AV1E_SET_SVC_REF_FRAME_CONFIG = 133,
1287 
1288   /*!\brief Codec control function to set the path to the VMAF model used when
1289    * tuning the encoder for VMAF, const char* parameter
1290    */
1291   AV1E_SET_VMAF_MODEL_PATH = 134,
1292 
1293   /*!\brief Codec control function to enable EXT_TILE_DEBUG in AV1 encoder,
1294    * unsigned int parameter
1295    *
1296    * - 0 = disable (default)
1297    * - 1 = enable
1298    *
1299    * \note This is only used in lightfield example test.
1300    */
1301   AV1E_ENABLE_EXT_TILE_DEBUG = 135,
1302 
1303   /*!\brief Codec control function to enable the superblock multipass unit test
1304    * in AV1 to ensure that the encoder does not leak state between different
1305    * passes. unsigned int parameter.
1306    *
1307    * - 0 = disable (default)
1308    * - 1 = enable
1309    *
1310    * \note This is only used in sb_multipass unit test.
1311    */
1312   AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST = 136,
1313 
1314   /*!\brief Control to select minimum height for the GF group pyramid structure,
1315    * unsigned int parameter
1316    *
1317    * Valid values: 0..5
1318    */
1319   AV1E_SET_GF_MIN_PYRAMID_HEIGHT = 137,
1320 
1321   /*!\brief Control to set average complexity of the corpus in the case of
1322    * single pass vbr based on LAP, unsigned int parameter
1323    */
1324   AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP = 138,
1325 
1326   /*!\brief Control to get baseline gf interval
1327    */
1328   AV1E_GET_BASELINE_GF_INTERVAL = 139,
1329 
1330   /*\brief Control to set encoding the denoised frame from denoise-noise-level
1331    *
1332    * - 0 = disabled/encode the original frame
1333    * - 1 = enabled/encode the denoised frame (default)
1334    */
1335   AV1E_SET_ENABLE_DNL_DENOISING = 140,
1336 
1337   /*!\brief Codec control function to turn on / off D45 to D203 intra mode
1338    * usage, int parameter
1339    *
1340    * This will enable or disable usage of D45 to D203 intra modes, which are a
1341    * subset of directional modes. This control has no effect if directional
1342    * modes are disabled (AV1E_SET_ENABLE_DIRECTIONAL_INTRA set to 0).
1343    *
1344    * - 0 = disable
1345    * - 1 = enable (default)
1346    */
1347   AV1E_SET_ENABLE_DIAGONAL_INTRA = 141,
1348 
1349   /*!\brief Control to set frequency of the cost updates for intrabc motion
1350    * vectors, unsigned int parameter
1351    *
1352    * - 0 = update at SB level (default)
1353    * - 1 = update at SB row level in tile
1354    * - 2 = update at tile level
1355    * - 3 = turn off
1356    */
1357   AV1E_SET_DV_COST_UPD_FREQ = 142,
1358 
1359   /*!\brief Codec control to set the path for partition stats read and write.
1360    * const char * parameter.
1361    */
1362   AV1E_SET_PARTITION_INFO_PATH = 143,
1363 
1364   /*!\brief Codec control to use an external partition model
1365    * A set of callback functions is passed through this control
1366    * to let the encoder encode with given partitions.
1367    */
1368   AV1E_SET_EXTERNAL_PARTITION = 144,
1369 
1370   /*!\brief Codec control function to turn on / off directional intra mode
1371    * usage, int parameter
1372    *
1373    * - 0 = disable
1374    * - 1 = enable (default)
1375    */
1376   AV1E_SET_ENABLE_DIRECTIONAL_INTRA = 145,
1377 
1378   /*!\brief Control to turn on / off transform size search.
1379    * Note: it can not work with non RD pick mode in real-time encoding,
1380    * where the max transform size is only 16x16.
1381    * It will be ignored if non RD pick mode is set.
1382    *
1383    * - 0 = disable, transforms always have the largest possible size
1384    * - 1 = enable, search for the best transform size for each block (default)
1385    */
1386   AV1E_SET_ENABLE_TX_SIZE_SEARCH = 146,
1387 
1388   /*!\brief Codec control function to set reference frame compound prediction.
1389    * aom_svc_ref_frame_comp_pred_t* parameter
1390    */
1391   AV1E_SET_SVC_REF_FRAME_COMP_PRED = 147,
1392 
1393   /*!\brief Set --deltaq-mode strength.
1394    *
1395    * Valid range: [0, 1000]
1396    */
1397   AV1E_SET_DELTAQ_STRENGTH = 148,
1398 
1399   /*!\brief Codec control to control loop filter
1400    *
1401    * - 0 = Loop filter is disabled for all frames
1402    * - 1 = Loop filter is enabled for all frames
1403    * - 2 = Loop filter is disabled for non-reference frames
1404    * - 3 = Loop filter is disabled for the frames with low motion
1405    */
1406   AV1E_SET_LOOPFILTER_CONTROL = 149,
1407 
1408   /*!\brief Codec control function to get the loopfilter chosen by the encoder,
1409    * int* parameter
1410    */
1411   AOME_GET_LOOPFILTER_LEVEL = 150,
1412 
1413   /*!\brief Codec control to automatically turn off several intra coding tools,
1414    * unsigned int parameter
1415    * - 0 = do not use the feature
1416    * - 1 = enable the automatic decision to turn off several intra tools
1417    */
1418   AV1E_SET_AUTO_INTRA_TOOLS_OFF = 151,
1419 
1420   /*!\brief Codec control function to set flag for rate control used by external
1421    * encoders.
1422    * - 1 = Enable rate control for external encoders. This will disable content
1423    * dependency in rate control and cyclic refresh.
1424    * - 0 = Default. Disable rate control for external encoders.
1425    */
1426   AV1E_SET_RTC_EXTERNAL_RC = 152,
1427 
1428   /*!\brief Codec control function to enable frame parallel multi-threading
1429    * of the encoder, unsigned int parameter
1430    *
1431    * - 0 = disable (default)
1432    * - 1 = enable
1433    */
1434   AV1E_SET_FP_MT = 153,
1435 
1436   /*!\brief Codec control to enable actual frame parallel encode or
1437    * simulation of frame parallel encode in FPMT unit test, unsigned int
1438    * parameter
1439    *
1440    * - 0 = simulate frame parallel encode
1441    * - 1 = actual frame parallel encode (default)
1442    *
1443    * \note This is only used in FPMT unit test.
1444    */
1445   AV1E_SET_FP_MT_UNIT_TEST = 154,
1446 
1447   /*!\brief Codec control function to get the target sequence level index for
1448    * each operating point. int* parameter. There can be at most 32 operating
1449    * points. The results will be written into a provided integer array of
1450    * sufficient size. If a target level is not set, the result will be 31.
1451    * Please refer to https://aomediacodec.github.io/av1-spec/#levels for more
1452    * details on level definitions and indices.
1453    */
1454   AV1E_GET_TARGET_SEQ_LEVEL_IDX = 155,
1455 
1456   /*!\brief Codec control function to get the number of operating points. int*
1457    * parameter.
1458    */
1459   AV1E_GET_NUM_OPERATING_POINTS = 156,
1460 
1461   /*!\brief Codec control function to skip the application of post-processing
1462    * filters on reconstructed frame, unsigned int parameter
1463    *
1464    * - 0 = disable (default)
1465    * - 1 = enable
1466    *
1467    * \attention For this value to be used aom_codec_enc_cfg_t::g_usage
1468    *            must be set to AOM_USAGE_ALL_INTRA.
1469    */
1470   AV1E_SET_SKIP_POSTPROC_FILTERING = 157,
1471 
1472   /*!\brief Codec control function to enable the superblock level
1473    * qp sweep in AV1 to ensure that end-to-end test runs well,
1474    * unsigned int parameter.
1475    *
1476    * - 0 = disable (default)
1477    * - 1 = enable
1478    *
1479    * \note This is only used in sb_qp_sweep unit test.
1480    */
1481   AV1E_ENABLE_SB_QP_SWEEP = 158,
1482 
1483   /*!\brief Codec control to set quantizer for the next frame, int parameter.
1484    *
1485    * - Valid range [0, 63]
1486    *
1487    * This will turn off cyclic refresh. Only applicable to 1-pass.
1488    */
1489   AV1E_SET_QUANTIZER_ONE_PASS = 159,
1490 
1491   /*!\brief Codec control to enable the rate distribution guided delta
1492    * quantization in all intra mode, unsigned int parameter
1493    *
1494    * - 0 = disable (default)
1495    * - 1 = enable
1496    *
1497    * \attention This feature requires --deltaq-mode=3, also an input file
1498    *            which contains rate distribution for each 16x16 block,
1499    *            passed in by --rate-distribution-info=rate_distribution.txt.
1500    */
1501   AV1E_ENABLE_RATE_GUIDE_DELTAQ = 160,
1502 
1503   /*!\brief Codec control to set the input file for rate distribution used
1504    * in all intra mode, const char * parameter
1505    * The input should be the name of a text file, which
1506    * contains (rows x cols) float values separated by space.
1507    * Each float value represent the number of bits for each 16x16 block.
1508    * rows = (frame_height + 15) / 16
1509    * cols = (frame_width + 15) / 16
1510    *
1511    * \attention This feature requires --enable-rate-guide-deltaq=1.
1512    */
1513   AV1E_SET_RATE_DISTRIBUTION_INFO = 161,
1514 
1515   /*!\brief Codec control to get the CDEF strength for Y / luma plane,
1516    * int * parameter.
1517    * Returns an integer array of CDEF_MAX_STRENGTHS elements.
1518    */
1519   AV1E_GET_LUMA_CDEF_STRENGTH = 162,
1520 
1521   /*!\brief Codec control to set the target bitrate in kilobits per second,
1522    * unsigned int parameter. For 1 pass CBR mode, single layer encoding.
1523    * This controls replaces the call aom_codec_enc_config_set(&codec, &cfg)
1524    * when only target bitrate is changed, and so is much cheaper as it
1525    * bypasses a lot of unneeded code checks.
1526    */
1527   AV1E_SET_BITRATE_ONE_PASS_CBR = 163,
1528 
1529   /*!\brief Codec control to set the maximum number of consecutive frame drops,
1530    * in units of frames, allowed for the frame dropper in 1 pass
1531    * CBR mode, int parameter. Value of zero has no effect.
1532    * \deprecated Use the new control AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR.
1533    */
1534   AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR = 164,
1535 
1536   /*!\brief Codec control to set the frame drop mode for SVC,
1537    * unsigned int parameter. The valid values are constants of the
1538    * AOM_SVC_FRAME_DROP_MODE enum: AOM_LAYER_DROP or AOM_FULL_SUPERFRAME_DROP.
1539    */
1540   AV1E_SET_SVC_FRAME_DROP_MODE = 165,
1541 
1542   /*!\brief Codec control to set auto tiling, unsigned int parameter.
1543    * Value of 1 means encoder will set number of tile_columns and tile_rows,
1544    * based on the number of threads and resolution. This will override any
1545    * settings set via SET_TILE_COLUMNS/ROWS. If the value is 0 no change is
1546    * done, the previous setting (if any) for tile_columns/rows is preserved.
1547    */
1548   AV1E_SET_AUTO_TILES = 166,
1549 
1550   /*!\brief Codec control to get the high motion content flag, used for
1551    * screen content realtime (RTC) encoding, int * parameter.
1552    * Returns an integer.
1553    * 1 means high motion content flag is set to 1, 0 means set to 0.
1554    */
1555   AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC = 167,
1556 
1557   /*!\brief Codec control to enable post encode frame drop for RTC encoding,
1558    * int parameter.
1559    *
1560    * Value of 1 means encoder will enable post encode drop. Default is 0 (not
1561    * enabled). Post encode drop is only allowed when frame dropping is enabled
1562    * (aom_codec_enc_cfg::rc_dropframe_thresh > 0).
1563    */
1564   AV1E_SET_POSTENCODE_DROP_RTC = 168,
1565 
1566   /*!\brief Codec control to set the maximum number of consecutive frame drops,
1567    * in units of time (milliseconds), allowed for the frame dropper in 1 pass
1568    * CBR mode, int parameter. Value of zero has no effect.
1569    */
1570   AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR = 169,
1571 
1572   // Any new encoder control IDs should be added above.
1573   // Maximum allowed encoder control ID is 229.
1574   // No encoder control ID should be added below.
1575 };
1576 
1577 /*!\brief aom 1-D scaling mode
1578  *
1579  * This set of constants define 1-D aom scaling modes
1580  */
1581 typedef enum aom_scaling_mode_1d {
1582   AOME_NORMAL = 0,
1583   AOME_FOURFIVE = 1,
1584   AOME_THREEFIVE = 2,
1585   AOME_THREEFOUR = 3,
1586   AOME_ONEFOUR = 4,
1587   AOME_ONEEIGHT = 5,
1588   AOME_ONETWO = 6,
1589   AOME_TWOTHREE = 7,
1590   AOME_ONETHREE = 8
1591 } AOM_SCALING_MODE;
1592 
1593 /*!\brief Max number of segments
1594  *
1595  * This is the limit of number of segments allowed within a frame.
1596  *
1597  * Currently same as "MAX_SEGMENTS" in AV1, the maximum that AV1 supports.
1598  *
1599  */
1600 #define AOM_MAX_SEGMENTS 8
1601 
1602 /*!\brief  aom region of interest map
1603  *
1604  * These defines the data structures for the region of interest map
1605  *
1606  * TODO(yaowu): create a unit test for ROI map related APIs
1607  *
1608  */
1609 typedef struct aom_roi_map {
1610   /*! An id between 0 and 7 for each 8x8 region within a frame. */
1611   unsigned char *roi_map;
1612   unsigned int rows;              /**< Number of rows. */
1613   unsigned int cols;              /**< Number of columns. */
1614   int delta_q[AOM_MAX_SEGMENTS];  /**< Quantizer deltas. */
1615   int delta_lf[AOM_MAX_SEGMENTS]; /**< Loop filter deltas. */
1616   /*! Static breakout threshold for each segment. */
1617   unsigned int static_threshold[AOM_MAX_SEGMENTS];
1618 } aom_roi_map_t;
1619 
1620 /*!\brief  aom active region map
1621  *
1622  * These defines the data structures for active region map
1623  *
1624  */
1625 
1626 typedef struct aom_active_map {
1627   /*!\brief specify an on (1) or off (0) each 16x16 region within a frame */
1628   unsigned char *active_map;
1629   unsigned int rows; /**< number of rows */
1630   unsigned int cols; /**< number of cols */
1631 } aom_active_map_t;
1632 
1633 /*!\brief  aom image scaling mode
1634  *
1635  * This defines the data structure for image scaling mode
1636  *
1637  */
1638 typedef struct aom_scaling_mode {
1639   AOM_SCALING_MODE h_scaling_mode; /**< horizontal scaling mode */
1640   AOM_SCALING_MODE v_scaling_mode; /**< vertical scaling mode   */
1641 } aom_scaling_mode_t;
1642 
1643 /*!brief AV1 encoder content type */
1644 typedef enum {
1645   AOM_CONTENT_DEFAULT,
1646   AOM_CONTENT_SCREEN,
1647   AOM_CONTENT_FILM,
1648   AOM_CONTENT_INVALID
1649 } aom_tune_content;
1650 
1651 /*!brief AV1 encoder timing info type signaling */
1652 typedef enum {
1653   AOM_TIMING_UNSPECIFIED,
1654   AOM_TIMING_EQUAL,
1655   AOM_TIMING_DEC_MODEL
1656 } aom_timing_info_type_t;
1657 
1658 /*!\brief Model tuning parameters
1659  *
1660  * Changes the encoder to tune for certain types of input material.
1661  *
1662  */
1663 typedef enum {
1664   AOM_TUNE_PSNR = 0,
1665   AOM_TUNE_SSIM = 1,
1666   /* NOTE: enums 2 and 3 unused */
1667   AOM_TUNE_VMAF_WITH_PREPROCESSING = 4,
1668   AOM_TUNE_VMAF_WITHOUT_PREPROCESSING = 5,
1669   AOM_TUNE_VMAF_MAX_GAIN = 6,
1670   AOM_TUNE_VMAF_NEG_MAX_GAIN = 7,
1671   AOM_TUNE_BUTTERAUGLI = 8,
1672   AOM_TUNE_VMAF_SALIENCY_MAP = 9,
1673 } aom_tune_metric;
1674 
1675 /*!\brief Distortion metric to use for RD optimization.
1676  *
1677  * Changes the encoder to use a different distortion metric for RD search. Note
1678  * that this value operates on a "lower level" compared to aom_tune_metric - it
1679  * affects the distortion metric inside a block, while aom_tune_metric only
1680  * affects RD across blocks.
1681  *
1682  */
1683 typedef enum {
1684   // Use PSNR for in-block rate-distortion optimization.
1685   AOM_DIST_METRIC_PSNR,
1686   // Use quantization matrix-weighted PSNR for in-block rate-distortion
1687   // optimization. If --enable-qm=1 is not specified, this falls back to
1688   // behaving in the same way as AOM_DIST_METRIC_PSNR.
1689   AOM_DIST_METRIC_QM_PSNR,
1690 } aom_dist_metric;
1691 
1692 #define AOM_MAX_LAYERS 32   /**< Max number of layers */
1693 #define AOM_MAX_SS_LAYERS 4 /**< Max number of spatial layers */
1694 #define AOM_MAX_TS_LAYERS 8 /**< Max number of temporal layers */
1695 
1696 /*!brief Struct for spatial and temporal layer ID */
1697 typedef struct aom_svc_layer_id {
1698   int spatial_layer_id;  /**< Spatial layer ID */
1699   int temporal_layer_id; /**< Temporal layer ID */
1700 } aom_svc_layer_id_t;
1701 
1702 /*!brief Parameter type for SVC
1703  *
1704  * In the arrays of size AOM_MAX_LAYERS, the index for spatial layer `sl` and
1705  * temporal layer `tl` is sl * number_temporal_layers + tl.
1706  *
1707  */
1708 typedef struct aom_svc_params {
1709   int number_spatial_layers;                 /**< Number of spatial layers */
1710   int number_temporal_layers;                /**< Number of temporal layers */
1711   int max_quantizers[AOM_MAX_LAYERS];        /**< Max Q for each layer */
1712   int min_quantizers[AOM_MAX_LAYERS];        /**< Min Q for each layer */
1713   int scaling_factor_num[AOM_MAX_SS_LAYERS]; /**< Scaling factor-numerator */
1714   int scaling_factor_den[AOM_MAX_SS_LAYERS]; /**< Scaling factor-denominator */
1715   /*! Target bitrate for each layer, in kilobits per second */
1716   int layer_target_bitrate[AOM_MAX_LAYERS];
1717   /*! Frame rate factor for each temporal layer */
1718   int framerate_factor[AOM_MAX_TS_LAYERS];
1719 } aom_svc_params_t;
1720 
1721 /*!brief Parameters for setting ref frame config */
1722 typedef struct aom_svc_ref_frame_config {
1723   // Three arrays need to be set: reference[], ref_id[], refresh[].
1724   // reference[i]: is a boolean flag to indicate which of the 7 possible
1725   // references are used for prediction. Values are 0 (not used as reference)
1726   // or 1 (use as reference). The index 0 - 6 refers to the references:
1727   // last(0), last2(1), last3(2), golden(3), bwdref(4), altref2(5), altref(6).
1728   // ref_idx[i]: maps a reference to one of the 8 buffers slots, values are
1729   // 0 - 7. The ref_idx for a unused reference (reference[i] = 1, and not used
1730   // for refresh, see below) can be set to the ref_idx of the first reference
1731   // used (usually LAST).
1732   // refresh[i] is a boolean flag to indicate if a buffer is updated/refreshed
1733   // with the current encoded frame. Values are 0 (no refresh) or 1 (refresh).
1734   // The refresh is done internally by looking at the ref_idx[j], for j = 0 - 6,
1735   // so to refresh a buffer slot (i) a reference must be mapped to that slot
1736   // (i = ref_idx[j]).
1737   // Examples for usage (for RTC encoding) are in: examples/svc_encoder_rtc.c.
1738   int reference[7]; /**< Reference flag for each of the 7 references. */
1739   /*! Buffer slot index (0..7) for each of 7 references indexed above. */
1740   int ref_idx[7];
1741   int refresh[8]; /**< Refresh flag for each of the 8 buffer slots. */
1742 } aom_svc_ref_frame_config_t;
1743 
1744 /*!brief Parameters for setting ref frame compound prediction */
1745 typedef struct aom_svc_ref_frame_comp_pred {
1746   // Use compound prediction for the ref_frame pairs GOLDEN_LAST (0),
1747   // LAST2_LAST (1), and ALTREF_LAST (2).
1748   int use_comp_pred[3]; /**<Compound reference flag. */
1749 } aom_svc_ref_frame_comp_pred_t;
1750 
1751 /*!brief Frame drop modes for spatial/quality layer SVC */
1752 typedef enum {
1753   AOM_LAYER_DROP,           /**< Any spatial layer can drop. */
1754   AOM_FULL_SUPERFRAME_DROP, /**< Only full superframe can drop. */
1755 } AOM_SVC_FRAME_DROP_MODE;
1756 
1757 /*!\cond */
1758 /*!\brief Encoder control function parameter type
1759  *
1760  * Defines the data types that AOME/AV1E control functions take.
1761  *
1762  * \note Additional common controls are defined in aom.h.
1763  *
1764  * \note For each control ID "X", a macro-define of
1765  * AOM_CTRL_X is provided. It is used at compile time to determine
1766  * if the control ID is supported by the libaom library available,
1767  * when the libaom version cannot be controlled.
1768  */
1769 AOM_CTRL_USE_TYPE(AOME_USE_REFERENCE, int)
1770 #define AOM_CTRL_AOME_USE_REFERENCE
1771 
1772 AOM_CTRL_USE_TYPE(AOME_SET_ROI_MAP, aom_roi_map_t *)
1773 #define AOM_CTRL_AOME_SET_ROI_MAP
1774 
1775 AOM_CTRL_USE_TYPE(AOME_SET_ACTIVEMAP, aom_active_map_t *)
1776 #define AOM_CTRL_AOME_SET_ACTIVEMAP
1777 
1778 AOM_CTRL_USE_TYPE(AOME_SET_SCALEMODE, aom_scaling_mode_t *)
1779 #define AOM_CTRL_AOME_SET_SCALEMODE
1780 
1781 AOM_CTRL_USE_TYPE(AOME_SET_SPATIAL_LAYER_ID, int)
1782 #define AOM_CTRL_AOME_SET_SPATIAL_LAYER_ID
1783 
1784 AOM_CTRL_USE_TYPE(AOME_SET_CPUUSED, int)
1785 #define AOM_CTRL_AOME_SET_CPUUSED
1786 
1787 AOM_CTRL_USE_TYPE(AOME_SET_ENABLEAUTOALTREF, unsigned int)
1788 #define AOM_CTRL_AOME_SET_ENABLEAUTOALTREF
1789 
1790 AOM_CTRL_USE_TYPE(AOME_SET_SHARPNESS, unsigned int)
1791 #define AOM_CTRL_AOME_SET_SHARPNESS
1792 
1793 AOM_CTRL_USE_TYPE(AOME_SET_STATIC_THRESHOLD, unsigned int)
1794 #define AOM_CTRL_AOME_SET_STATIC_THRESHOLD
1795 
1796 AOM_CTRL_USE_TYPE(AOME_GET_LAST_QUANTIZER, int *)
1797 #define AOM_CTRL_AOME_GET_LAST_QUANTIZER
1798 
1799 AOM_CTRL_USE_TYPE(AOME_GET_LAST_QUANTIZER_64, int *)
1800 #define AOM_CTRL_AOME_GET_LAST_QUANTIZER_64
1801 
1802 AOM_CTRL_USE_TYPE(AOME_SET_ARNR_MAXFRAMES, unsigned int)
1803 #define AOM_CTRL_AOME_SET_ARNR_MAXFRAMES
1804 
1805 AOM_CTRL_USE_TYPE(AOME_SET_ARNR_STRENGTH, unsigned int)
1806 #define AOM_CTRL_AOME_SET_ARNR_STRENGTH
1807 
1808 AOM_CTRL_USE_TYPE(AOME_SET_TUNING, int) /* aom_tune_metric */
1809 #define AOM_CTRL_AOME_SET_TUNING
1810 
1811 AOM_CTRL_USE_TYPE(AOME_SET_CQ_LEVEL, unsigned int)
1812 #define AOM_CTRL_AOME_SET_CQ_LEVEL
1813 
1814 AOM_CTRL_USE_TYPE(AOME_SET_MAX_INTRA_BITRATE_PCT, unsigned int)
1815 #define AOM_CTRL_AOME_SET_MAX_INTRA_BITRATE_PCT
1816 
1817 AOM_CTRL_USE_TYPE(AOME_SET_NUMBER_SPATIAL_LAYERS, int)
1818 #define AOM_CTRL_AOME_SET_NUMBER_SPATIAL_LAYERS
1819 // TODO(aomedia:3231): Deprecated. Remove it.
1820 #define AOME_CTRL_AOME_SET_NUMBER_SPATIAL_LAYERS
1821 
1822 AOM_CTRL_USE_TYPE(AOME_SET_MAX_INTER_BITRATE_PCT, unsigned int)
1823 #define AOM_CTRL_AV1E_SET_MAX_INTER_BITRATE_PCT
1824 // TODO(aomedia:3231): Deprecated. Remove it.
1825 #define AOM_CTRL_AOME_SET_MAX_INTER_BITRATE_PCT
1826 
1827 AOM_CTRL_USE_TYPE(AV1E_SET_GF_CBR_BOOST_PCT, unsigned int)
1828 #define AOM_CTRL_AV1E_SET_GF_CBR_BOOST_PCT
1829 
1830 AOM_CTRL_USE_TYPE(AV1E_SET_LOSSLESS, unsigned int)
1831 #define AOM_CTRL_AV1E_SET_LOSSLESS
1832 
1833 AOM_CTRL_USE_TYPE(AV1E_SET_ROW_MT, unsigned int)
1834 #define AOM_CTRL_AV1E_SET_ROW_MT
1835 
1836 AOM_CTRL_USE_TYPE(AV1E_SET_TILE_COLUMNS, unsigned int)
1837 #define AOM_CTRL_AV1E_SET_TILE_COLUMNS
1838 
1839 AOM_CTRL_USE_TYPE(AV1E_SET_TILE_ROWS, unsigned int)
1840 #define AOM_CTRL_AV1E_SET_TILE_ROWS
1841 
1842 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_TPL_MODEL, unsigned int)
1843 #define AOM_CTRL_AV1E_SET_ENABLE_TPL_MODEL
1844 
1845 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_KEYFRAME_FILTERING, unsigned int)
1846 #define AOM_CTRL_AV1E_SET_ENABLE_KEYFRAME_FILTERING
1847 
1848 AOM_CTRL_USE_TYPE(AV1E_SET_FRAME_PARALLEL_DECODING, unsigned int)
1849 #define AOM_CTRL_AV1E_SET_FRAME_PARALLEL_DECODING
1850 
1851 AOM_CTRL_USE_TYPE(AV1E_SET_ERROR_RESILIENT_MODE, int)
1852 #define AOM_CTRL_AV1E_SET_ERROR_RESILIENT_MODE
1853 
1854 AOM_CTRL_USE_TYPE(AV1E_SET_S_FRAME_MODE, int)
1855 #define AOM_CTRL_AV1E_SET_S_FRAME_MODE
1856 
1857 AOM_CTRL_USE_TYPE(AV1E_SET_AQ_MODE, unsigned int)
1858 #define AOM_CTRL_AV1E_SET_AQ_MODE
1859 
1860 AOM_CTRL_USE_TYPE(AV1E_SET_FRAME_PERIODIC_BOOST, unsigned int)
1861 #define AOM_CTRL_AV1E_SET_FRAME_PERIODIC_BOOST
1862 
1863 AOM_CTRL_USE_TYPE(AV1E_SET_NOISE_SENSITIVITY, unsigned int)
1864 #define AOM_CTRL_AV1E_SET_NOISE_SENSITIVITY
1865 
1866 AOM_CTRL_USE_TYPE(AV1E_SET_TUNE_CONTENT, int) /* aom_tune_content */
1867 #define AOM_CTRL_AV1E_SET_TUNE_CONTENT
1868 
1869 AOM_CTRL_USE_TYPE(AV1E_SET_CDF_UPDATE_MODE, unsigned int)
1870 #define AOM_CTRL_AV1E_SET_CDF_UPDATE_MODE
1871 
1872 AOM_CTRL_USE_TYPE(AV1E_SET_COLOR_PRIMARIES, int)
1873 #define AOM_CTRL_AV1E_SET_COLOR_PRIMARIES
1874 
1875 AOM_CTRL_USE_TYPE(AV1E_SET_TRANSFER_CHARACTERISTICS, int)
1876 #define AOM_CTRL_AV1E_SET_TRANSFER_CHARACTERISTICS
1877 
1878 AOM_CTRL_USE_TYPE(AV1E_SET_MATRIX_COEFFICIENTS, int)
1879 #define AOM_CTRL_AV1E_SET_MATRIX_COEFFICIENTS
1880 
1881 AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SAMPLE_POSITION, int)
1882 #define AOM_CTRL_AV1E_SET_CHROMA_SAMPLE_POSITION
1883 
1884 AOM_CTRL_USE_TYPE(AV1E_SET_MIN_GF_INTERVAL, unsigned int)
1885 #define AOM_CTRL_AV1E_SET_MIN_GF_INTERVAL
1886 
1887 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_GF_INTERVAL, unsigned int)
1888 #define AOM_CTRL_AV1E_SET_MAX_GF_INTERVAL
1889 
1890 AOM_CTRL_USE_TYPE(AV1E_GET_ACTIVEMAP, aom_active_map_t *)
1891 #define AOM_CTRL_AV1E_GET_ACTIVEMAP
1892 
1893 AOM_CTRL_USE_TYPE(AV1E_SET_COLOR_RANGE, int)
1894 #define AOM_CTRL_AV1E_SET_COLOR_RANGE
1895 
1896 AOM_CTRL_USE_TYPE(AV1E_SET_RENDER_SIZE, int *)
1897 #define AOM_CTRL_AV1E_SET_RENDER_SIZE
1898 
1899 AOM_CTRL_USE_TYPE(AV1E_SET_TARGET_SEQ_LEVEL_IDX, int)
1900 #define AOM_CTRL_AV1E_SET_TARGET_SEQ_LEVEL_IDX
1901 
1902 AOM_CTRL_USE_TYPE(AV1E_GET_SEQ_LEVEL_IDX, int *)
1903 #define AOM_CTRL_AV1E_GET_SEQ_LEVEL_IDX
1904 
1905 AOM_CTRL_USE_TYPE(AV1E_SET_SUPERBLOCK_SIZE, unsigned int)
1906 #define AOM_CTRL_AV1E_SET_SUPERBLOCK_SIZE
1907 
1908 AOM_CTRL_USE_TYPE(AOME_SET_ENABLEAUTOBWDREF, unsigned int)
1909 #define AOM_CTRL_AOME_SET_ENABLEAUTOBWDREF
1910 
1911 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CDEF, unsigned int)
1912 #define AOM_CTRL_AV1E_SET_ENABLE_CDEF
1913 
1914 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RESTORATION, unsigned int)
1915 #define AOM_CTRL_AV1E_SET_ENABLE_RESTORATION
1916 
1917 AOM_CTRL_USE_TYPE(AV1E_SET_FORCE_VIDEO_MODE, unsigned int)
1918 #define AOM_CTRL_AV1E_SET_FORCE_VIDEO_MODE
1919 
1920 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_OBMC, unsigned int)
1921 #define AOM_CTRL_AV1E_SET_ENABLE_OBMC
1922 
1923 AOM_CTRL_USE_TYPE(AV1E_SET_DISABLE_TRELLIS_QUANT, unsigned int)
1924 #define AOM_CTRL_AV1E_SET_DISABLE_TRELLIS_QUANT
1925 
1926 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_QM, unsigned int)
1927 #define AOM_CTRL_AV1E_SET_ENABLE_QM
1928 
1929 // TODO(aomedia:3231): Remove these two lines.
1930 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIST_8X8, unsigned int)
1931 #define AOM_CTRL_AV1E_SET_ENABLE_DIST_8X8
1932 
1933 AOM_CTRL_USE_TYPE(AV1E_SET_QM_MIN, unsigned int)
1934 #define AOM_CTRL_AV1E_SET_QM_MIN
1935 
1936 AOM_CTRL_USE_TYPE(AV1E_SET_QM_MAX, unsigned int)
1937 #define AOM_CTRL_AV1E_SET_QM_MAX
1938 
1939 AOM_CTRL_USE_TYPE(AV1E_SET_QM_Y, unsigned int)
1940 #define AOM_CTRL_AV1E_SET_QM_Y
1941 
1942 AOM_CTRL_USE_TYPE(AV1E_SET_QM_U, unsigned int)
1943 #define AOM_CTRL_AV1E_SET_QM_U
1944 
1945 AOM_CTRL_USE_TYPE(AV1E_SET_QM_V, unsigned int)
1946 #define AOM_CTRL_AV1E_SET_QM_V
1947 
1948 AOM_CTRL_USE_TYPE(AV1E_SET_NUM_TG, unsigned int)
1949 #define AOM_CTRL_AV1E_SET_NUM_TG
1950 
1951 AOM_CTRL_USE_TYPE(AV1E_SET_MTU, unsigned int)
1952 #define AOM_CTRL_AV1E_SET_MTU
1953 
1954 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RECT_PARTITIONS, int)
1955 #define AOM_CTRL_AV1E_SET_ENABLE_RECT_PARTITIONS
1956 
1957 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_AB_PARTITIONS, int)
1958 #define AOM_CTRL_AV1E_SET_ENABLE_AB_PARTITIONS
1959 
1960 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_1TO4_PARTITIONS, int)
1961 #define AOM_CTRL_AV1E_SET_ENABLE_1TO4_PARTITIONS
1962 
1963 AOM_CTRL_USE_TYPE(AV1E_SET_MIN_PARTITION_SIZE, int)
1964 #define AOM_CTRL_AV1E_SET_MIN_PARTITION_SIZE
1965 
1966 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_PARTITION_SIZE, int)
1967 #define AOM_CTRL_AV1E_SET_MAX_PARTITION_SIZE
1968 
1969 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTRA_EDGE_FILTER, int)
1970 #define AOM_CTRL_AV1E_SET_ENABLE_INTRA_EDGE_FILTER
1971 
1972 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ORDER_HINT, int)
1973 #define AOM_CTRL_AV1E_SET_ENABLE_ORDER_HINT
1974 
1975 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_TX64, int)
1976 #define AOM_CTRL_AV1E_SET_ENABLE_TX64
1977 
1978 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_FLIP_IDTX, int)
1979 #define AOM_CTRL_AV1E_SET_ENABLE_FLIP_IDTX
1980 
1981 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RECT_TX, int)
1982 #define AOM_CTRL_AV1E_SET_ENABLE_RECT_TX
1983 
1984 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIST_WTD_COMP, int)
1985 #define AOM_CTRL_AV1E_SET_ENABLE_DIST_WTD_COMP
1986 
1987 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_REF_FRAME_MVS, int)
1988 #define AOM_CTRL_AV1E_SET_ENABLE_REF_FRAME_MVS
1989 
1990 AOM_CTRL_USE_TYPE(AV1E_SET_ALLOW_REF_FRAME_MVS, int)
1991 #define AOM_CTRL_AV1E_SET_ALLOW_REF_FRAME_MVS
1992 
1993 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DUAL_FILTER, int)
1994 #define AOM_CTRL_AV1E_SET_ENABLE_DUAL_FILTER
1995 
1996 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CHROMA_DELTAQ, int)
1997 #define AOM_CTRL_AV1E_SET_ENABLE_CHROMA_DELTAQ
1998 
1999 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_MASKED_COMP, int)
2000 #define AOM_CTRL_AV1E_SET_ENABLE_MASKED_COMP
2001 
2002 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ONESIDED_COMP, int)
2003 #define AOM_CTRL_AV1E_SET_ENABLE_ONESIDED_COMP
2004 
2005 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTRA_COMP, int)
2006 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_COMP
2007 
2008 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SMOOTH_INTERINTRA, int)
2009 #define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTERINTRA
2010 
2011 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIFF_WTD_COMP, int)
2012 #define AOM_CTRL_AV1E_SET_ENABLE_DIFF_WTD_COMP
2013 
2014 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTER_WEDGE, int)
2015 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTER_WEDGE
2016 
2017 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTRA_WEDGE, int)
2018 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_WEDGE
2019 
2020 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_GLOBAL_MOTION, int)
2021 #define AOM_CTRL_AV1E_SET_ENABLE_GLOBAL_MOTION
2022 
2023 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_WARPED_MOTION, int)
2024 #define AOM_CTRL_AV1E_SET_ENABLE_WARPED_MOTION
2025 
2026 AOM_CTRL_USE_TYPE(AV1E_SET_ALLOW_WARPED_MOTION, int)
2027 #define AOM_CTRL_AV1E_SET_ALLOW_WARPED_MOTION
2028 
2029 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_FILTER_INTRA, int)
2030 #define AOM_CTRL_AV1E_SET_ENABLE_FILTER_INTRA
2031 
2032 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SMOOTH_INTRA, int)
2033 #define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTRA
2034 
2035 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_PAETH_INTRA, int)
2036 #define AOM_CTRL_AV1E_SET_ENABLE_PAETH_INTRA
2037 
2038 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CFL_INTRA, int)
2039 #define AOM_CTRL_AV1E_SET_ENABLE_CFL_INTRA
2040 
2041 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SUPERRES, int)
2042 #define AOM_CTRL_AV1E_SET_ENABLE_SUPERRES
2043 
2044 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_OVERLAY, int)
2045 #define AOM_CTRL_AV1E_SET_ENABLE_OVERLAY
2046 
2047 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_PALETTE, int)
2048 #define AOM_CTRL_AV1E_SET_ENABLE_PALETTE
2049 
2050 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTRABC, int)
2051 #define AOM_CTRL_AV1E_SET_ENABLE_INTRABC
2052 
2053 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ANGLE_DELTA, int)
2054 #define AOM_CTRL_AV1E_SET_ENABLE_ANGLE_DELTA
2055 
2056 AOM_CTRL_USE_TYPE(AV1E_SET_DELTAQ_MODE, unsigned int)
2057 #define AOM_CTRL_AV1E_SET_DELTAQ_MODE
2058 
2059 AOM_CTRL_USE_TYPE(AV1E_SET_DELTALF_MODE, unsigned int)
2060 #define AOM_CTRL_AV1E_SET_DELTALF_MODE
2061 
2062 AOM_CTRL_USE_TYPE(AV1E_SET_SINGLE_TILE_DECODING, unsigned int)
2063 #define AOM_CTRL_AV1E_SET_SINGLE_TILE_DECODING
2064 
2065 AOM_CTRL_USE_TYPE(AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST, unsigned int)
2066 #define AOM_CTRL_AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST
2067 
2068 AOM_CTRL_USE_TYPE(AV1E_SET_TIMING_INFO_TYPE, int) /* aom_timing_info_type_t */
2069 #define AOM_CTRL_AV1E_SET_TIMING_INFO_TYPE
2070 
2071 AOM_CTRL_USE_TYPE(AV1E_SET_FILM_GRAIN_TEST_VECTOR, int)
2072 #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TEST_VECTOR
2073 
2074 AOM_CTRL_USE_TYPE(AV1E_SET_FILM_GRAIN_TABLE, const char *)
2075 #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TABLE
2076 
2077 AOM_CTRL_USE_TYPE(AV1E_SET_DENOISE_NOISE_LEVEL, int)
2078 #define AOM_CTRL_AV1E_SET_DENOISE_NOISE_LEVEL
2079 
2080 AOM_CTRL_USE_TYPE(AV1E_SET_DENOISE_BLOCK_SIZE, unsigned int)
2081 #define AOM_CTRL_AV1E_SET_DENOISE_BLOCK_SIZE
2082 
2083 AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SUBSAMPLING_X, unsigned int)
2084 #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_X
2085 
2086 AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SUBSAMPLING_Y, unsigned int)
2087 #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_Y
2088 
2089 AOM_CTRL_USE_TYPE(AV1E_SET_REDUCED_TX_TYPE_SET, int)
2090 #define AOM_CTRL_AV1E_SET_REDUCED_TX_TYPE_SET
2091 
2092 AOM_CTRL_USE_TYPE(AV1E_SET_INTRA_DCT_ONLY, int)
2093 #define AOM_CTRL_AV1E_SET_INTRA_DCT_ONLY
2094 
2095 AOM_CTRL_USE_TYPE(AV1E_SET_INTER_DCT_ONLY, int)
2096 #define AOM_CTRL_AV1E_SET_INTER_DCT_ONLY
2097 
2098 AOM_CTRL_USE_TYPE(AV1E_SET_INTRA_DEFAULT_TX_ONLY, int)
2099 #define AOM_CTRL_AV1E_SET_INTRA_DEFAULT_TX_ONLY
2100 
2101 AOM_CTRL_USE_TYPE(AV1E_SET_QUANT_B_ADAPT, int)
2102 #define AOM_CTRL_AV1E_SET_QUANT_B_ADAPT
2103 
2104 AOM_CTRL_USE_TYPE(AV1E_SET_GF_MAX_PYRAMID_HEIGHT, unsigned int)
2105 #define AOM_CTRL_AV1E_SET_GF_MAX_PYRAMID_HEIGHT
2106 
2107 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_REFERENCE_FRAMES, int)
2108 #define AOM_CTRL_AV1E_SET_MAX_REFERENCE_FRAMES
2109 
2110 AOM_CTRL_USE_TYPE(AV1E_SET_REDUCED_REFERENCE_SET, int)
2111 #define AOM_CTRL_AV1E_SET_REDUCED_REFERENCE_SET
2112 
2113 AOM_CTRL_USE_TYPE(AV1E_SET_COEFF_COST_UPD_FREQ, unsigned int)
2114 #define AOM_CTRL_AV1E_SET_COEFF_COST_UPD_FREQ
2115 
2116 AOM_CTRL_USE_TYPE(AV1E_SET_MODE_COST_UPD_FREQ, unsigned int)
2117 #define AOM_CTRL_AV1E_SET_MODE_COST_UPD_FREQ
2118 
2119 AOM_CTRL_USE_TYPE(AV1E_SET_MV_COST_UPD_FREQ, unsigned int)
2120 #define AOM_CTRL_AV1E_SET_MV_COST_UPD_FREQ
2121 
2122 AOM_CTRL_USE_TYPE(AV1E_SET_TIER_MASK, unsigned int)
2123 #define AOM_CTRL_AV1E_SET_TIER_MASK
2124 
2125 AOM_CTRL_USE_TYPE(AV1E_SET_MIN_CR, unsigned int)
2126 #define AOM_CTRL_AV1E_SET_MIN_CR
2127 
2128 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_LAYER_ID, aom_svc_layer_id_t *)
2129 #define AOM_CTRL_AV1E_SET_SVC_LAYER_ID
2130 // TODO(aomedia:3231): Deprecated. Remove it.
2131 #define AOME_CTRL_AV1E_SET_SVC_LAYER_ID
2132 
2133 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_PARAMS, aom_svc_params_t *)
2134 #define AOM_CTRL_AV1E_SET_SVC_PARAMS
2135 // TODO(aomedia:3231): Deprecated. Remove it.
2136 #define AOME_CTRL_AV1E_SET_SVC_PARAMS
2137 
2138 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_REF_FRAME_CONFIG, aom_svc_ref_frame_config_t *)
2139 #define AOM_CTRL_AV1E_SET_SVC_REF_FRAME_CONFIG
2140 // TODO(aomedia:3231): Deprecated. Remove it.
2141 #define AOME_CTRL_AV1E_SET_SVC_REF_FRAME_CONFIG
2142 
2143 AOM_CTRL_USE_TYPE(AV1E_SET_VMAF_MODEL_PATH, const char *)
2144 #define AOM_CTRL_AV1E_SET_VMAF_MODEL_PATH
2145 
2146 AOM_CTRL_USE_TYPE(AV1E_ENABLE_EXT_TILE_DEBUG, unsigned int)
2147 #define AOM_CTRL_AV1E_ENABLE_EXT_TILE_DEBUG
2148 
2149 AOM_CTRL_USE_TYPE(AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST, unsigned int)
2150 #define AOM_CTRL_AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST
2151 
2152 AOM_CTRL_USE_TYPE(AV1E_SET_GF_MIN_PYRAMID_HEIGHT, unsigned int)
2153 #define AOM_CTRL_AV1E_SET_GF_MIN_PYRAMID_HEIGHT
2154 
2155 AOM_CTRL_USE_TYPE(AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP, unsigned int)
2156 #define AOM_CTRL_AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP
2157 
2158 AOM_CTRL_USE_TYPE(AV1E_GET_BASELINE_GF_INTERVAL, int *)
2159 #define AOM_CTRL_AV1E_GET_BASELINE_GF_INTERVAL
2160 
2161 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DNL_DENOISING, int)
2162 #define AOM_CTRL_AV1E_SET_ENABLE_DNL_DENOISING
2163 
2164 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIAGONAL_INTRA, int)
2165 #define AOM_CTRL_AV1E_SET_ENABLE_DIAGONAL_INTRA
2166 
2167 AOM_CTRL_USE_TYPE(AV1E_SET_DV_COST_UPD_FREQ, unsigned int)
2168 #define AOM_CTRL_AV1E_SET_DV_COST_UPD_FREQ
2169 
2170 AOM_CTRL_USE_TYPE(AV1E_SET_PARTITION_INFO_PATH, const char *)
2171 #define AOM_CTRL_AV1E_SET_PARTITION_INFO_PATH
2172 
2173 AOM_CTRL_USE_TYPE(AV1E_SET_EXTERNAL_PARTITION, aom_ext_part_funcs_t *)
2174 #define AOM_CTRL_AV1E_SET_EXTERNAL_PARTITION
2175 
2176 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIRECTIONAL_INTRA, int)
2177 #define AOM_CTRL_AV1E_SET_ENABLE_DIRECTIONAL_INTRA
2178 
2179 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_TX_SIZE_SEARCH, int)
2180 #define AOM_CTRL_AV1E_SET_ENABLE_TX_SIZE_SEARCH
2181 
2182 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_REF_FRAME_COMP_PRED,
2183                   aom_svc_ref_frame_comp_pred_t *)
2184 #define AOM_CTRL_AV1E_SET_SVC_REF_FRAME_COMP_PRED
2185 // TODO(aomedia:3231): Deprecated. Remove it.
2186 #define AOME_CTRL_AV1E_SET_SVC_REF_FRAME_COMP_PRED
2187 
2188 AOM_CTRL_USE_TYPE(AV1E_SET_DELTAQ_STRENGTH, unsigned int)
2189 #define AOM_CTRL_AV1E_SET_DELTAQ_STRENGTH
2190 
2191 AOM_CTRL_USE_TYPE(AV1E_SET_LOOPFILTER_CONTROL, int)
2192 #define AOM_CTRL_AV1E_SET_LOOPFILTER_CONTROL
2193 
2194 AOM_CTRL_USE_TYPE(AOME_GET_LOOPFILTER_LEVEL, int *)
2195 #define AOM_CTRL_AOME_GET_LOOPFILTER_LEVEL
2196 
2197 AOM_CTRL_USE_TYPE(AV1E_SET_AUTO_INTRA_TOOLS_OFF, unsigned int)
2198 #define AOM_CTRL_AV1E_SET_AUTO_INTRA_TOOLS_OFF
2199 
2200 AOM_CTRL_USE_TYPE(AV1E_SET_RTC_EXTERNAL_RC, int)
2201 #define AOM_CTRL_AV1E_SET_RTC_EXTERNAL_RC
2202 
2203 AOM_CTRL_USE_TYPE(AV1E_SET_FP_MT, unsigned int)
2204 #define AOM_CTRL_AV1E_SET_FP_MT
2205 
2206 AOM_CTRL_USE_TYPE(AV1E_SET_FP_MT_UNIT_TEST, unsigned int)
2207 #define AOM_CTRL_AV1E_SET_FP_MT_UNIT_TEST
2208 
2209 AOM_CTRL_USE_TYPE(AV1E_GET_TARGET_SEQ_LEVEL_IDX, int *)
2210 #define AOM_CTRL_AV1E_GET_TARGET_SEQ_LEVEL_IDX
2211 
2212 AOM_CTRL_USE_TYPE(AV1E_GET_NUM_OPERATING_POINTS, int *)
2213 #define AOM_CTRL_AV1E_GET_NUM_OPERATING_POINTS
2214 
2215 AOM_CTRL_USE_TYPE(AV1E_SET_SKIP_POSTPROC_FILTERING, unsigned int)
2216 #define AOM_CTRL_AV1E_SET_SKIP_POSTPROC_FILTERING
2217 
2218 AOM_CTRL_USE_TYPE(AV1E_ENABLE_SB_QP_SWEEP, unsigned int)
2219 #define AOM_CTRL_AV1E_ENABLE_SB_QP_SWEEP
2220 
2221 AOM_CTRL_USE_TYPE(AV1E_SET_QUANTIZER_ONE_PASS, int)
2222 #define AOM_CTRL_AV1E_SET_QUANTIZER_ONE_PASS
2223 
2224 AOM_CTRL_USE_TYPE(AV1E_ENABLE_RATE_GUIDE_DELTAQ, unsigned int)
2225 #define AOM_CTRL_AV1E_ENABLE_RATE_GUIDE_DELTAQ
2226 
2227 AOM_CTRL_USE_TYPE(AV1E_SET_RATE_DISTRIBUTION_INFO, const char *)
2228 #define AOM_CTRL_AV1E_SET_RATE_DISTRIBUTION_INFO
2229 
2230 AOM_CTRL_USE_TYPE(AV1E_GET_LUMA_CDEF_STRENGTH, int *)
2231 #define AOM_CTRL_AV1E_GET_LUMA_CDEF_STRENGTH
2232 
2233 AOM_CTRL_USE_TYPE(AV1E_SET_BITRATE_ONE_PASS_CBR, unsigned int)
2234 #define AOM_CTRL_AV1E_SET_BITRATE_ONE_PASS_CBR
2235 
2236 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_FRAME_DROP_MODE, unsigned int)
2237 #define AOM_CTRL_AV1E_SET_SVC_FRAME_DROP_MODE
2238 
2239 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR, int)
2240 #define AOM_CTRL_AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR
2241 
2242 AOM_CTRL_USE_TYPE(AV1E_SET_AUTO_TILES, unsigned int)
2243 #define AOM_CTRL_AV1E_SET_AUTO_TILES
2244 
2245 AOM_CTRL_USE_TYPE(AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC, int *)
2246 #define AOM_CTRL_AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC
2247 
2248 AOM_CTRL_USE_TYPE(AV1E_SET_POSTENCODE_DROP_RTC, int)
2249 #define AOM_CTRL_AV1E_SET_POSTENCODE_DROP_RTC
2250 
2251 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR, int)
2252 #define AOM_CTRL_AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR
2253 
2254 /*!\endcond */
2255 /*! @} - end defgroup aom_encoder */
2256 #ifdef __cplusplus
2257 }  // extern "C"
2258 #endif
2259 
2260 #endif  // AOM_AOM_AOMCX_H_
2261