Agora C++ API Reference for All Platforms
audio_options_i.h
1 // Agora SDK
2 //
3 // Copyright (c) 2019 Agora.io. All rights reserved.
4 // Reference from WebRTC project
5 //
6 #pragma once
7 
8 #include <string>
9 
10 #include "AgoraOptional.h"
11 
12 #define SET_FROM(X) SetFrom(&X, change.X)
13 
14 #define BEGIN_COMPARE() bool b = true
15 #define ADD_COMPARE(X) b = (b && (X == o.X))
16 #define END_COMPARE_AND_RETURN() \
17  ; \
18  return b
19 
20 #define UNPUBLISH(X) X.reset()
21 
22 namespace agora {
23 namespace rtc {
24 
33 
38 
43 };
44 
45 // Options that can be applied to an audio track or audio engine.
46 struct AudioOptions {
47  AudioOptions() = default;
48  ~AudioOptions() = default;
49 
50  void SetAll(const AudioOptions& change) {
51  SET_FROM(audio_scenario);
52  SET_FROM(audio_routing);
53  SET_FROM(opensl_mode);
55  SET_FROM(audio_routing_version);
58  SET_FROM(adm_duck_others);
59  SET_FROM(adm_mix_with_others);
61  SET_FROM(adm_enable_oboe);
62  SET_FROM(adm_enable_fallback);
64  SET_FROM(has_published_stream);
65  SET_FROM(has_subscribed_stream);
66  SET_FROM(has_enabled_ear_monitor);
67 
68  SET_FROM(adm_input_sample_rate);
69  SET_FROM(adm_output_sample_rate);
70  SET_FROM(adm_enable_exclusive_mode);
71  SET_FROM(adm_input_channels);
72  SET_FROM(adm_output_channels);
73  SET_FROM(adm_has_recorded);
74  SET_FROM(adm_enable_mic_selection);
76  SET_FROM(adm_use_bluetooth_hfp);
77  SET_FROM(adm_use_hw_aec);
79  SET_FROM(adm_force_restart);
80  SET_FROM(adm_audio_layer);
81  SET_FROM(adm_audio_source);
83  SET_FROM(adm_enable_builtin3a);
84  SET_FROM(apm_process_channels);
85  SET_FROM(apm_enable_aec);
86  SET_FROM(apm_aec_nlp_size);
87  SET_FROM(apm_aec_fixed_delay);
88  SET_FROM(apm_aec_extra_delay_bias);
90  SET_FROM(apm_aec_nlp_plan);
91  SET_FROM(apm_aec_saturated);
93  SET_FROM(apm_aec_ainlp_reset_ratio);
96  SET_FROM(apm_enable_ns);
97  SET_FROM(apm_ains_mode);
98  SET_FROM(apm_ains_gain_control);
99  SET_FROM(apm_ains_speech_enhance);
100  SET_FROM(apm_enable_agc);
101  SET_FROM(apm_enable_md);
102  SET_FROM(apm_aimd_value);
103  SET_FROM(apm_enable_highpass_filter);
104  SET_FROM(apm_enable_tone_remover);
105  SET_FROM(apm_enable_pitch_smoother);
106  SET_FROM(apm_enable_howling_control);
107  SET_FROM(apm_delay_offset_ms);
108  SET_FROM(apm_aec_nlp_aggressiveness);
109  SET_FROM(apm_aec_complexity);
110  SET_FROM(apm_aec_sw_processing_mode);
112  SET_FROM(apm_agc_target_level_dbfs);
113  SET_FROM(apm_agc_compression_gain_db);
114  SET_FROM(apm_agc_mode);
115  SET_FROM(apm_ns_enable_ns_follow_agc);
116  SET_FROM(apm_ns_level);
117  SET_FROM(apm_ns_noiseGateThres);
118  SET_FROM(apm_ns_complexity);
119  SET_FROM(apm_enable_record_boost);
120  // AINS
121  SET_FROM(apm_ains_fft_size);
122  SET_FROM(apm_ains_maxtolerant_ms);
123  SET_FROM(apm_ains_attack_factor);
124  SET_FROM(apm_ains_release_factor);
125  SET_FROM(apm_ains_upper_bound);
126  SET_FROM(apm_ains_upper_mask);
127  SET_FROM(apm_ains_lower_bound);
128  SET_FROM(apm_ains_lower_mask);
129  SET_FROM(apm_ains_triangle_1);
130  SET_FROM(apm_ains_triangle_2);
131  SET_FROM(apm_ains_triangle_3);
132  SET_FROM(apm_ains_threshold_ai);
134  SET_FROM(apm_ains_enh_factor_ai);
137  SET_FROM(apm_ains_statistical_bound);
138  SET_FROM(apm_ains_gain_boost_frq1);
139  SET_FROM(apm_ains_gain_boost_gain1);
140  SET_FROM(apm_ains_gain_boost_frq2);
141  SET_FROM(apm_ains_gain_boost_gain2);
142  SET_FROM(apm_ains_gain_boost_frq3);
143  SET_FROM(apm_ains_gain_boost_gain3);
144  SET_FROM(apm_ains_final_lower_mask);
145  SET_FROM(apm_ains_noise_pow_floor);
146  SET_FROM(apm_ains_cng_base_magnitude);
147  SET_FROM(apm_ains_strategy);
148  SET_FROM(apm_farend_gain_threshold);
149  SET_FROM(apm_farend_gain);
150  SET_FROM(acm_bitrate);
151  SET_FROM(acm_codec);
152  SET_FROM(acm_dtx);
153  SET_FROM(acm_plc);
154  SET_FROM(acm_complex_level);
155  SET_FROM(acm_ptime);
156  SET_FROM(acm_hw_encode_opus);
157  SET_FROM(acm_hw_decode_opus);
158  SET_FROM(acm_opus_celt_only);
159  SET_FROM(audio_resend);
160  SET_FROM(audio_rsfec_frame_num);
161  SET_FROM(audio_rsfec_interleave_num);
162  SET_FROM(audio_fec_frame_num);
163  SET_FROM(audio_fec_interleave_num);
164  SET_FROM(neteq_live_min_delay);
168  SET_FROM(neteq_filter_target_loss);
169  SET_FROM(neteq_max_filter_window);
171  SET_FROM(neteq_max_exceed_time_ms);
172  SET_FROM(neteq_max_filter_dup_num);
175  SET_FROM(neteq_enable_improve_burst);
193  SET_FROM(neteq_aqm_voice_threshold);
194  SET_FROM(neteq_dump_level);
195  SET_FROM(neteq_dump_path);
196  SET_FROM(neteq_limit_prob);
198  SET_FROM(neteq_plc_mode);
199  SET_FROM(dwlink_gain);
200  SET_FROM(uplink_gain);
202  SET_FROM(use_media_volume_in_headset);
204  SET_FROM(use_media_volume_in_solo);
206  }
207 
208  bool operator==(const AudioOptions& o) const {
209  BEGIN_COMPARE();
210  ADD_COMPARE(audio_scenario);
211  ADD_COMPARE(audio_routing);
212  ADD_COMPARE(opensl_mode);
214  ADD_COMPARE(audio_routing_version);
215  ADD_COMPARE(adm_enable_preferred_aec_delay);
216  ADD_COMPARE(adm_enable_lowlatency_capture);
217  ADD_COMPARE(adm_duck_others);
218  ADD_COMPARE(adm_mix_with_others);
219  ADD_COMPARE(adm_restart_when_interrupted);
220  ADD_COMPARE(adm_enable_oboe);
221  ADD_COMPARE(adm_enable_fallback);
223  ADD_COMPARE(has_published_stream);
224  ADD_COMPARE(has_subscribed_stream);
225  ADD_COMPARE(has_enabled_ear_monitor);
226  ADD_COMPARE(adm_input_sample_rate);
227  ADD_COMPARE(adm_output_sample_rate);
228  ADD_COMPARE(adm_enable_exclusive_mode);
229  ADD_COMPARE(adm_input_channels);
230  ADD_COMPARE(adm_output_channels);
231  ADD_COMPARE(adm_has_recorded);
232  ADD_COMPARE(adm_enable_mic_selection);
233  ADD_COMPARE(adm_force_use_bluetooth_a2dp);
234  ADD_COMPARE(adm_use_bluetooth_hfp);
235  ADD_COMPARE(adm_use_hw_aec);
236  ADD_COMPARE(adm_enable_hardware_ear_monitor);
237  ADD_COMPARE(adm_force_restart);
238  ADD_COMPARE(adm_audio_layer);
239  ADD_COMPARE(adm_audio_source);
240  ADD_COMPARE(adm_playout_bufsize_factor);
241  ADD_COMPARE(adm_enable_builtin3a);
242  ADD_COMPARE(apm_process_channels);
243  ADD_COMPARE(apm_enable_aec);
244  ADD_COMPARE(apm_aec_nlp_size);
245  ADD_COMPARE(apm_aec_fixed_delay);
246  ADD_COMPARE(apm_aec_extra_delay_bias);
248  ADD_COMPARE(apm_aec_nlp_plan);
249  ADD_COMPARE(apm_aec_saturated);
250  ADD_COMPARE(apm_aec_ainlp_reset_period);
251  ADD_COMPARE(apm_aec_ainlp_reset_ratio);
252  ADD_COMPARE(apm_aec_ainlp_fallback_period);
253  ADD_COMPARE(apm_aec_linear_filter_type);
254  ADD_COMPARE(apm_enable_ns);
255  ADD_COMPARE(apm_ains_mode);
256  ADD_COMPARE(apm_ains_gain_control);
257  ADD_COMPARE(apm_ains_speech_enhance);
258  // AINS
259  ADD_COMPARE(apm_ains_fft_size);
260  ADD_COMPARE(apm_ains_maxtolerant_ms);
261  ADD_COMPARE(apm_ains_attack_factor);
262  ADD_COMPARE(apm_ains_release_factor);
263  ADD_COMPARE(apm_ains_upper_bound);
264  ADD_COMPARE(apm_ains_upper_mask);
265  ADD_COMPARE(apm_ains_lower_bound);
266  ADD_COMPARE(apm_ains_lower_mask);
267  ADD_COMPARE(apm_ains_triangle_1);
268  ADD_COMPARE(apm_ains_triangle_2);
269  ADD_COMPARE(apm_ains_triangle_3);
270  ADD_COMPARE(apm_ains_threshold_ai);
271  ADD_COMPARE(apm_ains_threshold_stastical);
272  ADD_COMPARE(apm_ains_enh_factor_ai);
273  ADD_COMPARE(apm_ains_enh_factor_stastical);
274  ADD_COMPARE(apm_ains_noise_over_estimate);
275  ADD_COMPARE(apm_ains_statistical_bound);
276  ADD_COMPARE(apm_ains_gain_boost_frq1);
277  ADD_COMPARE(apm_ains_gain_boost_gain1);
278  ADD_COMPARE(apm_ains_gain_boost_frq2);
279  ADD_COMPARE(apm_ains_gain_boost_gain2);
280  ADD_COMPARE(apm_ains_gain_boost_frq3);
281  ADD_COMPARE(apm_ains_gain_boost_gain3);
282  ADD_COMPARE(apm_ains_final_lower_mask);
283  ADD_COMPARE(apm_ains_noise_pow_floor);
284  ADD_COMPARE(apm_ains_cng_base_magnitude);
285  ADD_COMPARE(apm_ains_strategy);
286  ADD_COMPARE(apm_farend_gain_threshold);
287  ADD_COMPARE(apm_farend_gain);
288  ADD_COMPARE(apm_enable_agc);
289  ADD_COMPARE(apm_enable_md);
290  ADD_COMPARE(apm_aimd_value);
291  ADD_COMPARE(apm_enable_highpass_filter);
292  ADD_COMPARE(apm_enable_tone_remover);
293  ADD_COMPARE(apm_enable_pitch_smoother);
294  ADD_COMPARE(apm_enable_howling_control);
295  ADD_COMPARE(apm_delay_offset_ms);
296  ADD_COMPARE(apm_aec_nlp_aggressiveness);
297  ADD_COMPARE(apm_aec_complexity);
298  ADD_COMPARE(apm_aec_sw_processing_mode);
299  ADD_COMPARE(apm_aec_linear_filter_length_ms);
300  ADD_COMPARE(apm_agc_target_level_dbfs);
301  ADD_COMPARE(apm_agc_compression_gain_db);
302  ADD_COMPARE(apm_agc_mode);
303  ADD_COMPARE(apm_ns_enable_ns_follow_agc);
304  ADD_COMPARE(apm_ns_level);
305  ADD_COMPARE(apm_ns_noiseGateThres);
306  ADD_COMPARE(apm_ns_complexity);
307  ADD_COMPARE(apm_enable_record_boost);
308  ADD_COMPARE(acm_bitrate);
309  ADD_COMPARE(acm_codec);
310  ADD_COMPARE(acm_dtx);
311  ADD_COMPARE(acm_plc);
312  ADD_COMPARE(acm_complex_level);
313  ADD_COMPARE(acm_ptime);
314  ADD_COMPARE(acm_hw_encode_opus);
315  ADD_COMPARE(acm_hw_decode_opus);
316  ADD_COMPARE(acm_opus_celt_only);
317  ADD_COMPARE(audio_resend);
318  ADD_COMPARE(audio_rsfec_frame_num);
319  ADD_COMPARE(audio_rsfec_interleave_num);
320  ADD_COMPARE(audio_fec_frame_num);
321  ADD_COMPARE(audio_fec_interleave_num);
322  ADD_COMPARE(neteq_live_min_delay);
323  ADD_COMPARE(neteq_jitter_buffer_max_packets);
325  ADD_COMPARE(neteq_jitter_max_target_delay);
326  ADD_COMPARE(neteq_filter_target_loss);
327  ADD_COMPARE(neteq_max_filter_window);
329  ADD_COMPARE(neteq_max_exceed_time_ms);
330  ADD_COMPARE(neteq_max_filter_dup_num);
331  ADD_COMPARE(neteq_enable_voice_volume_level);
333  ADD_COMPARE(neteq_enable_improve_burst);
350  ADD_COMPARE(neteq_target_level_optimization);
351  ADD_COMPARE(neteq_aqm_voice_threshold);
352  ADD_COMPARE(neteq_dump_level);
353  ADD_COMPARE(neteq_dump_path);
354  ADD_COMPARE(neteq_limit_prob);
355  ADD_COMPARE(neteq_lower_limit_probability);
356  ADD_COMPARE(neteq_plc_mode);
357  ADD_COMPARE(dwlink_gain);
358  ADD_COMPARE(uplink_gain);
360  ADD_COMPARE(use_media_volume_in_headset);
361  ADD_COMPARE(use_media_volume_in_audience);
362  ADD_COMPARE(use_media_volume_in_solo);
363  ADD_COMPARE(use_media_volume_in_bluetooth);
364  END_COMPARE_AND_RETURN();
365  }
366 
369  return *this;
370  }
371 
372  bool operator!=(const AudioOptions& o) const { return !(*this == o); }
373 
374  Optional<uint32_t> audio_scenario; // agora::rtc::AUDIO_SCENARIO_TYPE
375  Optional<uint32_t> audio_routing; // agora::rtc::AudioRoute
376  Optional<uint32_t> opensl_mode; // agora::rtc::OPENSL_MODE
382  // ios::AVAudioSessionCategoryOptionMixWithOthers
398  // ios::AVAudioSessionCategoryOptionAllowBluetoothA2DP
408  Optional<int> apm_process_channels; // agora::media::base::AUDIO_PROCESS_CHANNELS
443  // AINS
444  // che.audio.nsng.anasize , che.audio.nsng.fftsize
446  // che.audio.nsng.maxtime
448  // che.audio.nsng.attackfactor
450  // che.audio.nsng.releasefactor
452  // che.audio.nsng.upperbound
454  // che.audio.nsng.uppermask
456  // che.audio.nsng.lowerBound
458  // che.audio.nsng.lowerMask
460  // che.audio.nsng.triangle_1
462  // che.audio.nsng.triangle_2
464  // che.audio.nsng.triangle_3
466  // che.audio.nsng.thresholdai
468  // che.audio.nsng.thresholdstastical
470  // che.audio.nsng.enhfactorai
472  // che.audio.nsng.enhfactorstastical
474  // che.audio.nsng.noiseoverestimate
476  // che.audio.nsng.statisticalbound
478  // che.audio.nsng.gainboostfreq1
480  // che.audio.nsng.gainboostval1
482  // che.audio.nsng.gainboostfreq2
484  // che.audio.nsng.gainboostval2
486  // che.audio.nsng.gainboostfreq3
488  // che.audio.nsng.gainboostval3
490  // che.audio.nsng.finallowermask
492  // che.audio.nsng.noisepowfloor
494  // che.audio.nsng.pinkfactor , che.audio.nsng.cngbasemagnitude
496  // che.audio.nsng.strategy
498 
499  // Double talk detection switcher.
500  // Android game streaming scenario should be true, all other cases should be false;
555 
556  // derived options
562 
563  private:
564  template <typename T>
565  static void SetFrom(Optional<T>* s, const Optional<T>& o) {
566  if (o) {
567  *s = o;
568  }
569  }
570 };
571 
572 } // namespace rtc
573 } // namespace agora
agora::rtc::AudioOptions::apm_enable_ns
Optional< bool > apm_enable_ns
Definition: audio_options_i.h:420
agora::rtc::AudioOptions::acm_plc
Optional< bool > acm_plc
Definition: audio_options_i.h:507
agora::rtc::AudioOptions::apm_aec_ainlp_reset_period
Optional< int > apm_aec_ainlp_reset_period
Definition: audio_options_i.h:416
agora::rtc::AudioOptions::apm_ains_threshold_ai
Optional< int32_t > apm_ains_threshold_ai
Definition: audio_options_i.h:467
agora::rtc::AudioOptions::dwlink_gain
Optional< uint32_t > dwlink_gain
Definition: audio_options_i.h:553
agora::rtc::AudioOptions::apm_ains_gain_boost_gain3
Optional< int32_t > apm_ains_gain_boost_gain3
Definition: audio_options_i.h:489
agora::rtc::AudioOptions::apm_ains_cng_base_magnitude
Optional< int32_t > apm_ains_cng_base_magnitude
Definition: audio_options_i.h:495
agora::rtc::AudioOptions::apm_ains_final_lower_mask
Optional< int32_t > apm_ains_final_lower_mask
Definition: audio_options_i.h:491
agora::rtc::AudioOptions::adm_enable_builtin3a
Optional< bool > adm_enable_builtin3a
Definition: audio_options_i.h:407
agora::rtc::AudioOptions::neteq_enable_expired_peak_dector
Optional< bool > neteq_enable_expired_peak_dector
Definition: audio_options_i.h:524
agora::rtc::AudioOptions::apm_aec_extra_delay_bias
Optional< int > apm_aec_extra_delay_bias
Definition: audio_options_i.h:414
agora::rtc::AudioOptions
Definition: audio_options_i.h:46
agora::rtc::ON_WITH_HEADSET
@ ON_WITH_HEADSET
Definition: audio_options_i.h:42
agora::rtc::AudioOptions::adm_enable_fallback
Optional< bool > adm_enable_fallback
Definition: audio_options_i.h:386
agora::rtc::AudioOptions::apm_ains_gain_boost_frq3
Optional< int32_t > apm_ains_gain_boost_frq3
Definition: audio_options_i.h:487
agora::rtc::AudioOptions::apm_ains_upper_mask
Optional< int32_t > apm_ains_upper_mask
Definition: audio_options_i.h:455
agora::rtc::AudioOptions::apm_aimd_value
Optional< int > apm_aimd_value
Definition: audio_options_i.h:426
agora::rtc::AudioOptions::audio_fec_interleave_num
Optional< uint32_t > audio_fec_interleave_num
Definition: audio_options_i.h:517
agora::rtc::AudioOptions::apm_ains_maxtolerant_ms
Optional< int32_t > apm_ains_maxtolerant_ms
Definition: audio_options_i.h:447
agora::rtc::AudioOptions::audio_scenario
Optional< uint32_t > audio_scenario
Definition: audio_options_i.h:374
agora::rtc::ALWAYS_ON
@ ALWAYS_ON
Definition: audio_options_i.h:32
agora::rtc::AudioOptions::adm_force_restart
Optional< bool > adm_force_restart
Definition: audio_options_i.h:403
agora::rtc::AudioOptions::apm_ains_speech_enhance
Optional< int > apm_ains_speech_enhance
Definition: audio_options_i.h:423
agora::rtc::AudioOptions::neteq_max_filter_window
Optional< int32_t > neteq_max_filter_window
Definition: audio_options_i.h:523
agora::rtc::AudioOptions::apm_farend_gain
Optional< uint32_t > apm_farend_gain
Definition: audio_options_i.h:503
agora::rtc::AudioOptions::audio_fec_frame_num
Optional< uint32_t > audio_fec_frame_num
Definition: audio_options_i.h:516
agora::rtc::AudioOptions::neteq_low_latency_burst_overuse_limited_quantile
Optional< int32_t > neteq_low_latency_burst_overuse_limited_quantile
Definition: audio_options_i.h:535
agora::rtc::AudioOptions::apm_ains_release_factor
Optional< int32_t > apm_ains_release_factor
Definition: audio_options_i.h:451
agora::rtc::AudioOptions::adm_restart_when_interrupted
Optional< bool > adm_restart_when_interrupted
Definition: audio_options_i.h:384
agora::rtc::AudioOptions::apm_enable_agc
Optional< bool > apm_enable_agc
Definition: audio_options_i.h:424
agora::rtc::AudioOptions::adm_input_channels
Optional< uint32_t > adm_input_channels
Definition: audio_options_i.h:394
agora::rtc::AudioOptions::apm_ains_triangle_1
Optional< int32_t > apm_ains_triangle_1
Definition: audio_options_i.h:461
agora::rtc::AudioOptions::apm_enable_tone_remover
Optional< bool > apm_enable_tone_remover
Definition: audio_options_i.h:428
agora::rtc::AudioOptions::adm_duck_others
Optional< bool > adm_duck_others
Definition: audio_options_i.h:381
agora::rtc::AudioOptions::adm_output_channels
Optional< uint32_t > adm_output_channels
Definition: audio_options_i.h:395
agora::rtc::AudioOptions::apm_aec_linear_filter_type
Optional< int > apm_aec_linear_filter_type
Definition: audio_options_i.h:419
agora::rtc::AudioOptions::apm_process_channels
Optional< int > apm_process_channels
Definition: audio_options_i.h:408
agora::rtc::AudioOptions::neteq_low_latency_burst_max_jitter_limit_ms
Optional< int32_t > neteq_low_latency_burst_max_jitter_limit_ms
Definition: audio_options_i.h:537
agora::rtc::AudioOptions::apm_aec_ainlp_reset_ratio
Optional< int > apm_aec_ainlp_reset_ratio
Definition: audio_options_i.h:417
agora::rtc::AudioOptions::operator!=
bool operator!=(const AudioOptions &o) const
Definition: audio_options_i.h:372
agora::rtc::AudioOptions::neteq_enable_voice_volume_level
Optional< bool > neteq_enable_voice_volume_level
Definition: audio_options_i.h:527
agora::rtc::AudioOptions::adm_output_sample_rate
Optional< uint32_t > adm_output_sample_rate
Definition: audio_options_i.h:392
agora::rtc::AudioOptions::acm_codec
Optional< uint32_t > acm_codec
Definition: audio_options_i.h:505
agora::rtc::AudioOptions::apm_enable_record_boost
Optional< bool > apm_enable_record_boost
Definition: audio_options_i.h:501
agora::rtc::AudioOptions::neteq_high_latency_burst_control_window_ms
Optional< int32_t > neteq_high_latency_burst_control_window_ms
Definition: audio_options_i.h:538
agora::rtc::AudioOptions::apm_ains_strategy
Optional< int32_t > apm_ains_strategy
Definition: audio_options_i.h:497
agora::rtc::AudioOptions::acm_opus_celt_only
Optional< bool > acm_opus_celt_only
Definition: audio_options_i.h:512
agora::rtc::AudioOptions::apm_aec_nlp_aggressiveness
Optional< int32_t > apm_aec_nlp_aggressiveness
Definition: audio_options_i.h:432
agora::rtc::AudioOptions::apm_aec_nlp_plan
Optional< int > apm_aec_nlp_plan
Definition: audio_options_i.h:410
agora::rtc::AudioOptions::neteq_high_latency_burst_trend_threshold
Optional< int32_t > neteq_high_latency_burst_trend_threshold
Definition: audio_options_i.h:541
agora::rtc::AudioOptions::adm_enable_preferred_aec_delay
Optional< bool > adm_enable_preferred_aec_delay
Definition: audio_options_i.h:379
agora::rtc::AudioOptions::adm_playout_bufsize_factor
Optional< uint32_t > adm_playout_bufsize_factor
Definition: audio_options_i.h:406
agora::rtc::AudioOptions::adm_enable_oboe
Optional< bool > adm_enable_oboe
Definition: audio_options_i.h:385
agora::rtc::AudioOptions::adm_record_audio_session_call_stack
Optional< bool > adm_record_audio_session_call_stack
Definition: audio_options_i.h:387
agora::rtc::AudioOptions::use_media_volume_in_audience
Optional< int > use_media_volume_in_audience
Definition: audio_options_i.h:559
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::AudioOptions::acm_dtx
Optional< bool > acm_dtx
Definition: audio_options_i.h:506
agora::rtc::AudioOptions::use_media_volume_in_solo
Optional< int > use_media_volume_in_solo
Definition: audio_options_i.h:560
agora::rtc::AudioOptions::apm_enable_highpass_filter
Optional< bool > apm_enable_highpass_filter
Definition: audio_options_i.h:427
agora::rtc::AudioOptions::Filter
AudioOptions & Filter()
Definition: audio_options_i.h:367
agora::rtc::AudioOptions::neteq_enable_individuality_delay
Optional< bool > neteq_enable_individuality_delay
Definition: audio_options_i.h:528
agora::rtc::AudioOptions::neteq_high_latency_burst_peak_trend_increased_threshold
Optional< int32_t > neteq_high_latency_burst_peak_trend_increased_threshold
Definition: audio_options_i.h:542
agora::rtc::AudioOptions::apm_ains_gain_boost_frq1
Optional< int32_t > apm_ains_gain_boost_frq1
Definition: audio_options_i.h:479
agora::rtc::AudioOptions::apm_aec_sw_processing_mode
Optional< int32_t > apm_aec_sw_processing_mode
Definition: audio_options_i.h:434
agora::rtc::AudioOptions::apm_ains_threshold_stastical
Optional< int32_t > apm_ains_threshold_stastical
Definition: audio_options_i.h:469
agora::rtc::AudioOptions::adm_use_hw_aec
Optional< bool > adm_use_hw_aec
Definition: audio_options_i.h:401
agora::rtc::AudioOptions::apm_delay_offset_ms
Optional< uint32_t > apm_delay_offset_ms
Definition: audio_options_i.h:431
agora::rtc::AudioOptions::operator==
bool operator==(const AudioOptions &o) const
Definition: audio_options_i.h:208
agora::rtc::AudioOptions::neteq_jitter_max_target_delay
Optional< int32_t > neteq_jitter_max_target_delay
Definition: audio_options_i.h:521
agora::rtc::AudioOptions::apm_ns_noiseGateThres
Optional< uint32_t > apm_ns_noiseGateThres
Definition: audio_options_i.h:441
agora::rtc::ALWAYS_OFF
@ ALWAYS_OFF
Definition: audio_options_i.h:37
agora::rtc::AudioOptions::SetAll
void SetAll(const AudioOptions &change)
Definition: audio_options_i.h:50
agora::rtc::AudioOptions::apm_ains_enh_factor_stastical
Optional< int32_t > apm_ains_enh_factor_stastical
Definition: audio_options_i.h:473
agora::rtc::AudioOptions::neteq_low_latency_burst_comb_window_second
Optional< int32_t > neteq_low_latency_burst_comb_window_second
Definition: audio_options_i.h:536
agora::rtc::AudioOptions::neteq_aqm_voice_threshold
Optional< uint32_t > neteq_aqm_voice_threshold
Definition: audio_options_i.h:547
agora::rtc::AudioOptions::neteq_target_level_optimization
Optional< bool > neteq_target_level_optimization
Definition: audio_options_i.h:546
agora::rtc::AudioOptions::neteq_high_latency_burst_comb_window_second
Optional< int32_t > neteq_high_latency_burst_comb_window_second
Definition: audio_options_i.h:544
agora::rtc::AudioOptions::apm_ains_triangle_3
Optional< int32_t > apm_ains_triangle_3
Definition: audio_options_i.h:465
agora::rtc::AudioOptions::neteq_high_latency_burst_peak_num_threshold
Optional< int32_t > neteq_high_latency_burst_peak_num_threshold
Definition: audio_options_i.h:540
agora::rtc::AudioOptions::~AudioOptions
~AudioOptions()=default
agora::rtc::AudioOptions::adm_audio_source
Optional< uint32_t > adm_audio_source
Definition: audio_options_i.h:405
agora::rtc::AudioOptions::audio_routing
Optional< uint32_t > audio_routing
Definition: audio_options_i.h:375
agora::rtc::AudioOptions::audio_routing_version
Optional< int32_t > audio_routing_version
Definition: audio_options_i.h:378
agora::rtc::OPENSL_MODE
OPENSL_MODE
Definition: audio_options_i.h:28
agora::rtc::AudioOptions::apm_enable_pitch_smoother
Optional< bool > apm_enable_pitch_smoother
Definition: audio_options_i.h:429
agora::rtc::AudioOptions::apm_aec_linear_filter_length_ms
Optional< int32_t > apm_aec_linear_filter_length_ms
Definition: audio_options_i.h:435
agora::rtc::AudioOptions::apm_ns_complexity
Optional< int32_t > apm_ns_complexity
Definition: audio_options_i.h:442
agora::rtc::AudioOptions::audio_rsfec_frame_num
Optional< uint32_t > audio_rsfec_frame_num
Definition: audio_options_i.h:514
agora::rtc::AudioOptions::apm_ains_triangle_2
Optional< int32_t > apm_ains_triangle_2
Definition: audio_options_i.h:463
agora::rtc::AudioOptions::neteq_live_min_delay
Optional< uint32_t > neteq_live_min_delay
Definition: audio_options_i.h:518
agora::rtc::AudioOptions::adm_use_bluetooth_hfp
Optional< bool > adm_use_bluetooth_hfp
Definition: audio_options_i.h:400
agora::rtc::AudioOptions::neteq_dump_level
Optional< uint32_t > neteq_dump_level
Definition: audio_options_i.h:548
agora::rtc::AudioOptions::neteq_high_latency_burst_control_platform_ms
Optional< int32_t > neteq_high_latency_burst_control_platform_ms
Definition: audio_options_i.h:539
agora::rtc::AudioOptions::acm_ptime
Optional< uint32_t > acm_ptime
Definition: audio_options_i.h:509
agora::rtc::AudioOptions::apm_ains_gain_control
Optional< int > apm_ains_gain_control
Definition: audio_options_i.h:422
agora::rtc::AudioOptions::neteq_max_filter_dup_num
Optional< uint32_t > neteq_max_filter_dup_num
Definition: audio_options_i.h:526
agora::rtc::AudioOptions::apm_aec_nlp_size
Optional< int > apm_aec_nlp_size
Definition: audio_options_i.h:412
agora::rtc::AudioOptions::acm_bitrate
Optional< uint32_t > acm_bitrate
Definition: audio_options_i.h:504
agora::rtc::AudioOptions::apm_ains_enh_factor_ai
Optional< int32_t > apm_ains_enh_factor_ai
Definition: audio_options_i.h:471
agora::rtc::AudioOptions::neteq_low_latency_burst_peak_num_threshold
Optional< int32_t > neteq_low_latency_burst_peak_num_threshold
Definition: audio_options_i.h:532
agora::rtc::AudioOptions::adm_enable_hardware_ear_monitor
Optional< bool > adm_enable_hardware_ear_monitor
Definition: audio_options_i.h:402
agora::rtc::AudioOptions::apm_ains_gain_boost_gain1
Optional< int32_t > apm_ains_gain_boost_gain1
Definition: audio_options_i.h:481
agora::rtc::AudioOptions::adm_ext_recording_source_delay_ms
Optional< int > adm_ext_recording_source_delay_ms
Definition: audio_options_i.h:415
agora::rtc::AudioOptions::adm_enable_lowlatency_capture
Optional< bool > adm_enable_lowlatency_capture
Definition: audio_options_i.h:380
agora::rtc::AudioOptions::apm_ains_upper_bound
Optional< int32_t > apm_ains_upper_bound
Definition: audio_options_i.h:453
agora::rtc::AudioOptions::adm_audio_layer
Optional< uint32_t > adm_audio_layer
Definition: audio_options_i.h:404
agora::rtc::AudioOptions::acm_hw_encode_opus
Optional< bool > acm_hw_encode_opus
Definition: audio_options_i.h:510
agora::rtc::AudioOptions::neteq_high_latency_burst_max_jitter_limit_ms
Optional< int32_t > neteq_high_latency_burst_max_jitter_limit_ms
Definition: audio_options_i.h:545
agora::rtc::AudioOptions::apm_farend_gain_threshold
Optional< int32_t > apm_farend_gain_threshold
Definition: audio_options_i.h:502
agora::rtc::AudioOptions::adm_enable_estimated_device_delay
Optional< bool > adm_enable_estimated_device_delay
Definition: audio_options_i.h:377
agora::rtc::AudioOptions::apm_ains_fft_size
Optional< int32_t > apm_ains_fft_size
Definition: audio_options_i.h:445
agora::rtc::AudioOptions::apm_ains_noise_over_estimate
Optional< int32_t > apm_ains_noise_over_estimate
Definition: audio_options_i.h:475
agora::rtc::AudioOptions::neteq_lower_limit_probability
Optional< int > neteq_lower_limit_probability
Definition: audio_options_i.h:551
agora::rtc::AudioOptions::acm_complex_level
Optional< uint32_t > acm_complex_level
Definition: audio_options_i.h:508
agora::rtc::AudioOptions::derived_headset_black_list_device
Optional< bool > derived_headset_black_list_device
Definition: audio_options_i.h:557
agora::rtc::AudioOptions::adm_has_recorded
Optional< bool > adm_has_recorded
Definition: audio_options_i.h:396
agora::rtc::AudioOptions::apm_ains_mode
Optional< int > apm_ains_mode
Definition: audio_options_i.h:421
agora::rtc::AudioOptions::opensl_mode
Optional< uint32_t > opensl_mode
Definition: audio_options_i.h:376
agora::rtc::AudioOptions::apm_ains_noise_pow_floor
Optional< int32_t > apm_ains_noise_pow_floor
Definition: audio_options_i.h:493
agora::rtc::AudioOptions::apm_aec_complexity
Optional< int32_t > apm_aec_complexity
Definition: audio_options_i.h:433
agora::rtc::AudioOptions::has_published_stream
Optional< bool > has_published_stream
Definition: audio_options_i.h:388
agora::rtc::AudioOptions::adm_enable_mic_selection
Optional< bool > adm_enable_mic_selection
Definition: audio_options_i.h:397
agora::rtc::AudioOptions::apm_enable_aec
Optional< bool > apm_enable_aec
Definition: audio_options_i.h:409
agora::rtc::AudioOptions::use_media_volume_in_bluetooth
Optional< int > use_media_volume_in_bluetooth
Definition: audio_options_i.h:561
agora::rtc::AudioOptions::apm_agc_compression_gain_db
Optional< uint32_t > apm_agc_compression_gain_db
Definition: audio_options_i.h:437
agora::rtc::AudioOptions::neteq_low_latency_burst_trend_threshold
Optional< int32_t > neteq_low_latency_burst_trend_threshold
Definition: audio_options_i.h:533
agora::rtc::AudioOptions::apm_ains_gain_boost_frq2
Optional< int32_t > apm_ains_gain_boost_frq2
Definition: audio_options_i.h:483
agora::rtc::AudioOptions::acm_hw_decode_opus
Optional< bool > acm_hw_decode_opus
Definition: audio_options_i.h:511
agora::rtc::AudioOptions::neteq_filter_target_loss
Optional< int32_t > neteq_filter_target_loss
Definition: audio_options_i.h:522
agora::rtc::AudioOptions::apm_ains_lower_bound
Optional< int32_t > apm_ains_lower_bound
Definition: audio_options_i.h:457
agora::rtc::AudioOptions::AudioOptions
AudioOptions()=default
agora::rtc::AudioOptions::apm_enable_howling_control
Optional< bool > apm_enable_howling_control
Definition: audio_options_i.h:430
agora::rtc::AudioOptions::has_subscribed_stream
Optional< bool > has_subscribed_stream
Definition: audio_options_i.h:389
agora::rtc::AudioOptions::audio_resend
Optional< bool > audio_resend
Definition: audio_options_i.h:513
agora::rtc::AudioOptions::apm_ains_statistical_bound
Optional< int32_t > apm_ains_statistical_bound
Definition: audio_options_i.h:477
agora::rtc::AudioOptions::audio_rsfec_interleave_num
Optional< uint32_t > audio_rsfec_interleave_num
Definition: audio_options_i.h:515
agora::rtc::AudioOptions::neteq_jitter_buffer_fast_accelerate
Optional< bool > neteq_jitter_buffer_fast_accelerate
Definition: audio_options_i.h:520
agora::rtc::AudioOptions::neteq_low_latency_burst_peak_trend_increased_threshold
Optional< int32_t > neteq_low_latency_burst_peak_trend_increased_threshold
Definition: audio_options_i.h:534
agora::rtc::AudioOptions::adm_input_sample_rate
Optional< uint32_t > adm_input_sample_rate
Definition: audio_options_i.h:391
agora::rtc::AudioOptions::has_enabled_ear_monitor
Optional< bool > has_enabled_ear_monitor
Definition: audio_options_i.h:390
agora::rtc::AudioOptions::neteq_plc_mode
Optional< int > neteq_plc_mode
Definition: audio_options_i.h:552
agora::rtc::AudioOptions::apm_agc_mode
Optional< uint32_t > apm_agc_mode
Definition: audio_options_i.h:438
agora::rtc::AudioOptions::neteq_low_latency_burst_control_platform_ms
Optional< int32_t > neteq_low_latency_burst_control_platform_ms
Definition: audio_options_i.h:531
agora::rtc::AudioOptions::neteq_enable_improve_burst
Optional< bool > neteq_enable_improve_burst
Definition: audio_options_i.h:529
agora::rtc::AudioOptions::neteq_jitter_buffer_max_packets
Optional< uint32_t > neteq_jitter_buffer_max_packets
Definition: audio_options_i.h:519
agora::rtc::AudioOptions::neteq_max_exceed_time_ms
Optional< int32_t > neteq_max_exceed_time_ms
Definition: audio_options_i.h:525
agora::rtc::AudioOptions::apm_aec_ainlp_fallback_period
Optional< int > apm_aec_ainlp_fallback_period
Definition: audio_options_i.h:418
agora::rtc::AudioOptions::uplink_gain
Optional< uint32_t > uplink_gain
Definition: audio_options_i.h:554
agora::rtc::AudioOptions::adm_mix_with_others
Optional< bool > adm_mix_with_others
Definition: audio_options_i.h:383
agora::rtc::AudioOptions::neteq_limit_prob
Optional< int > neteq_limit_prob
Definition: audio_options_i.h:550
agora::rtc::AudioOptions::apm_ns_level
Optional< int32_t > apm_ns_level
Definition: audio_options_i.h:440
agora::rtc::AudioOptions::neteq_dump_path
Optional< std::string > neteq_dump_path
Definition: audio_options_i.h:549
agora::rtc::AudioOptions::apm_agc_target_level_dbfs
Optional< uint32_t > apm_agc_target_level_dbfs
Definition: audio_options_i.h:436
agora::rtc::AudioOptions::adm_force_use_bluetooth_a2dp
Optional< bool > adm_force_use_bluetooth_a2dp
Definition: audio_options_i.h:399
agora::rtc::AudioOptions::apm_enable_md
Optional< bool > apm_enable_md
Definition: audio_options_i.h:425
agora::rtc::AudioOptions::apm_ains_lower_mask
Optional< int32_t > apm_ains_lower_mask
Definition: audio_options_i.h:459
agora::rtc::AudioOptions::apm_ains_attack_factor
Optional< int32_t > apm_ains_attack_factor
Definition: audio_options_i.h:449
agora::rtc::AudioOptions::apm_ains_gain_boost_gain2
Optional< int32_t > apm_ains_gain_boost_gain2
Definition: audio_options_i.h:485
agora::rtc::AudioOptions::neteq_high_latency_burst_overuse_limited_quantile
Optional< int32_t > neteq_high_latency_burst_overuse_limited_quantile
Definition: audio_options_i.h:543
rtc
Definition: video_node_i.h:25
agora::rtc::AudioOptions::neteq_low_latency_burst_control_window_ms
Optional< int32_t > neteq_low_latency_burst_control_window_ms
Definition: audio_options_i.h:530
agora::Optional< uint32_t >
agora::rtc::AudioOptions::adm_enable_exclusive_mode
Optional< bool > adm_enable_exclusive_mode
Definition: audio_options_i.h:393
agora::rtc::AudioOptions::apm_ns_enable_ns_follow_agc
Optional< uint32_t > apm_ns_enable_ns_follow_agc
Definition: audio_options_i.h:439
agora::rtc::AudioOptions::use_media_volume_in_headset
Optional< int > use_media_volume_in_headset
Definition: audio_options_i.h:558
agora::rtc::AudioOptions::apm_aec_saturated
Optional< bool > apm_aec_saturated
Definition: audio_options_i.h:411
agora::rtc::AudioOptions::apm_aec_fixed_delay
Optional< int > apm_aec_fixed_delay
Definition: audio_options_i.h:413