Agora C++ API Reference for All Platforms
video_config_i.h
1 //
2 // Agora Media SDK
3 //
4 // Created by Rao Qi in 2019-05.
5 // Copyright (c) 2019 Agora IO. All rights reserved.
6 //
7 #pragma once
8 
9 #include <cstdint>
10 #include <sstream>
11 #include <string>
12 
13 #include "AgoraBase.h"
14 #include "AgoraOptional.h"
15 
16 #if defined(WEBRTC_WIN)
17 #define NEW_LINE "\r\n"
18 #else
19 #define NEW_LINE "\n"
20 #endif
21 
22 namespace agora {
23 namespace rtc {
24 
26  public:
27  // do NOT add any default value here
28  VideoConfigurationEx() = default;
29  ~VideoConfigurationEx() = default;
30  void SetAll(const VideoConfigurationEx& change) {
31 #define SET_FROM(X) SetFrom(&X, change.X)
32 
33  SET_FROM(codec_type);
34  SET_FROM(frame_width);
35  SET_FROM(frame_height);
36  SET_FROM(frame_rate);
37  SET_FROM(start_bitrate);
38  SET_FROM(target_bitrate);
39  SET_FROM(min_bitrate);
40  SET_FROM(max_bitrate);
41  SET_FROM(actual_max_bitrate);
42  SET_FROM(orientation_mode);
43  SET_FROM(number_of_temporal_layers);
45  SET_FROM(number_of_bframe_temporal_layers);
46  SET_FROM(sps_data);
47  SET_FROM(pps_data);
48  SET_FROM(h264_profile);
49  SET_FROM(adaptive_op_mode);
50  SET_FROM(number_of_spatial_layers);
51  SET_FROM(flexible_mode);
52  SET_FROM(interlayer_pred);
53  SET_FROM(num_of_encoder_cores);
54  SET_FROM(degradation_preference);
55  SET_FROM(fps_down_step);
56  SET_FROM(fps_up_step);
57  SET_FROM(vqc_version);
58  SET_FROM(overuse_detector_version);
59  //TODO(kefan) these vqc parameters should placed in MediaEngineParameterCollection
60  SET_FROM(vqc_quick_adaptNetwork);
61  SET_FROM(vqc_min_framerate);
64  SET_FROM(vqc_qp_adjust);
65  SET_FROM(vqc_ios_h265_adjust);
66  SET_FROM(min_qp);
67  SET_FROM(max_qp);
68  SET_FROM(frame_max_size);
69  SET_FROM(fec_fix_rate);
71  SET_FROM(fec_method);
72  SET_FROM(enable_pvc);
73  SET_FROM(pvc_one_model);
74  SET_FROM(PvcSupport);
75  SET_FROM(PvcConfig);
76  SET_FROM(color_space_enable);
77  SET_FROM(videoFullrange);
78  SET_FROM(matrixCoefficients);
79  SET_FROM(enable_sr);
80  SET_FROM(sr_type);
81  SET_FROM(save_encode_bitrate);
83 
84  SET_FROM(complexity);
85  SET_FROM(denoising_on);
86  SET_FROM(automatic_resize_on);
87  SET_FROM(frame_dropping_on);
88  SET_FROM(has_intra_request);
89  SET_FROM(key_frame_interval);
90  SET_FROM(entropy_coding_mode_flag);
91  SET_FROM(loop_filter_disable_idc);
92  SET_FROM(background_detection_on);
94  SET_FROM(bitrate_adjust_ratio);
95  SET_FROM(minbitrate_ratio);
97  SET_FROM(h264_qp_thresholds_low);
98  SET_FROM(h264_qp_thresholds_high);
99  SET_FROM(dec_mosreport);
100  SET_FROM(enable_hw_decoder);
101  SET_FROM(hw_decoder_provider);
103  SET_FROM(enable_hw_encoder);
104  SET_FROM(h264_hwenc);
105  SET_FROM(hw_encoder_provider);
106  SET_FROM(av_enc_codec_type);
107  SET_FROM(av_enc_common_quality);
112  SET_FROM(enable_video_qoe_assess);
113  SET_FROM(h264_hw_min_res_level);
114  SET_FROM(av_enc_video_max_slices);
115  SET_FROM(vp8_enc_switch);
116  SET_FROM(av1_dec_enable);
117  SET_FROM(h265_dec_enable);
118  SET_FROM(av1_camera_enable);
119  SET_FROM(av1_screen_enable);
120  SET_FROM(av1_encoder_thread_num);
122  SET_FROM(minscore_for_swh265enc);
123  SET_FROM(h265_min_enc_level);
124  SET_FROM(wz265_dec_enable);
125 
126  SET_FROM(isScreenSharingJbEnabled);
127  SET_FROM(JBMinDelayForRDCEnable);
128  SET_FROM(enable_video_vpr);
129  SET_FROM(video_vpr_init_size);
130  SET_FROM(video_vpr_max_size);
131  SET_FROM(video_vpr_frozen_ms_thres);
132  SET_FROM(video_vpr_frozen_rate_thres);
133  SET_FROM(video_vpr_method);
134  SET_FROM(video_vpr_adaptive_thres);
135  SET_FROM(retrans_detect_enable);
136  SET_FROM(use_sent_ts_enable);
138  SET_FROM(video_rotation);
139  SET_FROM(scale_type);
140  SET_FROM(scc_auto_framerate);
141  SET_FROM(scc_quality_opt);
142  SET_FROM(video_render_d3d9_texture);
148  SET_FROM(av_dec_output_byte_frame);
149  SET_FROM(av_dec_video_hwdec_config);
150  SET_FROM(av_enc_video_hwenc_config);
151  SET_FROM(av_enc_hw_hevc_exceptions);
152  SET_FROM(av_dec_hw_hevc_exceptions);
153 
154  SET_FROM(av_enc_video_use_a264);
155  SET_FROM(av_enc_vmaf_calc);
157  SET_FROM(av_enc_profiling);
158  SET_FROM(av_enc_param_config);
160 
161  SET_FROM(enable_iptos);
162 
166  SET_FROM(bFrames);
167  SET_FROM(enable_bframe);
168  SET_FROM(video_skip_enable);
169  SET_FROM(av_enc_new_complexity);
170  SET_FROM(av_enc_default_complexity);
171  SET_FROM(av_enc_intra_key_interval);
172  SET_FROM(key_force_device_score);
174  SET_FROM(use_single_slice_parser);
175  SET_FROM(enable_parser_reject);
176 
177  SET_FROM(av_enc_send_alpha_data);
179 
181 #undef SET_FROM
182  }
183 
184  bool operator==(const VideoConfigurationEx& o) const {
185 #define BEGIN_COMPARE() bool b = true
186 #define ADD_COMPARE(X) b = (b && (X == o.X))
187 #define END_COMPARE()
188 
189  BEGIN_COMPARE();
190  ADD_COMPARE(codec_type);
191  ADD_COMPARE(frame_width);
192  ADD_COMPARE(frame_height);
193  ADD_COMPARE(frame_rate);
194  ADD_COMPARE(start_bitrate);
195  ADD_COMPARE(target_bitrate);
196  ADD_COMPARE(min_bitrate);
197  ADD_COMPARE(orientation_mode);
198  ADD_COMPARE(number_of_temporal_layers);
200  ADD_COMPARE(number_of_bframe_temporal_layers);
201  ADD_COMPARE(sps_data);
202  ADD_COMPARE(pps_data);
203  ADD_COMPARE(h264_profile);
204  ADD_COMPARE(adaptive_op_mode);
205  ADD_COMPARE(number_of_spatial_layers);
206  ADD_COMPARE(flexible_mode);
207  ADD_COMPARE(interlayer_pred);
208  ADD_COMPARE(num_of_encoder_cores);
209  ADD_COMPARE(degradation_preference);
210  ADD_COMPARE(fps_down_step);
211  ADD_COMPARE(fps_up_step);
212  ADD_COMPARE(vqc_version);
213  ADD_COMPARE(overuse_detector_version);
214  //TODO(kefan) these vqc parameters should placed in MediaEngineParameterCollection
215  ADD_COMPARE(vqc_quick_adaptNetwork);
216  ADD_COMPARE(vqc_min_framerate);
219  ADD_COMPARE(vqc_qp_adjust);
220  ADD_COMPARE(vqc_ios_h265_adjust);
221  ADD_COMPARE(min_qp);
222  ADD_COMPARE(max_qp);
223  ADD_COMPARE(frame_max_size);
224  ADD_COMPARE(fec_fix_rate);
225  ADD_COMPARE(quick_response_intra_request);
226  ADD_COMPARE(fec_method);
227  ADD_COMPARE(enable_pvc);
228  ADD_COMPARE(pvc_one_model);
229  ADD_COMPARE(PvcSupport);
230  ADD_COMPARE(PvcConfig);
231  ADD_COMPARE(enable_sr);
232  ADD_COMPARE(sr_type);
233  ADD_COMPARE(save_encode_bitrate);
234  ADD_COMPARE(save_encode_bitrate_params);
235 
236  ADD_COMPARE(complexity);
237  ADD_COMPARE(denoising_on);
238  ADD_COMPARE(automatic_resize_on);
239  ADD_COMPARE(frame_dropping_on);
240  ADD_COMPARE(has_intra_request);
241  ADD_COMPARE(key_frame_interval);
242  ADD_COMPARE(entropy_coding_mode_flag);
243  ADD_COMPARE(loop_filter_disable_idc);
244  ADD_COMPARE(background_detection_on);
246  ADD_COMPARE(bitrate_adjust_ratio);
247  ADD_COMPARE(minbitrate_ratio);
249  ADD_COMPARE(h264_qp_thresholds_low);
250  ADD_COMPARE(h264_qp_thresholds_high);
251  ADD_COMPARE(dec_mosreport);
252  ADD_COMPARE(enable_hw_decoder);
253  ADD_COMPARE(hw_decoder_provider);
254  ADD_COMPARE(low_stream_enable_hw_encoder);
255  ADD_COMPARE(enable_hw_encoder);
256  ADD_COMPARE(h264_hwenc);
257  ADD_COMPARE(hw_encoder_provider);
258  ADD_COMPARE(av_enc_codec_type);
259  ADD_COMPARE(av_enc_common_quality);
260  ADD_COMPARE(av_enc_common_rate_control_mode);
261  ADD_COMPARE(scc_auto_framerate);
262  ADD_COMPARE(scc_quality_opt);
263  ADD_COMPARE(video_render_d3d9_texture);
264  ADD_COMPARE(video_render_d3d9_render_mode);
265  ADD_COMPARE(video_render_buffer_queue_size);
268  ADD_COMPARE(enable_video_freeze_diagnose);
269  ADD_COMPARE(enable_video_qoe_assess);
270  ADD_COMPARE(h264_hw_min_res_level);
271  ADD_COMPARE(av_enc_video_max_slices);
272  ADD_COMPARE(vp8_enc_switch);
273  ADD_COMPARE(h265_dec_enable);
274  ADD_COMPARE(av1_dec_enable);
275  ADD_COMPARE(av1_camera_enable);
276  ADD_COMPARE(av1_screen_enable);
277  ADD_COMPARE(av1_encoder_thread_num);
278  ADD_COMPARE(color_space_enable);
279  ADD_COMPARE(videoFullrange);
280  ADD_COMPARE(matrixCoefficients);
281 
282  ADD_COMPARE(h265_min_enc_level);
283  ADD_COMPARE(minscore_for_swh265enc);
284  ADD_COMPARE(enable_change_encoder_profile);
285  ADD_COMPARE(wz265_dec_enable);
286 
287  ADD_COMPARE(isScreenSharingJbEnabled);
288  ADD_COMPARE(JBMinDelayForRDCEnable);
289  ADD_COMPARE(enable_video_vpr);
290  ADD_COMPARE(video_vpr_init_size);
291  ADD_COMPARE(video_vpr_max_size);
292  ADD_COMPARE(video_vpr_frozen_ms_thres);
293  ADD_COMPARE(video_vpr_frozen_rate_thres);
294  ADD_COMPARE(video_vpr_method);
295  ADD_COMPARE(video_vpr_adaptive_thres);
296  ADD_COMPARE(av_enc_intra_key_interval);
297  ADD_COMPARE(key_force_device_score);
298  ADD_COMPARE(av_enc_bitrate_adjustment_type);
299  ADD_COMPARE(retrans_detect_enable);
300  ADD_COMPARE(use_sent_ts_enable);
302  ADD_COMPARE(video_rotation);
303  ADD_COMPARE(scale_type);
304  ADD_COMPARE(av_enc_video_use_a264);
305  ADD_COMPARE(av_enc_vmaf_calc);
307  ADD_COMPARE(av_enc_profiling);
308  ADD_COMPARE(av_enc_param_config);
309  ADD_COMPARE(av_enc_screen_sharing_subclass);
310  ADD_COMPARE(av_enc_video_width_alignment);
311  ADD_COMPARE(av_enc_video_height_alignment);
312  ADD_COMPARE(av_enc_video_force_alignment);
313  ADD_COMPARE(av_dec_output_byte_frame);
314 
315  ADD_COMPARE(enable_iptos);
316 
319  ADD_COMPARE(min_encode_keyframe_interval);
320  ADD_COMPARE(bFrames);
321  ADD_COMPARE(enable_bframe);
322  ADD_COMPARE(video_skip_enable);
323  ADD_COMPARE(av_enc_new_complexity);
324  ADD_COMPARE(av_enc_default_complexity);
325  ADD_COMPARE(use_single_slice_parser);
326  ADD_COMPARE(av_enc_video_hwenc_config);
327  ADD_COMPARE(av_dec_video_hwdec_config);
328  ADD_COMPARE(av_enc_hw_hevc_exceptions);
329  ADD_COMPARE(av_dec_hw_hevc_exceptions);
330  ADD_COMPARE(enable_parser_reject);
332 
333  ADD_COMPARE(av_enc_send_alpha_data);
334  ADD_COMPARE(av_enc_alpha_data_codec_type);
335  END_COMPARE();
336 
337 #undef BEGIN_COMPARE
338 #undef ADD_COMPARE
339 #undef END_COMPARE
340  return b;
341  }
342 
343  bool operator!=(const VideoConfigurationEx& o) const { return !(*this == o); }
344 
345  std::string ToString() const {
346 #define ADD_STRING(X) ost << ToStringIfSet(#X, X)
347 
348  std::ostringstream ost;
349  ADD_STRING(codec_type);
350  ADD_STRING(frame_width);
351  ADD_STRING(frame_height);
352  ADD_STRING(frame_rate);
353  ADD_STRING(start_bitrate);
354  ADD_STRING(target_bitrate);
355  ADD_STRING(min_bitrate);
356  ADD_STRING(max_bitrate);
357  ADD_STRING(actual_max_bitrate);
358  ADD_STRING(orientation_mode);
359  ADD_STRING(number_of_temporal_layers);
361  ADD_STRING(number_of_bframe_temporal_layers);
362  ADD_STRING(sps_data);
363  ADD_STRING(pps_data);
364  ADD_STRING(h264_profile);
365  ADD_STRING(adaptive_op_mode);
366  ADD_STRING(number_of_spatial_layers);
367  ADD_STRING(flexible_mode);
368  ADD_STRING(interlayer_pred);
369  ADD_STRING(num_of_encoder_cores);
370  ADD_STRING(degradation_preference);
371  ADD_STRING(fps_down_step);
372  ADD_STRING(fps_up_step);
373  ADD_STRING(vqc_version);
374  ADD_STRING(overuse_detector_version);
375  //TODO(kefan) these vqc parameters should placed in MediaEngineParameterCollection
376  ADD_STRING(vqc_quick_adaptNetwork);
377  ADD_STRING(vqc_min_framerate);
380  ADD_STRING(vqc_qp_adjust);
381  ADD_STRING(vqc_ios_h265_adjust);
382  ADD_STRING(min_qp);
383  ADD_STRING(max_qp);
384  ADD_STRING(frame_max_size);
385  ADD_STRING(fec_fix_rate);
386  ADD_STRING(quick_response_intra_request);
387  ADD_STRING(fec_method);
388  ADD_STRING(enable_pvc);
389  ADD_STRING(pvc_one_model);
390  ADD_STRING(PvcSupport);
391  ADD_STRING(PvcConfig);
392  ADD_STRING(enable_sr);
393  ADD_STRING(sr_type);
394 
395  ADD_STRING(complexity);
396  ADD_STRING(denoising_on);
397  ADD_STRING(automatic_resize_on);
398  ADD_STRING(frame_dropping_on);
399  ADD_STRING(has_intra_request);
400  ADD_STRING(key_frame_interval);
401  ADD_STRING(entropy_coding_mode_flag);
402  ADD_STRING(loop_filter_disable_idc);
403  ADD_STRING(background_detection_on);
405  ADD_STRING(bitrate_adjust_ratio);
406  ADD_STRING(minbitrate_ratio);
408  ADD_STRING(h264_qp_thresholds_low);
409  ADD_STRING(h264_qp_thresholds_high);
410  ADD_STRING(dec_mosreport);
411  ADD_STRING(enable_hw_decoder);
412  ADD_STRING(hw_decoder_provider);
413  ADD_STRING(low_stream_enable_hw_encoder);
414  ADD_STRING(enable_hw_encoder);
415  ADD_STRING(h264_hwenc);
416  ADD_STRING(hw_encoder_provider);
417  ADD_STRING(av_enc_codec_type);
418  ADD_STRING(av_enc_common_quality);
422  ADD_STRING(enable_video_freeze_diagnose);
423  ADD_STRING(enable_video_qoe_assess);
424  ADD_STRING(h264_hw_min_res_level);
425  ADD_STRING(av_enc_video_max_slices);
426  ADD_STRING(vp8_enc_switch);
427  ADD_STRING(h265_dec_enable);
428  ADD_STRING(av1_dec_enable);
429  ADD_STRING(av1_camera_enable);
430  ADD_STRING(av1_screen_enable);
431  ADD_STRING(av1_encoder_thread_num);
432  ADD_STRING(save_encode_bitrate);
433  ADD_STRING(save_encode_bitrate_params);
434 
435  ADD_STRING(h265_min_enc_level);
436  ADD_STRING(minscore_for_swh265enc);
437  ADD_STRING(enable_change_encoder_profile);
438 
439  ADD_STRING(wz265_dec_enable);
440 
441  ADD_STRING(color_space_enable);
442  ADD_STRING(videoFullrange);
443  ADD_STRING(matrixCoefficients);
444 
445  ADD_STRING(isScreenSharingJbEnabled);
446  ADD_STRING(JBMinDelayForRDCEnable);
447  ADD_STRING(enable_video_vpr);
448  ADD_STRING(video_vpr_init_size);
449  ADD_STRING(video_vpr_max_size);
450  ADD_STRING(video_vpr_frozen_ms_thres);
451  ADD_STRING(video_vpr_frozen_rate_thres);
452  ADD_STRING(video_vpr_method);
453  ADD_STRING(video_vpr_adaptive_thres);
454  ADD_STRING(retrans_detect_enable);
455  ADD_STRING(use_sent_ts_enable);
457  ADD_STRING(video_rotation);
458  ADD_STRING(scale_type);
459  ADD_STRING(scc_auto_framerate);
460  ADD_STRING(scc_quality_opt);
461  ADD_STRING(video_render_d3d9_texture);
462  ADD_STRING(video_render_d3d9_render_mode);
463  ADD_STRING(video_render_buffer_queue_size);
464  ADD_STRING(av_enc_video_width_alignment);
465  ADD_STRING(av_enc_video_height_alignment);
466  ADD_STRING(av_enc_video_force_alignment);
467  ADD_STRING(av_dec_output_byte_frame);
468  ADD_STRING(av_dec_video_hwdec_config);
469  ADD_STRING(av_enc_video_hwenc_config);
470  ADD_STRING(av_enc_hw_hevc_exceptions);
471  ADD_STRING(av_dec_hw_hevc_exceptions);
472 
473  ADD_STRING(av_enc_video_use_a264);
474  ADD_STRING(av_enc_vmaf_calc);
476  ADD_STRING(av_enc_profiling);
477  ADD_STRING(av_enc_param_config);
478  ADD_STRING(av_enc_screen_sharing_subclass);
479 
480  ADD_STRING(enable_iptos);
481 
484  ADD_STRING(min_encode_keyframe_interval);
485  ADD_STRING(bFrames);
486  ADD_STRING(enable_bframe);
487  ADD_STRING(video_skip_enable);
488  ADD_STRING(av_enc_new_complexity);
489  ADD_STRING(av_enc_default_complexity);
490  ADD_STRING(av_enc_intra_key_interval);
491  ADD_STRING(key_force_device_score);
492  ADD_STRING(av_enc_bitrate_adjustment_type);
493  ADD_STRING(use_single_slice_parser);
494  ADD_STRING(enable_parser_reject);
495 
497  ADD_STRING(av_enc_send_alpha_data);
498  ADD_STRING(av_enc_alpha_data_codec_type);
499 
500 #undef ADD_STRING
501  std::string ret = ost.str();
502  auto index = ret.rfind(",");
503  if (index != ret.npos) {
504  ret = ret.substr(0, index);
505  ret += NEW_LINE;
506  }
507 
508  return "{" NEW_LINE + ret + "}";
509  }
510 
523  Optional<uint8_t> (number_of_bframe_temporal_layers);
537  //TODO(kefan) these vqc parameters should placed in MediaEngineParameterCollection
544  Optional<int> (min_qp);
545  Optional<int> (max_qp);
546  Optional<int> (frame_max_size);
550  //h265 dec enable
552  //av1 dec enable
557  // vp8 enc switch
559 
561 
564 
566 
579  // followings are hw setting
580 
581  // h264 quality scaler settings
585 
586  //vqa
588 
589  // Specifies whether or not to enable hw decode.
591  // Specifies whether or not to enable low stream hw encode.
593  // Specifies hw encode provider.
595 
596  // Specifies whether or not to enable hw encode.
599  // Specifies hw encode provider.
601  // Specifies the encoding scheme.
603  // Specifies the quality level for encoding.
604  // 0 Minimum quality, smaller output size.
605  // 100 Maximum quality, larger output size.
607  // Specifies the rate control mode.
608  // eAVEncCommonRateControlMode_CBR,
609  // eAVEncCommonRateControlMode_PeakConstrainedVBR,
610  // eAVEncCommonRateControlMode_UnconstrainedVBR,
611  // eAVEncCommonRateControlMode_Quality,
612  // eAVEncCommonRateControlMode_LowDelayVBR,
613  // eAVEncCommonRateControlMode_GlobalVBR,
614  // eAVEncCommonRateControlMode_GlobalLowDelayVBR
616  // Specifies whether the encoder uses concealment motion vectors.
618 
625  // Specifies the min resolution level to use h264 hardware encoder
627  // mac slice num for a264, valid only when > 0
635 
647  // for intra request
654 
660  // whether default use a264;
662  // whether open vmaf calc;
664  // min scc auto framerate, default don't setting;
666  // whether open video coding profiling
668  // sw encoder param
670  // screen sharing content type
680  // whether use single slice parser.
686 
697 
700 
703  private:
704  template <class T>
705  std::string ToStringIfSet(const char* key, const Optional<T>& val) const {
706  std::string str;
707  if (val) {
708  str = key;
709  str = "\t\"" + str + "\"";
710  str += ": ";
711  str += std::to_string(*val);
712  str += ",";
713  str += NEW_LINE;
714  }
715  return str;
716  }
717 
718  std::string ToStringIfSet(const char* key, const Optional<std::string>& val) const {
719  std::string str;
720  if (val) {
721  str = key;
722  str = "\t\"" + str + "\"";
723  str += ": \"";
724  str += val.value();
725  str += "\",";
726  str += NEW_LINE;
727  }
728  return str;
729  }
730 
731  std::string ToStringIfSet(const char* key, const Optional<bool>& val) const {
732  std::string str;
733  if (val) {
734  str = key;
735  str = "\t\"" + str + "\"";
736  str += ": ";
737  str += *val ? "true" : "false";
738  str += ",";
739  str += NEW_LINE;
740  }
741  return str;
742  }
743 
744  template <typename T>
745  static void SetFrom(Optional<T>* s, const Optional<T>& o) {
746  if (o) {
747  *s = o;
748  }
749  }
750 };
751 
752 } // namespace rtc
753 } // namespace agora
agora::rtc::VideoConfigurationEx::fps_up_step
Optional< int > fps_up_step
Definition: video_config_i.h:534
agora::rtc::VideoConfigurationEx::minor_stream_number_of_temporal_layers
Optional< uint8_t > minor_stream_number_of_temporal_layers
Definition: video_config_i.h:522
agora::rtc::VideoConfigurationEx::VideoConfigurationEx
VideoConfigurationEx()=default
agora::rtc::VideoConfigurationEx::h264_hw_min_res_level
Optional< int > h264_hw_min_res_level
Definition: video_config_i.h:626
agora::rtc::VideoConfigurationEx::sr_type
Optional< int > sr_type
Definition: video_config_i.h:634
agora::rtc::VideoConfigurationEx::intel_cpu_threshold_mhz
Optional< int32_t > intel_cpu_threshold_mhz
Definition: video_config_i.h:621
agora::rtc::VideoConfigurationEx::av_enc_video_max_slices
Optional< int > av_enc_video_max_slices
Definition: video_config_i.h:628
agora::rtc::VideoConfigurationEx::operator!=
bool operator!=(const VideoConfigurationEx &o) const
Definition: video_config_i.h:343
agora::rtc::VideoConfigurationEx::av_enc_alpha_data_codec_type
Optional< int > av_enc_alpha_data_codec_type
Definition: video_config_i.h:699
agora::rtc::VideoConfigurationEx::pps_data
Optional< std::string > pps_data
Definition: video_config_i.h:525
agora::rtc::VideoConfigurationEx::h265_min_enc_level
Optional< int > h265_min_enc_level
Definition: video_config_i.h:560
agora::rtc::VideoConfigurationEx::adaptive_op_mode
Optional< bool > adaptive_op_mode
Definition: video_config_i.h:527
agora::rtc::VideoConfigurationEx::video_vpr_adaptive_thres
Optional< int32_t > video_vpr_adaptive_thres
Definition: video_config_i.h:644
agora::rtc::VideoConfigurationEx::bitrate_adjust_ratio
Optional< std::string > bitrate_adjust_ratio
Definition: video_config_i.h:577
agora::rtc::VideoConfigurationEx::fps_down_step
Optional< int > fps_down_step
Definition: video_config_i.h:533
agora::rtc::VideoConfigurationEx::video_render_buffer_queue_size
Optional< int32_t > video_render_buffer_queue_size
Definition: video_config_i.h:659
agora::rtc::VideoConfigurationEx::quick_response_intra_request
Optional< int > quick_response_intra_request
Definition: video_config_i.h:547
agora::rtc::VideoConfigurationEx::vqc_version
Optional< int > vqc_version
Definition: video_config_i.h:535
agora::rtc::VideoConfigurationEx::PvcConfig
Optional< int > PvcConfig
Definition: video_config_i.h:632
agora::rtc::VideoConfigurationEx::scc_auto_framerate
Optional< bool > scc_auto_framerate
Definition: video_config_i.h:655
agora::rtc::VideoConfigurationEx::direct_cdn_streaming_h264_profile
Optional< int > direct_cdn_streaming_h264_profile
Definition: video_config_i.h:696
agora::rtc::VideoConfigurationEx::min_bitrate
Optional< int > min_bitrate
Definition: video_config_i.h:517
agora::rtc::VideoConfigurationEx::wz265_dec_enable
Optional< bool > wz265_dec_enable
Definition: video_config_i.h:565
agora::rtc::VideoConfigurationEx::frame_dropping_on
Optional< bool > frame_dropping_on
Definition: video_config_i.h:570
agora::rtc::VideoConfigurationEx::av_enc_new_complexity
Optional< bool > av_enc_new_complexity
Definition: video_config_i.h:693
agora::rtc::VideoConfigurationEx::orientation_mode
Optional< int > orientation_mode
Definition: video_config_i.h:520
agora::rtc::VideoConfigurationEx::h264_profile
Optional< int > h264_profile
Definition: video_config_i.h:526
agora::rtc::VideoConfigurationEx::av_enc_profiling
Optional< bool > av_enc_profiling
Definition: video_config_i.h:667
agora::rtc::VideoConfigurationEx::vp8_enc_switch
Optional< bool > vp8_enc_switch
Definition: video_config_i.h:558
agora::rtc::VideoConfigurationEx::enable_video_qoe_assess
Optional< bool > enable_video_qoe_assess
Definition: video_config_i.h:624
agora::rtc::VideoConfigurationEx::h265_dec_enable
Optional< bool > h265_dec_enable
Definition: video_config_i.h:551
agora::rtc::VideoConfigurationEx::av_enc_intra_key_interval
Optional< int32_t > av_enc_intra_key_interval
Definition: video_config_i.h:649
agora::rtc::VideoConfigurationEx::posted_frames_waiting_for_encode
Optional< int > posted_frames_waiting_for_encode
Definition: video_config_i.h:576
agora::rtc::VideoConfigurationEx::av1_encoder_thread_num
Optional< int > av1_encoder_thread_num
Definition: video_config_i.h:556
agora::rtc::VideoConfigurationEx::vqc_min_framerate
Optional< int > vqc_min_framerate
Definition: video_config_i.h:539
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::VideoConfigurationEx::av_enc_video_width_alignment
Optional< int32_t > av_enc_video_width_alignment
Definition: video_config_i.h:672
agora::rtc::VideoConfigurationEx::key_frame_interval
Optional< int > key_frame_interval
Definition: video_config_i.h:572
agora::rtc::VideoConfigurationEx::scc_quality_opt
Optional< bool > scc_quality_opt
Definition: video_config_i.h:656
agora::rtc::VideoConfigurationEx::operator==
bool operator==(const VideoConfigurationEx &o) const
Definition: video_config_i.h:184
agora::rtc::VideoConfigurationEx::denoising_on
Optional< bool > denoising_on
Definition: video_config_i.h:568
agora::rtc::VideoConfigurationEx::av_enc_param_config
Optional< std::string > av_enc_param_config
Definition: video_config_i.h:669
agora::rtc::VideoConfigurationEx::video_vpr_max_size
Optional< int32_t > video_vpr_max_size
Definition: video_config_i.h:640
agora::rtc::VideoConfigurationEx::enable_video_vpr
Optional< bool > enable_video_vpr
Definition: video_config_i.h:638
agora::rtc::VideoConfigurationEx::video_vpr_frozen_ms_thres
Optional< int32_t > video_vpr_frozen_ms_thres
Definition: video_config_i.h:641
agora::rtc::VideoConfigurationEx::start_bitrate
Optional< int > start_bitrate
Definition: video_config_i.h:515
agora::rtc::VideoConfigurationEx::matrixCoefficients
Optional< int > matrixCoefficients
Definition: video_config_i.h:684
agora::rtc::VideoConfigurationEx::av_enc_screen_sharing_subclass
Optional< int32_t > av_enc_screen_sharing_subclass
Definition: video_config_i.h:671
agora::rtc::VideoConfigurationEx::~VideoConfigurationEx
~VideoConfigurationEx()=default
agora::rtc::VideoConfigurationEx::video_vpr_method
Optional< int32_t > video_vpr_method
Definition: video_config_i.h:643
agora::rtc::VideoConfigurationEx::key_frame_interval_intra_request
Optional< int > key_frame_interval_intra_request
Definition: video_config_i.h:689
agora::rtc::VideoConfigurationEx::enable_iptos
Optional< bool > enable_iptos
Definition: video_config_i.h:685
agora::rtc::VideoConfigurationEx::vqc_ios_h265_adjust
Optional< int > vqc_ios_h265_adjust
Definition: video_config_i.h:543
agora::rtc::VideoConfigurationEx::h264_qp_thresholds_high
Optional< int > h264_qp_thresholds_high
Definition: video_config_i.h:584
agora::rtc::VideoConfigurationEx::hw_decoder_provider
Optional< std::string > hw_decoder_provider
Definition: video_config_i.h:594
agora::rtc::VideoConfigurationEx::SetAll
void SetAll(const VideoConfigurationEx &change)
Definition: video_config_i.h:30
agora::rtc::VideoConfigurationEx::ToString
std::string ToString() const
Definition: video_config_i.h:345
agora::rtc::VideoConfigurationEx::video_vpr_frozen_rate_thres
Optional< int32_t > video_vpr_frozen_rate_thres
Definition: video_config_i.h:642
agora::rtc::VideoConfigurationEx::complexity
Optional< int > complexity
Definition: video_config_i.h:567
agora::rtc::VideoConfigurationEx::use_single_slice_parser
Optional< bool > use_single_slice_parser
Definition: video_config_i.h:681
agora::rtc::VideoConfigurationEx::vqc_min_holdtime_auto_resize_zoomout
Optional< int > vqc_min_holdtime_auto_resize_zoomout
Definition: video_config_i.h:541
agora::rtc::VideoConfigurationEx::overuse_detector_version
Optional< int > overuse_detector_version
Definition: video_config_i.h:536
agora::rtc::VideoConfigurationEx::codec_type
Optional< int > codec_type
Definition: video_config_i.h:511
agora::rtc::VideoConfigurationEx::video_render_d3d9_texture
Optional< bool > video_render_d3d9_texture
Definition: video_config_i.h:657
agora::rtc::VideoConfigurationEx::h264_qp_thresholds_low
Optional< int > h264_qp_thresholds_low
Definition: video_config_i.h:583
agora::rtc::VideoConfigurationEx::nvdia_cpu_threshold_mhz
Optional< int32_t > nvdia_cpu_threshold_mhz
Definition: video_config_i.h:620
agora::rtc::VideoConfigurationEx::enable_bframe
Optional< bool > enable_bframe
Definition: video_config_i.h:701
agora::rtc::VideoConfigurationEx::vdm_not_override_lua_smallvideo_not_use_hwenc_policy
Optional< bool > vdm_not_override_lua_smallvideo_not_use_hwenc_policy
Definition: video_config_i.h:622
agora::rtc::VideoConfigurationEx::number_of_temporal_layers
Optional< uint8_t > number_of_temporal_layers
Definition: video_config_i.h:521
agora::rtc::VideoConfigurationEx::av_enc_codec_type
Optional< uint32_t > av_enc_codec_type
Definition: video_config_i.h:602
agora::rtc::VideoConfigurationEx::save_encode_bitrate
Optional< bool > save_encode_bitrate
Definition: video_config_i.h:687
agora::rtc::VideoConfigurationEx::actual_max_bitrate
Optional< int > actual_max_bitrate
Definition: video_config_i.h:519
agora::rtc::VideoConfigurationEx::retrans_detect_enable
Optional< bool > retrans_detect_enable
Definition: video_config_i.h:645
agora::rtc::VideoConfigurationEx::degradation_preference
Optional< int > degradation_preference
Definition: video_config_i.h:532
agora::rtc::VideoConfigurationEx::video_rotation
Optional< int > video_rotation
Definition: video_config_i.h:652
agora::rtc::VideoConfigurationEx::fec_method
Optional< int > fec_method
Definition: video_config_i.h:548
agora::rtc::VideoConfigurationEx::isScreenSharingJbEnabled
Optional< bool > isScreenSharingJbEnabled
Definition: video_config_i.h:636
agora::rtc::VideoConfigurationEx::scale_type
Optional< int > scale_type
Definition: video_config_i.h:653
agora::rtc::VideoConfigurationEx::has_intra_request
Optional< bool > has_intra_request
Definition: video_config_i.h:571
agora::rtc::VideoConfigurationEx::av_dec_output_byte_frame
Optional< bool > av_dec_output_byte_frame
Definition: video_config_i.h:679
agora::rtc::VideoConfigurationEx::fec_fix_rate
Optional< int > fec_fix_rate
Definition: video_config_i.h:549
agora::rtc::VideoConfigurationEx::min_encode_keyframe_interval
Optional< int > min_encode_keyframe_interval
Definition: video_config_i.h:691
agora::rtc::VideoConfigurationEx::video_enc_min_scc_auto_framerate
Optional< int > video_enc_min_scc_auto_framerate
Definition: video_config_i.h:665
agora::rtc::VideoConfigurationEx::h264_hwenc
Optional< int > h264_hwenc
Definition: video_config_i.h:598
agora::rtc::VideoConfigurationEx::PvcSupport
Optional< bool > PvcSupport
Definition: video_config_i.h:631
agora::rtc::VideoConfigurationEx::minbitrate_ratio
Optional< std::string > minbitrate_ratio
Definition: video_config_i.h:578
agora::rtc::VideoConfigurationEx::loop_filter_disable_idc
Optional< int > loop_filter_disable_idc
Definition: video_config_i.h:574
agora::rtc::VideoConfigurationEx::av_enc_video_hwenc_config
Optional< std::string > av_enc_video_hwenc_config
Definition: video_config_i.h:674
agora::rtc::VideoConfigurationEx::video_switch_soft_decoder_threshold
Optional< int > video_switch_soft_decoder_threshold
Definition: video_config_i.h:690
agora::rtc::VideoConfigurationEx
Definition: video_config_i.h:25
agora::rtc::VideoConfigurationEx::target_bitrate
Optional< int > target_bitrate
Definition: video_config_i.h:516
agora::rtc::VideoConfigurationEx::number_of_spatial_layers
Optional< uint8_t > number_of_spatial_layers
Definition: video_config_i.h:528
agora::rtc::VideoConfigurationEx::av_dec_hw_hevc_exceptions
Optional< int32_t > av_dec_hw_hevc_exceptions
Definition: video_config_i.h:677
agora::rtc::VideoConfigurationEx::enable_change_encoder_profile
Optional< bool > enable_change_encoder_profile
Definition: video_config_i.h:563
agora::rtc::VideoConfigurationEx::key_force_device_score
Optional< int32_t > key_force_device_score
Definition: video_config_i.h:650
agora::rtc::VideoConfigurationEx::sps_data
Optional< std::string > sps_data
Definition: video_config_i.h:524
agora::rtc::VideoConfigurationEx::av_dec_video_hwdec_config
Optional< std::string > av_dec_video_hwdec_config
Definition: video_config_i.h:675
agora::rtc::VideoConfigurationEx::av_enc_vmaf_calc
Optional< bool > av_enc_vmaf_calc
Definition: video_config_i.h:663
agora::rtc::VideoConfigurationEx::av_enc_bitrate_adjustment_type
Optional< int32_t > av_enc_bitrate_adjustment_type
Definition: video_config_i.h:651
agora::rtc::VideoConfigurationEx::color_space_enable
Optional< bool > color_space_enable
Definition: video_config_i.h:682
agora::rtc::VideoConfigurationEx::dec_mosreport
Optional< int > dec_mosreport
Definition: video_config_i.h:587
agora::rtc::VideoConfigurationEx::background_detection_on
Optional< bool > background_detection_on
Definition: video_config_i.h:575
agora::rtc::VideoConfigurationEx::JBMinDelayForRDCEnable
Optional< bool > JBMinDelayForRDCEnable
Definition: video_config_i.h:637
agora::rtc::VideoConfigurationEx::video_vpr_init_size
Optional< int32_t > video_vpr_init_size
Definition: video_config_i.h:639
agora::rtc::VideoConfigurationEx::minscore_for_swh265enc
Optional< int > minscore_for_swh265enc
Definition: video_config_i.h:562
agora::rtc::VideoConfigurationEx::av_enc_hw_hevc_exceptions
Optional< int32_t > av_enc_hw_hevc_exceptions
Definition: video_config_i.h:676
agora::rtc::VideoConfigurationEx::frame_width
Optional< int > frame_width
Definition: video_config_i.h:512
agora::rtc::VideoConfigurationEx::av_enc_video_use_a264
Optional< bool > av_enc_video_use_a264
Definition: video_config_i.h:661
agora::rtc::VideoConfigurationEx::enable_video_freeze_diagnose
Optional< bool > enable_video_freeze_diagnose
Definition: video_config_i.h:623
agora::rtc::VideoConfigurationEx::max_bitrate
Optional< int > max_bitrate
Definition: video_config_i.h:518
agora::rtc::VideoConfigurationEx::enable_video_sender_frame_dropper
Optional< bool > enable_video_sender_frame_dropper
Definition: video_config_i.h:617
agora::rtc::VideoConfigurationEx::flexible_mode
Optional< bool > flexible_mode
Definition: video_config_i.h:529
agora::rtc::VideoConfigurationEx::enable_sr
Optional< bool > enable_sr
Definition: video_config_i.h:633
agora::rtc::VideoConfigurationEx::av_enc_default_complexity
Optional< int > av_enc_default_complexity
Definition: video_config_i.h:694
agora::rtc::VideoConfigurationEx::hw_encoder_provider
Optional< uint32_t > hw_encoder_provider
Definition: video_config_i.h:600
agora::rtc::VideoConfigurationEx::num_of_encoder_cores
Optional< int > num_of_encoder_cores
Definition: video_config_i.h:531
agora::rtc::VideoConfigurationEx::vqc_quick_adaptNetwork
Optional< bool > vqc_quick_adaptNetwork
Definition: video_config_i.h:538
agora::rtc::VideoConfigurationEx::vqc_min_holdtime_auto_resize_zoomin
Optional< int > vqc_min_holdtime_auto_resize_zoomin
Definition: video_config_i.h:540
agora::rtc::VideoConfigurationEx::av_enc_video_height_alignment
Optional< int32_t > av_enc_video_height_alignment
Definition: video_config_i.h:673
agora::rtc::VideoConfigurationEx::enable_parser_reject
Optional< bool > enable_parser_reject
Definition: video_config_i.h:695
agora::rtc::VideoConfigurationEx::av_enc_video_force_alignment
Optional< bool > av_enc_video_force_alignment
Definition: video_config_i.h:678
agora::rtc::VideoConfigurationEx::video_skip_enable
Optional< bool > video_skip_enable
Definition: video_config_i.h:692
agora::rtc::VideoConfigurationEx::vqc_qp_adjust
Optional< int > vqc_qp_adjust
Definition: video_config_i.h:542
agora::rtc::VideoConfigurationEx::quality_scale_only_on_average_qp
Optional< bool > quality_scale_only_on_average_qp
Definition: video_config_i.h:582
agora::rtc::VideoConfigurationEx::enable_hw_decoder
Optional< bool > enable_hw_decoder
Definition: video_config_i.h:590
agora::rtc::VideoConfigurationEx::bFrames
Optional< int > bFrames
Definition: video_config_i.h:702
agora::rtc::VideoConfigurationEx::enable_nvdia_first
Optional< bool > enable_nvdia_first
Definition: video_config_i.h:619
agora::rtc::VideoConfigurationEx::pvc_one_model
Optional< int > pvc_one_model
Definition: video_config_i.h:630
agora::rtc::VideoConfigurationEx::use_sent_ts_enable
Optional< bool > use_sent_ts_enable
Definition: video_config_i.h:646
agora::rtc::VideoConfigurationEx::frame_rate
Optional< int > frame_rate
Definition: video_config_i.h:514
agora::rtc::VideoConfigurationEx::av_enc_common_rate_control_mode
Optional< uint32_t > av_enc_common_rate_control_mode
Definition: video_config_i.h:615
agora::rtc::VideoConfigurationEx::av_enc_send_alpha_data
Optional< bool > av_enc_send_alpha_data
Definition: video_config_i.h:698
agora::rtc::VideoConfigurationEx::av1_screen_enable
Optional< bool > av1_screen_enable
Definition: video_config_i.h:555
agora::rtc::VideoConfigurationEx::frame_height
Optional< int > frame_height
Definition: video_config_i.h:513
agora::rtc::VideoConfigurationEx::save_encode_bitrate_params
Optional< std::string > save_encode_bitrate_params
Definition: video_config_i.h:688
agora::rtc::VideoConfigurationEx::av_enc_common_quality
Optional< uint32_t > av_enc_common_quality
Definition: video_config_i.h:606
agora::rtc::VideoConfigurationEx::videoFullrange
Optional< int > videoFullrange
Definition: video_config_i.h:683
agora::rtc::VideoConfigurationEx::entropy_coding_mode_flag
Optional< int > entropy_coding_mode_flag
Definition: video_config_i.h:573
agora::rtc::VideoConfigurationEx::enable_minor_stream_intra_request
Optional< bool > enable_minor_stream_intra_request
Definition: video_config_i.h:648
agora::rtc::VideoConfigurationEx::av1_camera_enable
Optional< bool > av1_camera_enable
Definition: video_config_i.h:554
agora::rtc::VideoConfigurationEx::enable_hw_encoder
Optional< bool > enable_hw_encoder
Definition: video_config_i.h:597
rtc
Definition: video_node_i.h:25
agora::rtc::VideoConfigurationEx::video_render_d3d9_render_mode
Optional< int32_t > video_render_d3d9_render_mode
Definition: video_config_i.h:658
agora::Optional< int >
agora::rtc::VideoConfigurationEx::interlayer_pred
Optional< int > interlayer_pred
Definition: video_config_i.h:530
agora::rtc::VideoConfigurationEx::low_stream_enable_hw_encoder
Optional< bool > low_stream_enable_hw_encoder
Definition: video_config_i.h:592
agora::rtc::VideoConfigurationEx::av1_dec_enable
Optional< bool > av1_dec_enable
Definition: video_config_i.h:553
agora::rtc::VideoConfigurationEx::automatic_resize_on
Optional< bool > automatic_resize_on
Definition: video_config_i.h:569
agora::rtc::VideoConfigurationEx::enable_pvc
Optional< bool > enable_pvc
Definition: video_config_i.h:629