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