| /* |
| * Copyright (c) 2021, Alliance for Open Media. All rights reserved |
| * |
| * This source code is subject to the terms of the BSD 3-Clause Clear License |
| * and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear |
| * License was not distributed with this source code in the LICENSE file, you |
| * can obtain it at aomedia.org/license/software-license/bsd-3-c-c/. If the |
| * Alliance for Open Media Patent License 1.0 was not distributed with this |
| * source code in the PATENTS file, you can obtain it at |
| * aomedia.org/license/patent-license/. |
| */ |
| #ifndef AOM_AV1_ARG_DEFS_H_ |
| #define AOM_AV1_ARG_DEFS_H_ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include "config/aom_config.h" |
| #include "common/args_helper.h" |
| #if CONFIG_WEBM_IO |
| #include "common/webmenc.h" |
| #endif |
| #include "aom/aomcx.h" |
| |
| enum TestDecodeFatality { |
| TEST_DECODE_OFF, |
| TEST_DECODE_FATAL, |
| TEST_DECODE_WARN, |
| }; |
| |
| typedef struct av1_codec_arg_definitions { |
| arg_def_t help; |
| arg_def_t debugmode; |
| arg_def_t outputfile; |
| arg_def_t reconfile; |
| arg_def_t use_yv12; |
| arg_def_t use_i420; |
| arg_def_t use_i422; |
| arg_def_t use_i444; |
| arg_def_t codecarg; |
| arg_def_t passes; |
| arg_def_t pass_arg; |
| arg_def_t fpf_name; |
| arg_def_t limit; |
| arg_def_t skip; |
| arg_def_t step; |
| arg_def_t good_dl; |
| arg_def_t quietarg; |
| arg_def_t verbosearg; |
| arg_def_t psnrarg; |
| arg_def_t use_cfg; |
| arg_def_t recontest; |
| arg_def_t framerate; |
| arg_def_t use_webm; |
| arg_def_t use_ivf; |
| arg_def_t use_obu; |
| arg_def_t q_hist_n; |
| arg_def_t rate_hist_n; |
| arg_def_t disable_warnings; |
| arg_def_t disable_warning_prompt; |
| arg_def_t bitdeptharg; |
| arg_def_t inbitdeptharg; |
| arg_def_t input_chroma_subsampling_x; |
| arg_def_t input_chroma_subsampling_y; |
| arg_def_t usage; |
| arg_def_t threads; |
| arg_def_t profile; |
| arg_def_t width; |
| arg_def_t height; |
| arg_def_t forced_max_frame_width; |
| arg_def_t forced_max_frame_height; |
| #if CONFIG_WEBM_IO |
| arg_def_t stereo_mode; |
| #endif |
| arg_def_t timebase; |
| arg_def_t global_error_resilient; |
| arg_def_t lag_in_frames; |
| arg_def_t large_scale_tile; |
| arg_def_t monochrome; |
| arg_def_t full_still_picture_hdr; |
| arg_def_t dropframe_thresh; |
| arg_def_t resize_mode; |
| arg_def_t resize_denominator; |
| arg_def_t resize_kf_denominator; |
| arg_def_t superres_mode; |
| arg_def_t superres_denominator; |
| arg_def_t superres_kf_denominator; |
| arg_def_t superres_qthresh; |
| arg_def_t superres_kf_qthresh; |
| arg_def_t end_usage; |
| arg_def_t target_bitrate; |
| arg_def_t min_q_level; |
| arg_def_t max_q_level; |
| arg_def_t min_qp_level; |
| arg_def_t max_qp_level; |
| arg_def_t undershoot_pct; |
| arg_def_t overshoot_pct; |
| arg_def_t buf_sz; |
| arg_def_t buf_initial_sz; |
| arg_def_t buf_optimal_sz; |
| arg_def_t minsection_pct; |
| arg_def_t maxsection_pct; |
| arg_def_t fwd_kf_enabled; |
| arg_def_t kf_min_dist; |
| arg_def_t kf_max_dist; |
| arg_def_t kf_disabled; |
| arg_def_t sframe_dist; |
| arg_def_t sframe_mode; |
| arg_def_t save_as_annexb; |
| arg_def_t noise_sens; |
| arg_def_t sharpness; |
| arg_def_t static_thresh; |
| arg_def_t auto_altref; |
| arg_def_t arnr_maxframes; |
| arg_def_t arnr_strength; |
| arg_def_t tune_metric; |
| arg_def_t cq_level; |
| arg_def_t qp_level; |
| arg_def_t max_intra_rate_pct; |
| #if CONFIG_AV1_ENCODER |
| arg_def_t cpu_used_av1; |
| arg_def_t rowmtarg; |
| arg_def_t tile_cols; |
| arg_def_t tile_rows; |
| arg_def_t enable_tpl_model; |
| arg_def_t enable_keyframe_filtering; |
| arg_def_t tile_width; |
| arg_def_t tile_height; |
| arg_def_t lossless; |
| arg_def_t enable_deblocking; |
| arg_def_t enable_cdef; |
| arg_def_t enable_restoration; |
| arg_def_t enable_wiener; |
| arg_def_t enable_sgrproj; |
| arg_def_t enable_pc_wiener; |
| arg_def_t enable_wiener_nonsep; |
| arg_def_t enable_ccso; |
| #if CONFIG_LF_SUB_PU |
| arg_def_t enable_lf_sub_pu; |
| #endif // CONFIG_LF_SUB_PU |
| arg_def_t disable_ml_partition_speed_features; |
| #if CONFIG_EXT_RECUR_PARTITIONS |
| arg_def_t erp_pruning_level; |
| arg_def_t use_ml_erp_pruning; |
| arg_def_t enable_ext_partitions; |
| #endif // CONFIG_EXT_RECUR_PARTITIONS |
| arg_def_t enable_rect_partitions; |
| arg_def_t enable_ab_partitions; |
| arg_def_t enable_1to4_partitions; |
| arg_def_t disable_ml_transform_speed_features; |
| arg_def_t enable_sdp; |
| arg_def_t enable_mrls; |
| arg_def_t enable_tip; |
| #if CONFIG_BAWP |
| arg_def_t enable_bawp; |
| #endif // CONFIG_BAWP |
| arg_def_t enable_cwp; |
| #if CONFIG_D071_IMP_MSK_BLD |
| arg_def_t enable_imp_msk_bld; |
| #endif // CONFIG_D071_IMP_MSK_BLD |
| arg_def_t enable_fsc; |
| arg_def_t enable_orip; |
| #if CONFIG_IDIF |
| arg_def_t enable_idif; |
| #endif // CONFIG_IDIF |
| arg_def_t enable_ist; |
| arg_def_t enable_inter_ist; |
| #if CONFIG_INTER_DDT |
| arg_def_t enable_inter_ddt; |
| #endif // CONFIG_INTER_DDT |
| arg_def_t enable_cctx; |
| arg_def_t enable_ibp; |
| arg_def_t enable_adaptive_mvd; |
| arg_def_t enable_flex_mvres; |
| #if CONFIG_IMPROVED_CFL |
| arg_def_t select_cfl_ds_filter; |
| #endif // CONFIG_IMPROVED_CFL |
| arg_def_t enable_joint_mvd; |
| #if CONFIG_REFINEMV |
| arg_def_t enable_refinemv; |
| #endif // CONFIG_REFINEMV |
| #if CONFIG_DERIVED_MVD_SIGN |
| arg_def_t enable_mvd_sign_derive; |
| #endif // CONFIG_DERIVED_MVD_SIGN |
| arg_def_t min_partition_size; |
| arg_def_t max_partition_size; |
| arg_def_t enable_chroma_deltaq; |
| arg_def_t enable_intra_edge_filter; |
| arg_def_t enable_order_hint; |
| arg_def_t enable_tx64; |
| arg_def_t enable_flip_idtx; |
| arg_def_t enable_masked_comp; |
| arg_def_t enable_onesided_comp; |
| arg_def_t enable_interintra_comp; |
| arg_def_t enable_smooth_interintra; |
| arg_def_t enable_diff_wtd_comp; |
| arg_def_t enable_interinter_wedge; |
| arg_def_t enable_interintra_wedge; |
| arg_def_t enable_global_motion; |
| arg_def_t enable_warped_motion; |
| arg_def_t enable_warped_causal; |
| arg_def_t enable_warp_delta; |
| arg_def_t enable_warp_extend; |
| arg_def_t enable_filter_intra; |
| arg_def_t enable_smooth_intra; |
| arg_def_t enable_paeth_intra; |
| arg_def_t enable_cfl_intra; |
| arg_def_t force_video_mode; |
| arg_def_t enable_obmc; |
| arg_def_t enable_overlay; |
| arg_def_t enable_palette; |
| arg_def_t enable_intrabc; |
| #if CONFIG_IBC_SR_EXT |
| arg_def_t enable_intrabc_ext; |
| #endif // CONFIG_IBC_SR_EXT |
| arg_def_t enable_angle_delta; |
| arg_def_t enable_opfl_refine; |
| #if CONFIG_AFFINE_REFINEMENT |
| arg_def_t enable_affine_refine; |
| #endif // CONFIG_AFFINE_REFINEMENT |
| arg_def_t enable_trellis_quant; |
| arg_def_t enable_qm; |
| arg_def_t qm_min; |
| arg_def_t qm_max; |
| arg_def_t reduced_tx_type_set; |
| arg_def_t use_intra_dct_only; |
| arg_def_t use_inter_dct_only; |
| arg_def_t use_intra_default_tx_only; |
| arg_def_t quant_b_adapt; |
| arg_def_t coeff_cost_upd_freq; |
| arg_def_t mode_cost_upd_freq; |
| arg_def_t mv_cost_upd_freq; |
| arg_def_t num_tg; |
| arg_def_t mtu_size; |
| arg_def_t timing_info; |
| #if CONFIG_TUNE_VMAF |
| arg_def_t vmaf_model_path; |
| #endif |
| arg_def_t film_grain_test; |
| arg_def_t film_grain_table; |
| #if CONFIG_DENOISE |
| arg_def_t denoise_noise_level; |
| arg_def_t denoise_block_size; |
| #endif |
| arg_def_t enable_ref_frame_mvs; |
| arg_def_t frame_parallel_decoding; |
| arg_def_t error_resilient_mode; |
| arg_def_t aq_mode; |
| arg_def_t deltaq_mode; |
| arg_def_t deltalf_mode; |
| arg_def_t frame_periodic_boost; |
| arg_def_t gf_cbr_boost_pct; |
| arg_def_t max_inter_rate_pct; |
| arg_def_t min_gf_interval; |
| arg_def_t max_gf_interval; |
| arg_def_t gf_min_pyr_height; |
| arg_def_t gf_max_pyr_height; |
| arg_def_t max_reference_frames; |
| arg_def_t reduced_reference_set; |
| arg_def_t explicit_ref_frame_map; |
| arg_def_t enable_frame_output_order; |
| arg_def_t target_seq_level_idx; |
| arg_def_t set_min_cr; |
| arg_def_t input_color_primaries; |
| arg_def_t input_transfer_characteristics; |
| arg_def_t input_matrix_coefficients; |
| arg_def_t input_chroma_sample_position; |
| arg_def_t tune_content; |
| arg_def_t cdf_update_mode; |
| arg_def_t superblock_size; |
| arg_def_t set_tier_mask; |
| arg_def_t use_fixed_qp_offsets; |
| arg_def_t fixed_qp_offsets; |
| arg_def_t vbr_corpus_complexity_lap; |
| arg_def_t subgop_config_str; |
| arg_def_t subgop_config_path; |
| arg_def_t max_drl_refmvs; |
| #if CONFIG_IBC_BV_IMPROVEMENT && CONFIG_IBC_MAX_DRL |
| arg_def_t max_drl_refbvs; |
| #endif // CONFIG_IBC_BV_IMPROVEMENT && CONFIG_IBC_MAX_DRL |
| arg_def_t enable_refmvbank; |
| arg_def_t enable_parity_hiding; |
| #if CONFIG_MRSSE |
| arg_def_t enable_mrsse; |
| #endif // CONFIG_MRSSE |
| #endif // CONFIG_AV1_ENCODER |
| arg_def_t frame_hash_metadata; |
| arg_def_t frame_hash_per_plane; |
| #if CONFIG_REFRESH_FLAG |
| arg_def_t enable_short_refresh_frame_flags; |
| #endif // CONFIG_REFRESH_FLAG |
| } av1_codec_arg_definitions_t; |
| |
| extern const av1_codec_arg_definitions_t g_av1_codec_arg_defs; |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif // AOM_AV1_ARG_DEFS_H_ |