1*77c1e3ccSAndroid Build Coastguard Worker /* 2*77c1e3ccSAndroid Build Coastguard Worker * Copyright (c) 2021, Alliance for Open Media. All rights reserved. 3*77c1e3ccSAndroid Build Coastguard Worker * 4*77c1e3ccSAndroid Build Coastguard Worker * This source code is subject to the terms of the BSD 2 Clause License and 5*77c1e3ccSAndroid Build Coastguard Worker * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License 6*77c1e3ccSAndroid Build Coastguard Worker * was not distributed with this source code in the LICENSE file, you can 7*77c1e3ccSAndroid Build Coastguard Worker * obtain it at www.aomedia.org/license/software. If the Alliance for Open 8*77c1e3ccSAndroid Build Coastguard Worker * Media Patent License 1.0 was not distributed with this source code in the 9*77c1e3ccSAndroid Build Coastguard Worker * PATENTS file, you can obtain it at www.aomedia.org/license/patent. 10*77c1e3ccSAndroid Build Coastguard Worker */ 11*77c1e3ccSAndroid Build Coastguard Worker #ifndef AOM_AV1_ARG_DEFS_H_ 12*77c1e3ccSAndroid Build Coastguard Worker #define AOM_AV1_ARG_DEFS_H_ 13*77c1e3ccSAndroid Build Coastguard Worker 14*77c1e3ccSAndroid Build Coastguard Worker #ifdef __cplusplus 15*77c1e3ccSAndroid Build Coastguard Worker extern "C" { 16*77c1e3ccSAndroid Build Coastguard Worker #endif 17*77c1e3ccSAndroid Build Coastguard Worker 18*77c1e3ccSAndroid Build Coastguard Worker #include "config/aom_config.h" 19*77c1e3ccSAndroid Build Coastguard Worker #include "common/args_helper.h" 20*77c1e3ccSAndroid Build Coastguard Worker #if CONFIG_WEBM_IO 21*77c1e3ccSAndroid Build Coastguard Worker #include "common/webmenc.h" 22*77c1e3ccSAndroid Build Coastguard Worker #endif 23*77c1e3ccSAndroid Build Coastguard Worker #include "aom/aomcx.h" 24*77c1e3ccSAndroid Build Coastguard Worker 25*77c1e3ccSAndroid Build Coastguard Worker enum TestDecodeFatality { 26*77c1e3ccSAndroid Build Coastguard Worker TEST_DECODE_OFF, 27*77c1e3ccSAndroid Build Coastguard Worker TEST_DECODE_FATAL, 28*77c1e3ccSAndroid Build Coastguard Worker TEST_DECODE_WARN, 29*77c1e3ccSAndroid Build Coastguard Worker }; 30*77c1e3ccSAndroid Build Coastguard Worker 31*77c1e3ccSAndroid Build Coastguard Worker typedef struct av1_codec_arg_definitions { 32*77c1e3ccSAndroid Build Coastguard Worker arg_def_t help; 33*77c1e3ccSAndroid Build Coastguard Worker arg_def_t debugmode; 34*77c1e3ccSAndroid Build Coastguard Worker arg_def_t outputfile; 35*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_nv12; 36*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_yv12; 37*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_i420; 38*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_i422; 39*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_i444; 40*77c1e3ccSAndroid Build Coastguard Worker arg_def_t codecarg; 41*77c1e3ccSAndroid Build Coastguard Worker arg_def_t passes; 42*77c1e3ccSAndroid Build Coastguard Worker arg_def_t pass_arg; 43*77c1e3ccSAndroid Build Coastguard Worker arg_def_t fpf_name; 44*77c1e3ccSAndroid Build Coastguard Worker arg_def_t limit; 45*77c1e3ccSAndroid Build Coastguard Worker arg_def_t skip; 46*77c1e3ccSAndroid Build Coastguard Worker arg_def_t good_dl; 47*77c1e3ccSAndroid Build Coastguard Worker arg_def_t rt_dl; 48*77c1e3ccSAndroid Build Coastguard Worker arg_def_t ai_dl; 49*77c1e3ccSAndroid Build Coastguard Worker arg_def_t quietarg; 50*77c1e3ccSAndroid Build Coastguard Worker arg_def_t verbosearg; 51*77c1e3ccSAndroid Build Coastguard Worker arg_def_t psnrarg; 52*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_cfg; 53*77c1e3ccSAndroid Build Coastguard Worker arg_def_t recontest; 54*77c1e3ccSAndroid Build Coastguard Worker arg_def_t framerate; 55*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_webm; 56*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_ivf; 57*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_obu; 58*77c1e3ccSAndroid Build Coastguard Worker arg_def_t q_hist_n; 59*77c1e3ccSAndroid Build Coastguard Worker arg_def_t rate_hist_n; 60*77c1e3ccSAndroid Build Coastguard Worker arg_def_t disable_warnings; 61*77c1e3ccSAndroid Build Coastguard Worker arg_def_t disable_warning_prompt; 62*77c1e3ccSAndroid Build Coastguard Worker arg_def_t bitdeptharg; 63*77c1e3ccSAndroid Build Coastguard Worker arg_def_t inbitdeptharg; 64*77c1e3ccSAndroid Build Coastguard Worker arg_def_t input_chroma_subsampling_x; 65*77c1e3ccSAndroid Build Coastguard Worker arg_def_t input_chroma_subsampling_y; 66*77c1e3ccSAndroid Build Coastguard Worker arg_def_t usage; 67*77c1e3ccSAndroid Build Coastguard Worker arg_def_t threads; 68*77c1e3ccSAndroid Build Coastguard Worker arg_def_t profile; 69*77c1e3ccSAndroid Build Coastguard Worker arg_def_t width; 70*77c1e3ccSAndroid Build Coastguard Worker arg_def_t height; 71*77c1e3ccSAndroid Build Coastguard Worker arg_def_t forced_max_frame_width; 72*77c1e3ccSAndroid Build Coastguard Worker arg_def_t forced_max_frame_height; 73*77c1e3ccSAndroid Build Coastguard Worker #if CONFIG_WEBM_IO 74*77c1e3ccSAndroid Build Coastguard Worker arg_def_t stereo_mode; 75*77c1e3ccSAndroid Build Coastguard Worker #endif 76*77c1e3ccSAndroid Build Coastguard Worker arg_def_t timebase; 77*77c1e3ccSAndroid Build Coastguard Worker arg_def_t global_error_resilient; 78*77c1e3ccSAndroid Build Coastguard Worker arg_def_t lag_in_frames; 79*77c1e3ccSAndroid Build Coastguard Worker arg_def_t large_scale_tile; 80*77c1e3ccSAndroid Build Coastguard Worker arg_def_t monochrome; 81*77c1e3ccSAndroid Build Coastguard Worker arg_def_t full_still_picture_hdr; 82*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_16bit_internal; 83*77c1e3ccSAndroid Build Coastguard Worker arg_def_t dropframe_thresh; 84*77c1e3ccSAndroid Build Coastguard Worker arg_def_t resize_mode; 85*77c1e3ccSAndroid Build Coastguard Worker arg_def_t resize_denominator; 86*77c1e3ccSAndroid Build Coastguard Worker arg_def_t resize_kf_denominator; 87*77c1e3ccSAndroid Build Coastguard Worker arg_def_t superres_mode; 88*77c1e3ccSAndroid Build Coastguard Worker arg_def_t superres_denominator; 89*77c1e3ccSAndroid Build Coastguard Worker arg_def_t superres_kf_denominator; 90*77c1e3ccSAndroid Build Coastguard Worker arg_def_t superres_qthresh; 91*77c1e3ccSAndroid Build Coastguard Worker arg_def_t superres_kf_qthresh; 92*77c1e3ccSAndroid Build Coastguard Worker arg_def_t end_usage; 93*77c1e3ccSAndroid Build Coastguard Worker arg_def_t target_bitrate; 94*77c1e3ccSAndroid Build Coastguard Worker arg_def_t min_quantizer; 95*77c1e3ccSAndroid Build Coastguard Worker arg_def_t max_quantizer; 96*77c1e3ccSAndroid Build Coastguard Worker arg_def_t undershoot_pct; 97*77c1e3ccSAndroid Build Coastguard Worker arg_def_t overshoot_pct; 98*77c1e3ccSAndroid Build Coastguard Worker arg_def_t buf_sz; 99*77c1e3ccSAndroid Build Coastguard Worker arg_def_t buf_initial_sz; 100*77c1e3ccSAndroid Build Coastguard Worker arg_def_t buf_optimal_sz; 101*77c1e3ccSAndroid Build Coastguard Worker arg_def_t bias_pct; 102*77c1e3ccSAndroid Build Coastguard Worker arg_def_t minsection_pct; 103*77c1e3ccSAndroid Build Coastguard Worker arg_def_t maxsection_pct; 104*77c1e3ccSAndroid Build Coastguard Worker arg_def_t fwd_kf_enabled; 105*77c1e3ccSAndroid Build Coastguard Worker arg_def_t kf_min_dist; 106*77c1e3ccSAndroid Build Coastguard Worker arg_def_t kf_max_dist; 107*77c1e3ccSAndroid Build Coastguard Worker arg_def_t kf_disabled; 108*77c1e3ccSAndroid Build Coastguard Worker arg_def_t sframe_dist; 109*77c1e3ccSAndroid Build Coastguard Worker arg_def_t sframe_mode; 110*77c1e3ccSAndroid Build Coastguard Worker arg_def_t save_as_annexb; 111*77c1e3ccSAndroid Build Coastguard Worker arg_def_t noise_sens; 112*77c1e3ccSAndroid Build Coastguard Worker arg_def_t sharpness; 113*77c1e3ccSAndroid Build Coastguard Worker arg_def_t static_thresh; 114*77c1e3ccSAndroid Build Coastguard Worker arg_def_t auto_altref; 115*77c1e3ccSAndroid Build Coastguard Worker arg_def_t arnr_maxframes; 116*77c1e3ccSAndroid Build Coastguard Worker arg_def_t arnr_strength; 117*77c1e3ccSAndroid Build Coastguard Worker arg_def_t tune_metric; 118*77c1e3ccSAndroid Build Coastguard Worker arg_def_t dist_metric; 119*77c1e3ccSAndroid Build Coastguard Worker arg_def_t cq_level; 120*77c1e3ccSAndroid Build Coastguard Worker arg_def_t max_intra_rate_pct; 121*77c1e3ccSAndroid Build Coastguard Worker #if CONFIG_AV1_ENCODER 122*77c1e3ccSAndroid Build Coastguard Worker arg_def_t cpu_used_av1; 123*77c1e3ccSAndroid Build Coastguard Worker arg_def_t rowmtarg; 124*77c1e3ccSAndroid Build Coastguard Worker arg_def_t fpmtarg; 125*77c1e3ccSAndroid Build Coastguard Worker arg_def_t tile_cols; 126*77c1e3ccSAndroid Build Coastguard Worker arg_def_t tile_rows; 127*77c1e3ccSAndroid Build Coastguard Worker arg_def_t auto_tiles; 128*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_tpl_model; 129*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_keyframe_filtering; 130*77c1e3ccSAndroid Build Coastguard Worker arg_def_t tile_width; 131*77c1e3ccSAndroid Build Coastguard Worker arg_def_t tile_height; 132*77c1e3ccSAndroid Build Coastguard Worker arg_def_t lossless; 133*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_cdef; 134*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_restoration; 135*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_rect_partitions; 136*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_ab_partitions; 137*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_1to4_partitions; 138*77c1e3ccSAndroid Build Coastguard Worker arg_def_t min_partition_size; 139*77c1e3ccSAndroid Build Coastguard Worker arg_def_t max_partition_size; 140*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_dual_filter; 141*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_chroma_deltaq; 142*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_intra_edge_filter; 143*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_order_hint; 144*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_tx64; 145*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_flip_idtx; 146*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_rect_tx; 147*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_dist_wtd_comp; 148*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_masked_comp; 149*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_onesided_comp; 150*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_interintra_comp; 151*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_smooth_interintra; 152*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_diff_wtd_comp; 153*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_interinter_wedge; 154*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_interintra_wedge; 155*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_global_motion; 156*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_warped_motion; 157*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_filter_intra; 158*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_smooth_intra; 159*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_paeth_intra; 160*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_cfl_intra; 161*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_directional_intra; 162*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_diagonal_intra; 163*77c1e3ccSAndroid Build Coastguard Worker arg_def_t force_video_mode; 164*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_obmc; 165*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_overlay; 166*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_palette; 167*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_intrabc; 168*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_angle_delta; 169*77c1e3ccSAndroid Build Coastguard Worker arg_def_t disable_trellis_quant; 170*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_qm; 171*77c1e3ccSAndroid Build Coastguard Worker arg_def_t qm_min; 172*77c1e3ccSAndroid Build Coastguard Worker arg_def_t qm_max; 173*77c1e3ccSAndroid Build Coastguard Worker arg_def_t reduced_tx_type_set; 174*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_intra_dct_only; 175*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_inter_dct_only; 176*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_intra_default_tx_only; 177*77c1e3ccSAndroid Build Coastguard Worker arg_def_t quant_b_adapt; 178*77c1e3ccSAndroid Build Coastguard Worker arg_def_t coeff_cost_upd_freq; 179*77c1e3ccSAndroid Build Coastguard Worker arg_def_t mode_cost_upd_freq; 180*77c1e3ccSAndroid Build Coastguard Worker arg_def_t mv_cost_upd_freq; 181*77c1e3ccSAndroid Build Coastguard Worker arg_def_t dv_cost_upd_freq; 182*77c1e3ccSAndroid Build Coastguard Worker arg_def_t num_tg; 183*77c1e3ccSAndroid Build Coastguard Worker arg_def_t mtu_size; 184*77c1e3ccSAndroid Build Coastguard Worker arg_def_t timing_info; 185*77c1e3ccSAndroid Build Coastguard Worker #if CONFIG_TUNE_VMAF 186*77c1e3ccSAndroid Build Coastguard Worker arg_def_t vmaf_model_path; 187*77c1e3ccSAndroid Build Coastguard Worker #endif 188*77c1e3ccSAndroid Build Coastguard Worker arg_def_t partition_info_path; 189*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_rate_guide_deltaq; 190*77c1e3ccSAndroid Build Coastguard Worker arg_def_t rate_distribution_info; 191*77c1e3ccSAndroid Build Coastguard Worker arg_def_t film_grain_test; 192*77c1e3ccSAndroid Build Coastguard Worker arg_def_t film_grain_table; 193*77c1e3ccSAndroid Build Coastguard Worker #if CONFIG_DENOISE 194*77c1e3ccSAndroid Build Coastguard Worker arg_def_t denoise_noise_level; 195*77c1e3ccSAndroid Build Coastguard Worker arg_def_t denoise_block_size; 196*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_dnl_denoising; 197*77c1e3ccSAndroid Build Coastguard Worker #endif 198*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_ref_frame_mvs; 199*77c1e3ccSAndroid Build Coastguard Worker arg_def_t frame_parallel_decoding; 200*77c1e3ccSAndroid Build Coastguard Worker arg_def_t error_resilient_mode; 201*77c1e3ccSAndroid Build Coastguard Worker arg_def_t aq_mode; 202*77c1e3ccSAndroid Build Coastguard Worker arg_def_t deltaq_mode; 203*77c1e3ccSAndroid Build Coastguard Worker arg_def_t deltaq_strength; 204*77c1e3ccSAndroid Build Coastguard Worker arg_def_t deltalf_mode; 205*77c1e3ccSAndroid Build Coastguard Worker arg_def_t frame_periodic_boost; 206*77c1e3ccSAndroid Build Coastguard Worker arg_def_t gf_cbr_boost_pct; 207*77c1e3ccSAndroid Build Coastguard Worker arg_def_t max_inter_rate_pct; 208*77c1e3ccSAndroid Build Coastguard Worker arg_def_t min_gf_interval; 209*77c1e3ccSAndroid Build Coastguard Worker arg_def_t max_gf_interval; 210*77c1e3ccSAndroid Build Coastguard Worker arg_def_t gf_min_pyr_height; 211*77c1e3ccSAndroid Build Coastguard Worker arg_def_t gf_max_pyr_height; 212*77c1e3ccSAndroid Build Coastguard Worker arg_def_t max_reference_frames; 213*77c1e3ccSAndroid Build Coastguard Worker arg_def_t reduced_reference_set; 214*77c1e3ccSAndroid Build Coastguard Worker arg_def_t target_seq_level_idx; 215*77c1e3ccSAndroid Build Coastguard Worker arg_def_t set_min_cr; 216*77c1e3ccSAndroid Build Coastguard Worker arg_def_t input_color_primaries; 217*77c1e3ccSAndroid Build Coastguard Worker arg_def_t input_transfer_characteristics; 218*77c1e3ccSAndroid Build Coastguard Worker arg_def_t input_matrix_coefficients; 219*77c1e3ccSAndroid Build Coastguard Worker arg_def_t input_chroma_sample_position; 220*77c1e3ccSAndroid Build Coastguard Worker arg_def_t tune_content; 221*77c1e3ccSAndroid Build Coastguard Worker arg_def_t cdf_update_mode; 222*77c1e3ccSAndroid Build Coastguard Worker arg_def_t superblock_size; 223*77c1e3ccSAndroid Build Coastguard Worker arg_def_t set_tier_mask; 224*77c1e3ccSAndroid Build Coastguard Worker arg_def_t use_fixed_qp_offsets; 225*77c1e3ccSAndroid Build Coastguard Worker arg_def_t fixed_qp_offsets; 226*77c1e3ccSAndroid Build Coastguard Worker arg_def_t vbr_corpus_complexity_lap; 227*77c1e3ccSAndroid Build Coastguard Worker arg_def_t fwd_kf_dist; 228*77c1e3ccSAndroid Build Coastguard Worker arg_def_t enable_tx_size_search; 229*77c1e3ccSAndroid Build Coastguard Worker arg_def_t loopfilter_control; 230*77c1e3ccSAndroid Build Coastguard Worker arg_def_t two_pass_input; 231*77c1e3ccSAndroid Build Coastguard Worker arg_def_t two_pass_output; 232*77c1e3ccSAndroid Build Coastguard Worker arg_def_t two_pass_width; 233*77c1e3ccSAndroid Build Coastguard Worker arg_def_t two_pass_height; 234*77c1e3ccSAndroid Build Coastguard Worker arg_def_t second_pass_log; 235*77c1e3ccSAndroid Build Coastguard Worker arg_def_t auto_intra_tools_off; 236*77c1e3ccSAndroid Build Coastguard Worker arg_def_t strict_level_conformance; 237*77c1e3ccSAndroid Build Coastguard Worker arg_def_t kf_max_pyr_height; 238*77c1e3ccSAndroid Build Coastguard Worker arg_def_t sb_qp_sweep; 239*77c1e3ccSAndroid Build Coastguard Worker #endif // CONFIG_AV1_ENCODER 240*77c1e3ccSAndroid Build Coastguard Worker } av1_codec_arg_definitions_t; 241*77c1e3ccSAndroid Build Coastguard Worker 242*77c1e3ccSAndroid Build Coastguard Worker extern const av1_codec_arg_definitions_t g_av1_codec_arg_defs; 243*77c1e3ccSAndroid Build Coastguard Worker 244*77c1e3ccSAndroid Build Coastguard Worker #ifdef __cplusplus 245*77c1e3ccSAndroid Build Coastguard Worker } 246*77c1e3ccSAndroid Build Coastguard Worker #endif 247*77c1e3ccSAndroid Build Coastguard Worker #endif // AOM_AV1_ARG_DEFS_H_ 248