1 /* Copyright 2018 The Chromium OS Authors. All rights reserved. 2 * Use of this source code is governed by a BSD-style license that can be 3 * found in the LICENSE file. 4 */ 5 6 #ifndef AEC_CONFIG_H_ 7 #define AEC_CONFIG_H_ 8 9 #include <webrtc-apm/webrtc_apm.h> 10 11 #define AEC_DELAY_DEFAULT_DELAY "delay:default_delay" 12 #define AEC_DELAY_DEFAULT_DELAY_VALUE 5 13 #define AEC_DELAY_DOWN_SAMPLING_FACTOR "delay:down_sampling_factor" 14 #define AEC_DELAY_DOWN_SAMPLING_FACTOR_VALUE 4 15 #define AEC_DELAY_NUM_FILTERS "delay:num_filters" 16 #define AEC_DELAY_NUM_FILTERS_VALUE 6 17 #define AEC_DELAY_API_CALL_JITTER_BLOCKS "delay:api_call_jitter_blocks" 18 #define AEC_DELAY_API_CALL_JITTER_BLOCKS_VALUE 26 19 #define AEC_DELAY_MIN_ECHO_PATH_DELAY_BLOCKS "delay:min_echo_path_delay_blocks" 20 #define AEC_DELAY_MIN_ECHO_PATH_DELAY_BLOCKS_VALUE 0 21 #define AEC_DELAY_DELAY_HEADROOM_BLOCKS "delay:delay_headroom_blocks" 22 #define AEC_DELAY_DELAY_HEADROOM_BLOCKS_VALUE 2 23 #define AEC_DELAY_HYSTERESIS_LIMIT_1_BLOCKS "delay:hysteresis_limit_1_blocks" 24 #define AEC_DELAY_HYSTERESIS_LIMIT_1_BLOCKS_VALUE 1 25 #define AEC_DELAY_HYSTERESIS_LIMIT_2_BLOCKS "delay:hysteresis_limit_2_blocks" 26 #define AEC_DELAY_HYSTERESIS_LIMIT_2_BLOCKS_VALUE 1 27 #define AEC_DELAY_SKEW_HYSTERESIS_BLOCKS "delay:skew_hysteresis_blocks" 28 #define AEC_DELAY_SKEW_HYSTERESIS_BLOCKS_VALUE 3 29 #define AEC_DELAY_FIXED_CAPTURE_DELAY_SAMPLES \ 30 "delay:fixed_capture_delay_samples" 31 #define AEC_DELAY_FIXED_CAPTURE_DELAY_SAMPLES_VALUE 0 32 33 // Filter Main configuration 34 #define AEC_FILTER_MAIN_LENGTH_BLOCKS "filter.main:length_blocks" 35 #define AEC_FILTER_MAIN_LENGTH_BLOCKS_VALUE 13 36 #define AEC_FILTER_MAIN_LEAKAGE_CONVERGED "filter.main:leakage_converged" 37 #define AEC_FILTER_MAIN_LEAKAGE_CONVERGED_VALUE 0.00005f 38 #define AEC_FILTER_MAIN_LEAKAGE_DIVERGED "filter.main:leakage_diverged" 39 #define AEC_FILTER_MAIN_LEAKAGE_DIVERGED_VALUE 0.01f 40 #define AEC_FILTER_MAIN_ERROR_FLOOR "filter.main:error_floor" 41 #define AEC_FILTER_MAIN_ERROR_FLOOR_VALUE 0.1f 42 #define AEC_FILTER_MAIN_NOISE_GATE "filter.main:noise_gate" 43 #define AEC_FILTER_MAIN_NOISE_GATE_VALUE 20075344.f 44 45 // Filter Shadow configuration 46 #define AEC_FILTER_SHADOW_LENGTH_BLOCKS "filter.shadow:length_blocks" 47 #define AEC_FILTER_SHADOW_LENGTH_BLOCKS_VALUE 13 48 #define AEC_FILTER_SHADOW_RATE "filter.shadow:rate" 49 #define AEC_FILTER_SHADOW_RATE_VALUE 0.7f 50 #define AEC_FILTER_SHADOW_NOISE_GATE "filter.shadow:noise_gate" 51 #define AEC_FILTER_SHADOW_NOISE_GATE_VALUE 20075344.f 52 53 // Filter Main initial configuration 54 #define AEC_FILTER_MAIN_INIT_LENGTH_BLOCKS "filter.main_initial:length_blocks" 55 #define AEC_FILTER_MAIN_INIT_LENGTH_BLOCKS_VALUE 12 56 #define AEC_FILTER_MAIN_INIT_LEAKAGE_CONVERGED \ 57 "filter.main_initial:leakage_converged" 58 #define AEC_FILTER_MAIN_INIT_LEAKAGE_CONVERGED_VALUE 0.005f 59 #define AEC_FILTER_MAIN_INIT_LEAKAGE_DIVERGED \ 60 "filter.main_initial:leakage_diverged" 61 #define AEC_FILTER_MAIN_INIT_LEAKAGE_DIVERGED_VALUE 0.5f 62 #define AEC_FILTER_MAIN_INIT_ERROR_FLOOR "filter.main_initial:error_floor" 63 #define AEC_FILTER_MAIN_INIT_ERROR_FLOOR_VALUE 0.001f 64 #define AEC_FILTER_MAIN_INIT_NOISE_GATE "filter.main_initial:noise_gate" 65 #define AEC_FILTER_MAIN_INIT_NOISE_GATE_VALUE 20075344.f 66 67 // Filter Shadow initial configuration 68 #define AEC_FILTER_SHADOW_INIT_LENGTH_BLOCKS \ 69 "filter.shadow_initial:length_blocks" 70 #define AEC_FILTER_SHADOW_INIT_LENGTH_BLOCKS_VALUE 12 71 #define AEC_FILTER_SHADOW_INIT_RATE "filter.shadow_initial:rate" 72 #define AEC_FILTER_SHADOW_INIT_RATE_VALUE 0.9f 73 #define AEC_FILTER_SHADOW_INIT_NOISE_GATE "filter.shadow_initial:noise_gate" 74 #define AEC_FILTER_SHADOW_INIT_NOISE_GATE_VALUE 20075344.f 75 76 #define AEC_FILTER_CONFIG_CHANGE_DURATION_BLOCKS \ 77 "filter:config_change_duration_blocks" 78 #define AEC_FILTER_CONFIG_CHANGE_DURATION_BLOCKS_VALUE 250 79 #define AEC_FILTER_INITIAL_STATE_SECONDS "filter:initial_state_seconds" 80 #define AEC_FILTER_INITIAL_STATE_SECONDS_VALUE 2.5f 81 #define AEC_FILTER_CONSERVATIVE_INITIAL_PHASE \ 82 "filter:conservative_initial_phase" 83 #define AEC_FILTER_CONSERVATIVE_INITIAL_PHASE_VALUE 0 84 #define AEC_FILTER_ENABLE_SHADOW_FILTER_OUTPUT_USAGE \ 85 "filter:enable_shadow_filter_output_usage" 86 #define AEC_FILTER_ENABLE_SHADOW_FILTER_OUTPUT_USAGE_VALUE 1 87 88 // Erle 89 #define AEC_ERLE_MIN "erle:min" 90 #define AEC_ERLE_MIN_VALUE 1.f 91 #define AEC_ERLE_MAX_L "erle:max_l" 92 #define AEC_ERLE_MAX_L_VALUE 4.f 93 #define AEC_ERLE_MAX_H "erle:max_h" 94 #define AEC_ERLE_MAX_H_VALUE 1.5f 95 #define AEC_ERLE_ONSET_DETECTION "erle:onset_detection" 96 #define AEC_ERLE_ONSET_DETECTION_VALUE 1 97 98 // EpStrength 99 #define AEC_EP_STRENGTH_LF "ep_strength:lf" 100 #define AEC_EP_STRENGTH_LF_VALUE 1.f 101 #define AEC_EP_STRENGTH_MF "ep_strength:mf" 102 #define AEC_EP_STRENGTH_MF_VALUE 1.f 103 #define AEC_EP_STRENGTH_HF "ep_strength:hf" 104 #define AEC_EP_STRENGTH_HF_VALUE 1.f 105 #define AEC_EP_STRENGTH_DEFAULT_LEN "ep_strength:default_len" 106 #define AEC_EP_STRENGTH_DEFAULT_LEN_VALUE 0.88f 107 #define AEC_EP_STRENGTH_REVERB_BASED_ON_RENDER \ 108 "ep_strength:reverb_based_on_render" 109 #define AEC_EP_STRENGTH_REVERB_BASED_ON_RENDER_VALUE 1 110 #define AEC_EP_STRENGTH_ECHO_CAN_SATURATE "ep_strength:echo_can_saturate" 111 #define AEC_EP_STRENGTH_ECHO_CAN_SATURATE_VALUE 1 112 #define AEC_EP_STRENGTH_BOUNDED_ERL "ep_strength:bounded_erl" 113 #define AEC_EP_STRENGTH_BOUNDED_ERL_VALUE 0 114 115 // Gain mask 116 #define AEC_GAIN_MASK_M0 "gain_mask:m0" 117 #define AEC_GAIN_MASK_M0_VALUE 0.1f 118 #define AEC_GAIN_MASK_M1 "gain_mask:m1" 119 #define AEC_GAIN_MASK_M1_VALUE 0.01f 120 #define AEC_GAIN_MASK_M2 "gain_mask:m2" 121 #define AEC_GAIN_MASK_M2_VALUE 0.0001f 122 #define AEC_GAIN_MASK_M3 "gain_mask:m3" 123 #define AEC_GAIN_MASK_M3_VALUE 0.01f 124 // m4 was removed intentionally. 125 // https://webrtc-review.googlesource.com/c/src/+/70421 126 #define AEC_GAIN_MASK_M5 "gain_mask:m5" 127 #define AEC_GAIN_MASK_M5_VALUE 0.01f 128 #define AEC_GAIN_MASK_M6 "gain_mask:m6" 129 #define AEC_GAIN_MASK_M6_VALUE 0.0001f 130 #define AEC_GAIN_MASK_M7 "gain_mask:m7" 131 #define AEC_GAIN_MASK_M7_VALUE 0.01f 132 #define AEC_GAIN_MASK_M8 "gain_mask:m8" 133 #define AEC_GAIN_MASK_M8_VALUE 0.0001f 134 #define AEC_GAIN_MASK_M9 "gain_mask:m9" 135 #define AEC_GAIN_MASK_M9_VALUE 0.1f 136 #define AEC_GAIN_MASK_GAIN_CURVE_OFFSET "gain_mask:gain_curve_offset" 137 #define AEC_GAIN_MASK_GAIN_CURVE_OFFSET_VALUE 1.45f 138 #define AEC_GAIN_MASK_GAIN_CURVE_SLOPE "gain_mask:gain_curve_slope" 139 #define AEC_GAIN_MASK_GAIN_CURVE_SLOPE_VALUE 5.f 140 #define AEC_GAIN_MASK_TEMPORAL_MASKING_LF "gain_mask:temporal_masking_lf" 141 #define AEC_GAIN_MASK_TEMPORAL_MASKING_LF_VALUE 0.9f 142 #define AEC_GAIN_MASK_TEMPORAL_MASKING_HF "gain_mask:temporal_masking_hf" 143 #define AEC_GAIN_MASK_TEMPORAL_MASKING_HF_VALUE 0.6f 144 #define AEC_GAIN_MASK_TEMPORAL_MASKING_LF_BANDS \ 145 "gain_mask:temporal_masking_lf_bands" 146 #define AEC_GAIN_MASK_TEMPORAL_MASKING_LF_BANDS_VALUE 3 147 148 #define AEC_ECHO_AUDIBILITY_LOW_RENDER_LIMIT "echo_audibility:low_render_limit" 149 #define AEC_ECHO_AUDIBILITY_LOW_RENDER_LIMIT_VALUE 4 * 64.f 150 #define AEC_ECHO_AUDIBILITY_NORMAL_RENDER_LIMIT \ 151 "echo_audibility:normal_render_limit" 152 #define AEC_ECHO_AUDIBILITY_NORMAL_RENDER_LIMIT_VALUE 64.f 153 #define AEC_ECHO_AUDIBILITY_FLOOR_POWER "echo_audibility:floor_power" 154 #define AEC_ECHO_AUDIBILITY_FLOOR_POWER_VALUE 2 * 64.f 155 #define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_LF \ 156 "echo_audibility:audibility_threshold_lf" 157 #define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_LF_VALUE 10 158 #define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_MF \ 159 "echo_audibility:audibility_threshold_mf" 160 #define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_MF_VALUE 10 161 #define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_HF \ 162 "echo_audibility:audibility_threshold_hf" 163 #define AEC_ECHO_AUDIBILITY_AUDIBILITY_THRESHOLD_HF_VALUE 10 164 #define AEC_ECHO_AUDIBILITY_USE_STATIONARY_PROPERTIES \ 165 "echo_audibility:use_stationary_properties" 166 #define AEC_ECHO_AUDIBILITY_USE_STATIONARY_PROPERTIES_VALUE 1 167 168 // Rendering levels 169 #define AEC_RENDER_LEVELS_ACTIVE_RENDER_LIMIT \ 170 "render_levels:active_render_limit" 171 #define AEC_RENDER_LEVELS_ACTIVE_RENDER_LIMIT_VALUE 100.f 172 #define AEC_RENDER_LEVELS_POOR_EXCITATION_RENDER_LIMIT \ 173 "render_levels:poor_excitation_render_limit" 174 #define AEC_RENDER_LEVELS_POOR_EXCITATION_RENDER_LIMIT_VALUE 150.f 175 #define AEC_RENDER_LEVELS_POOR_EXCITATION_RENDER_LIMIT_DS8 \ 176 "render_levels:poor_excitation_render_limit_ds8" 177 #define AEC_RENDER_LEVELS_POOR_EXCITATION_RENDER_LIMIT_DS8_VALUE 20.f 178 179 // Echo removal controls 180 #define AEC_ECHO_REMOVAL_CTL_INITIAL_GAIN "echo_removal_control:initial_gain" 181 #define AEC_ECHO_REMOVAL_CTL_INITIAL_GAIN_VALUE 0.0f 182 #define AEC_ECHO_REMOVAL_CTL_FIRST_NON_ZERO_GAIN \ 183 "echo_removal_control:first_non_zero_gain" 184 #define AEC_ECHO_REMOVAL_CTL_FIRST_NON_ZERO_GAIN_VALUE 0.001f 185 #define AEC_ECHO_REMOVAL_CTL_NON_ZERO_GAIN_BLOCKS \ 186 "echo_removal_control:non_zero_gain_blocks" 187 #define AEC_ECHO_REMOVAL_CTL_NON_ZERO_GAIN_BLOCKS_VALUE 187 188 #define AEC_ECHO_REMOVAL_CTL_FULL_GAIN_BLOCKS \ 189 "echo_removal_control:full_gain_blocks" 190 #define AEC_ECHO_REMOVAL_CTL_FULL_GAIN_BLOCKS_VALUE 312 191 #define AEC_ECHO_REMOVAL_CTL_HAS_CLOCK_DRIFT \ 192 "echo_removal_control:has_clock_drift" 193 #define AEC_ECHO_REMOVAL_CTL_HAS_CLOCK_DRIFT_VALUE 0 194 #define AEC_ECHO_REMOVAL_CTL_LINEAR_AND_STABLE_ECHO_PATH \ 195 "echo_removal_control:linear_and_stable_echo_path" 196 #define AEC_ECHO_REMOVAL_CTL_LINEAR_AND_STABLE_ECHO_PATH_VALUE 0 197 198 // EchoModel 199 #define AEC_ECHO_MODEL_NOISE_FLOOR_HOLD "echo_model:noise_floor_hold" 200 #define AEC_ECHO_MODEL_NOISE_FLOOR_HOLD_VALUE 50 201 #define AEC_ECHO_MODEL_MIN_NOISE_FLOOR_POWER "echo_model:min_noise_floor_power" 202 #define AEC_ECHO_MODEL_MIN_NOISE_FLOOR_POWER_VALUE 1638400.f 203 #define AEC_ECHO_MODEL_STATIONARY_GATE_SLOPE "echo_model:stationary_gate_slope" 204 #define AEC_ECHO_MODEL_STATIONARY_GATE_SLOPE_VALUE 10.f 205 #define AEC_ECHO_MODEL_NOISE_GATE_POWER "echo_model:noise_gate_power" 206 #define AEC_ECHO_MODEL_NOISE_GATE_POWER_VALUE 27509.42f 207 #define AEC_ECHO_MODEL_NOISE_GATE_SLOPE "echo_model:noise_gate_slope" 208 #define AEC_ECHO_MODEL_NOISE_GATE_SLOPE_VALUE 0.3f 209 #define AEC_ECHO_MODEL_RENDER_PRE_WINDOW_SIZE \ 210 "echo_model:render_pre_window_size" 211 #define AEC_ECHO_MODEL_RENDER_PRE_WINDOW_SIZE_VALUE 1 212 #define AEC_ECHO_MODEL_RENDER_POST_WINDOW_SIZE \ 213 "echo_model:render_post_window_size" 214 #define AEC_ECHO_MODEL_RENDER_POST_WINDOW_SIZE_VALUE 1 215 #define AEC_ECHO_MODEL_RENDER_PRE_WINDOW_SIZE_INIT \ 216 "echo_model:render_pre_window_size_init" 217 #define AEC_ECHO_MODEL_RENDER_PRE_WINDOW_SIZE_INIT_VALUE 10 218 #define AEC_ECHO_MODEL_RENDER_POST_WINDOW_SIZE_INIT \ 219 "echo_model:render_post_window_size_init" 220 #define AEC_ECHO_MODEL_RENDER_POST_WINDOW_SIZE_INIT_VALUE 10 221 #define AEC_ECHO_MODEL_NONLINEAR_HOLD "echo_model:nonlinear_hold" 222 #define AEC_ECHO_MODEL_NONLINEAR_HOLD_VALUE 1 223 #define AEC_ECHO_MODEL_NONLINEAR_RELEASE "echo_model:nonlinear_release" 224 #define AEC_ECHO_MODEL_NONLINEAR_RELEASE_VALUE 0.001f 225 226 #define AEC_SUPPRESSOR_NEAREND_AVERAGE_BLOCKS \ 227 "suppressor:nearend_average_blocks" 228 #define AEC_SUPPRESSOR_NEAREND_AVERAGE_BLOCKS_VALUE 4 229 230 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_ENR_TRANSPARENT \ 231 "suppressor.normal_tuning:mask_lf_enr_transparent" 232 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_ENR_TRANSPARENT_VALUE .2f 233 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_ENR_SUPPRESS \ 234 "suppressor.normal_tuning:mask_lf_enr_suppress" 235 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_ENR_SUPPRESS_VALUE .3f 236 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_EMR_TRANSPARENT \ 237 "suppressor.normal_tuning:mask_lf_emr_transparent" 238 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_LF_EMR_TRANSPARENT_VALUE .3f 239 240 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_ENR_TRANSPARENT \ 241 "suppressor.normal_tuning:mask_hf_enr_transparent" 242 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_ENR_TRANSPARENT_VALUE .07f 243 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_ENR_SUPPRESS \ 244 "suppressor.normal_tuning:mask_hf_enr_suppress" 245 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_ENR_SUPPRESS_VALUE .1f 246 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_EMR_TRANSPARENT \ 247 "suppressor.normal_tuning:mask_hf_emr_transparent" 248 #define AEC_SUPPRESSOR_NORMAL_TUNING_MASK_HF_EMR_TRANSPARENT_VALUE .3f 249 250 #define AEC_SUPPRESSOR_NORMAL_TUNING_MAX_INC_FACTOR \ 251 "suppressor.normal_tuning:max_inc_factor" 252 #define AEC_SUPPRESSOR_NORMAL_TUNING_MAX_INC_FACTOR_VALUE 2.0f 253 #define AEC_SUPPRESSOR_NORMAL_TUNING_MAX_DEC_FACTOR_LF \ 254 "suppressor.normal_tuning:max_dec_factor_lf" 255 #define AEC_SUPPRESSOR_NORMAL_TUNING_MAX_DEC_FACTOR_LF_VALUE 0.25f 256 257 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_ENR_TRANSPARENT \ 258 "suppressor.nearend_tuning:mask_lf_enr_transparent" 259 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_ENR_TRANSPARENT_VALUE .2f 260 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_ENR_SUPPRESS \ 261 "suppressor.nearend_tuning:mask_lf_enr_suppress" 262 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_ENR_SUPPRESS_VALUE .3f 263 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_EMR_TRANSPARENT \ 264 "suppressor.nearend_tuning:mask_lf_emr_transparent" 265 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_LF_EMR_TRANSPARENT_VALUE .3f 266 267 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_ENR_TRANSPARENT \ 268 "suppressor.nearend_tuning:mask_hf_enr_transparent" 269 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_ENR_TRANSPARENT_VALUE .07f 270 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_ENR_SUPPRESS \ 271 "suppressor.nearend_tuning:mask_hf_enr_suppress" 272 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_ENR_SUPPRESS_VALUE .1f 273 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_EMR_TRANSPARENT \ 274 "suppressor.nearend_tuning:mask_hf_emr_transparent" 275 #define AEC_SUPPRESSOR_NEAREND_TUNING_MASK_HF_EMR_TRANSPARENT_VALUE .3f 276 277 #define AEC_SUPPRESSOR_NEAREND_TUNING_MAX_INC_FACTOR \ 278 "suppressor.nearend_tuning:max_inc_factor" 279 #define AEC_SUPPRESSOR_NEAREND_TUNING_MAX_INC_FACTOR_VALUE 2.0f 280 #define AEC_SUPPRESSOR_NEAREND_TUNING_MAX_DEC_FACTOR_LF \ 281 "suppressor.nearend_tuning:max_dec_factor_lf" 282 #define AEC_SUPPRESSOR_NEAREND_TUNING_MAX_DEC_FACTOR_LF_VALUE 0.25f 283 284 #define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_ENR_THRESHOLD \ 285 "suppressor.dominant_nearend_detection:enr_threshold" 286 #define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_ENR_THRESHOLD_VALUE 10.f 287 #define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_SNR_THRESHOLD \ 288 "suppressor.dominant_nearend_detection:snr_threshold" 289 #define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_SNR_THRESHOLD_VALUE 10.f 290 #define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_HOLD_DURATION \ 291 "suppressor.dominant_nearend_detection:hold_duration" 292 #define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_HOLD_DURATION_VALUE 25 293 #define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_TRIGGER_THRESHOLD \ 294 "suppressor.dominant_nearend_detection:trigger_threshold" 295 #define AEC_SUPPRESSOR_DOMINANT_NEAREND_DETECTION_TRIGGER_THRESHOLD_VALUE 15 296 297 #define AEC_SUPPRESSOR_HIGH_BANDS_SUPPRESSION_ENR_THRESHOLD \ 298 "suppressor.high_bands_suppression:enr_threshold" 299 #define AEC_SUPPRESSOR_HIGH_BANDS_SUPPRESSION_ENR_THRESHOLD_VALUE 1.f 300 #define AEC_SUPPRESSOR_HIGH_BANDS_SUPPRESSION_MAX_GAIN_DURING_ECHO \ 301 "suppressor.high_bands_suppression:max_gain_during_echo" 302 #define AEC_SUPPRESSOR_HIGH_BANDS_SUPPRESSION_MAX_GAIN_DURING_ECHO_VALUE 1.f 303 304 #define AEC_SUPPRESSOR_FLOOR_FIRST_INCREASE "suppressor:floor_first_increase" 305 #define AEC_SUPPRESSOR_FLOOR_FIRST_INCREASE_VALUE 0.00001f 306 #define AEC_SUPPRESSOR_ENFORCE_TRANSPARENT "suppressor:enforce_transparent" 307 #define AEC_SUPPRESSOR_ENFORCE_TRANSPARENT_VALUE 0 308 #define AEC_SUPPRESSOR_ENFORCE_EMPTY_HIGHER_BANDS \ 309 "suppressor:enforce_empty_higher_bands" 310 #define AEC_SUPPRESSOR_ENFORCE_EMPTY_HIGHER_BANDS_VALUE 0 311 312 /* Gets the aec config from given config directory. */ 313 struct aec_config *aec_config_get(const char *device_config_dir); 314 315 /* Prints the config content to syslog. */ 316 void aec_config_dump(struct aec_config *config); 317 318 #endif /* AEC_CONFIG_H_ */ 319