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