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(h265_screen_enable);
35  SET_FROM(frame_width);
36  SET_FROM(frame_height);
37  SET_FROM(frame_rate);
38  SET_FROM(start_bitrate);
39  SET_FROM(target_bitrate);
40  SET_FROM(min_bitrate);
41  SET_FROM(max_bitrate);
42  SET_FROM(actual_max_bitrate);
43  SET_FROM(orientation_mode);
44  SET_FROM(number_of_temporal_layers);
46  SET_FROM(number_of_bframe_temporal_layers);
47  SET_FROM(sps_data);
48  SET_FROM(pps_data);
49  SET_FROM(h264_profile);
50  SET_FROM(adaptive_op_mode);
51  SET_FROM(number_of_spatial_layers);
52  SET_FROM(flexible_mode);
53  SET_FROM(interlayer_pred);
54  SET_FROM(num_of_encoder_cores);
55  SET_FROM(degradation_preference);
56  SET_FROM(fps_down_step);
57  SET_FROM(fps_up_step);
58  SET_FROM(vqc_version);
59  SET_FROM(vqc_force_use_version);
60  SET_FROM(overuse_detector_version);
61  //TODO(kefan) these vqc parameters should placed in MediaEngineParameterCollection
62  SET_FROM(vqc_quick_adaptNetwork);
63  SET_FROM(vqc_min_framerate);
67  SET_FROM(vqc_qp_adjust);
68  SET_FROM(vqc_ios_h265_adjust);
69  SET_FROM(vqc_res_min_width);
70  SET_FROM(vqc_res_min_height);
71  SET_FROM(min_qp);
72  SET_FROM(max_qp);
73  SET_FROM(frame_max_size);
74  SET_FROM(fec_fix_rate);
76  SET_FROM(fec_method);
77  SET_FROM(enable_pvc);
79  SET_FROM(enable_pvc_verify);
80  SET_FROM(enable_sr_verify);
81  SET_FROM(sr_verify_type);
82  SET_FROM(color_space_enable);
83  SET_FROM(videoFullrange);
84  SET_FROM(matrixCoefficients);
85  SET_FROM(enable_sr);
86  SET_FROM(sr_type);
87  SET_FROM(save_encode_bitrate);
90 
91  SET_FROM(complexity);
92  SET_FROM(denoising_on);
93  SET_FROM(automatic_resize_on);
94  SET_FROM(frame_dropping_on);
95  SET_FROM(has_intra_request);
96  SET_FROM(key_frame_interval);
97  SET_FROM(entropy_coding_mode_flag);
98  SET_FROM(loop_filter_disable_idc);
99  SET_FROM(background_detection_on);
101  SET_FROM(freeze_detect_threshold);
102  SET_FROM(bitrate_adjust_ratio);
103  SET_FROM(minbitrate_ratio);
105  SET_FROM(h264_qp_thresholds_low);
106  SET_FROM(h264_qp_thresholds_high);
107  SET_FROM(dec_mosreport);
108  SET_FROM(vqa_model_target_fps);
109  SET_FROM(reset_bitrate_ratio);
110  SET_FROM(reset_framerate_ratio);
111  SET_FROM(enable_hw_decoder);
112  SET_FROM(enable_background_hw_decode);
113  SET_FROM(hw_decoder_provider);
114  SET_FROM(decoder_thread_num);
115  SET_FROM(max_hwdec_cosessions);
117  SET_FROM(enable_hw_encoder);
118  SET_FROM(hw_encoder_provider);
119  SET_FROM(default_enable_hwenc_win32);
121  SET_FROM(hwenc_blacklist);
122  SET_FROM(hwdec_blacklist);
123  SET_FROM(av_enc_codec_type);
124  SET_FROM(av_enc_common_quality);
127  SET_FROM(enable_video_qoe_assess);
128  SET_FROM(h264_hw_min_res_level);
129  SET_FROM(av_enc_video_max_slices);
132  SET_FROM(video_encoder_rc_scene);
134  SET_FROM(av_sw_enc_dump_frame_info);
135  SET_FROM(vp8_enc_switch);
136  SET_FROM(av1_dec_enable);
137  SET_FROM(h265_dec_enable);
138  SET_FROM(av1_camera_enable);
139  SET_FROM(av1_screen_enable);
140  SET_FROM(av1_feedback_enable);
141  SET_FROM(enc_scc_enable);
145  SET_FROM(minscore_for_swh265enc);
146  SET_FROM(max_hwenc_cosessions);
147  SET_FROM(min_enc_level);
148  SET_FROM(wz265_dec_enable);
149  SET_FROM(vcm_info_event_enable);
150 
151  SET_FROM(enable_video_vpr);
152  SET_FROM(video_vpr_init_size);
153  SET_FROM(video_vpr_max_size);
154  SET_FROM(video_vpr_frozen_ms_thres);
155  SET_FROM(video_vpr_frozen_rate_thres);
156  SET_FROM(video_vpr_method);
157  SET_FROM(video_vpr_adaptive_thres);
158  SET_FROM(retrans_detect_enable);
159  SET_FROM(use_sent_ts_enable);
161  SET_FROM(video_rotation);
162  SET_FROM(scale_type);
163  SET_FROM(video_render_d3d9_texture);
166  SET_FROM(video_render_vsync_switch);
167  SET_FROM(video_force_texture_to_i420);
178  SET_FROM(av_dec_texture_copy_enable);
179  SET_FROM(av_dec_output_byte_frame);
180  SET_FROM(av_dec_output_10bit_frame);
181  SET_FROM(av_enc_google_enable);
182  SET_FROM(av_dec_google_enable);
183  SET_FROM(av_dec_google_dav1d_enable);
186  SET_FROM(av_dec_video_hwdec_config);
187  SET_FROM(av_enc_video_hwenc_config);
188  SET_FROM(av_hw_dec_skip_by_name);
189  SET_FROM(av_hw_enc_skip_by_name);
190  SET_FROM(av_enc_hw_hevc_exceptions);
191  SET_FROM(av_dec_hw_hevc_exceptions);
192  SET_FROM(av_enc_hw_exceptions);
193 
194  SET_FROM(av_enc_video_use_a264);
195  SET_FROM(av_enc_video_qp_parser_skip);
196  SET_FROM(video_clarity_analysis_flag);
201  SET_FROM(av_enc_video_enable_roi);
202  SET_FROM(roi_max_qp);
203  SET_FROM(roi_qp_offset);
204  SET_FROM(av_enc_vmaf_calc);
205  SET_FROM(av_enc_profiling);
206  SET_FROM(av_enc_param_config);
208  SET_FROM(video_quality_guarantee);
211 
212  SET_FROM(enable_iptos);
213 
217  SET_FROM(bFrames);
218  SET_FROM(enable_bframe);
219  SET_FROM(enable_bframe_h265);
220  SET_FROM(bitrate_ceiling_ratio);
221  SET_FROM(video_skip_enable);
222  SET_FROM(av_enc_new_complexity);
223  SET_FROM(av_enc_default_complexity);
224  SET_FROM(av_enc_intra_key_interval);
225  SET_FROM(key_force_device_score);
227  SET_FROM(use_single_slice_parser);
228  SET_FROM(enable_parser_reject);
229 
230  SET_FROM(av_enc_send_sei_alpha);
233  SET_FROM(av_enc_encode_alpha);
236  SET_FROM(fake_enc_error_code);
238 
240  SET_FROM(fps_est_window_size_ms);
241  SET_FROM(default_enable_hw_encoder);
245  SET_FROM(enable_follow_major_stream);
247  SET_FROM(enable_performance_gating);
251  SET_FROM(max_all_intra_encode_time);
253  SET_FROM(feedback_mode);
256  SET_FROM(minimum_amf_version_require);
257  SET_FROM(vtenc_default_pixel_format);
260 #undef SET_FROM
261  }
262 
263  bool operator==(const VideoConfigurationEx& o) const {
264 #define BEGIN_COMPARE() bool b = true
265 #define ADD_COMPARE(X) b = (b && (X == o.X))
266 #define END_COMPARE()
267 
268  BEGIN_COMPARE();
269  ADD_COMPARE(codec_type);
270  ADD_COMPARE(h265_screen_enable);
271  ADD_COMPARE(frame_width);
272  ADD_COMPARE(frame_height);
273  ADD_COMPARE(frame_rate);
274  ADD_COMPARE(start_bitrate);
275  ADD_COMPARE(target_bitrate);
276  ADD_COMPARE(min_bitrate);
277  ADD_COMPARE(orientation_mode);
278  ADD_COMPARE(number_of_temporal_layers);
280  ADD_COMPARE(number_of_bframe_temporal_layers);
281  ADD_COMPARE(sps_data);
282  ADD_COMPARE(pps_data);
283  ADD_COMPARE(h264_profile);
284  ADD_COMPARE(adaptive_op_mode);
285  ADD_COMPARE(number_of_spatial_layers);
286  ADD_COMPARE(flexible_mode);
287  ADD_COMPARE(interlayer_pred);
288  ADD_COMPARE(num_of_encoder_cores);
289  ADD_COMPARE(degradation_preference);
290  ADD_COMPARE(fps_down_step);
291  ADD_COMPARE(fps_up_step);
292  ADD_COMPARE(vqc_version);
293  ADD_COMPARE(vqc_force_use_version);
294  ADD_COMPARE(overuse_detector_version);
295  //TODO(kefan) these vqc parameters should placed in MediaEngineParameterCollection
296  ADD_COMPARE(vqc_quick_adaptNetwork);
297  ADD_COMPARE(vqc_min_framerate);
298  ADD_COMPARE(vqc_settings_by_resolution);
301  ADD_COMPARE(vqc_qp_adjust);
302  ADD_COMPARE(vqc_ios_h265_adjust);
303  ADD_COMPARE(vqc_res_min_width);
304  ADD_COMPARE(vqc_res_min_height);
305  ADD_COMPARE(min_qp);
306  ADD_COMPARE(max_qp);
307  ADD_COMPARE(frame_max_size);
308  ADD_COMPARE(fec_fix_rate);
309  ADD_COMPARE(quick_response_intra_request);
310  ADD_COMPARE(fec_method);
311  ADD_COMPARE(enable_pvc);
312  ADD_COMPARE(pvc_max_support_resolution);
313  ADD_COMPARE(enable_pvc_verify);
314  ADD_COMPARE(enable_sr_verify);
315  ADD_COMPARE(sr_verify_type);
316  ADD_COMPARE(enable_sr);
317  ADD_COMPARE(sr_type);
318  ADD_COMPARE(save_encode_bitrate);
320  ADD_COMPARE(save_encode_bitrate_params);
321 
322  ADD_COMPARE(complexity);
323  ADD_COMPARE(denoising_on);
324  ADD_COMPARE(automatic_resize_on);
325  ADD_COMPARE(frame_dropping_on);
326  ADD_COMPARE(has_intra_request);
327  ADD_COMPARE(key_frame_interval);
328  ADD_COMPARE(entropy_coding_mode_flag);
329  ADD_COMPARE(loop_filter_disable_idc);
330  ADD_COMPARE(background_detection_on);
332  ADD_COMPARE(freeze_detect_threshold);
333  ADD_COMPARE(bitrate_adjust_ratio);
334  ADD_COMPARE(minbitrate_ratio);
336  ADD_COMPARE(h264_qp_thresholds_low);
337  ADD_COMPARE(h264_qp_thresholds_high);
338  ADD_COMPARE(dec_mosreport);
339  ADD_COMPARE(vqa_model_target_fps);
340  ADD_COMPARE(reset_bitrate_ratio);
341  ADD_COMPARE(reset_framerate_ratio);
342  ADD_COMPARE(enable_hw_decoder);
343  ADD_COMPARE(enable_background_hw_decode);
344  ADD_COMPARE(hw_decoder_provider);
345  ADD_COMPARE(decoder_thread_num);
346  ADD_COMPARE(max_hwdec_cosessions);
347  ADD_COMPARE(low_stream_enable_hw_encoder);
348  ADD_COMPARE(enable_hw_encoder);
349  ADD_COMPARE(hw_encoder_provider);
350  ADD_COMPARE(av_enc_codec_type);
351  ADD_COMPARE(av_enc_common_quality);
352  ADD_COMPARE(av_enc_common_rate_control_mode);
353  ADD_COMPARE(video_render_d3d9_texture);
354  ADD_COMPARE(video_render_d3d9_render_mode);
355  ADD_COMPARE(video_render_buffer_queue_size);
356  ADD_COMPARE(video_render_vsync_switch);
357  ADD_COMPARE(video_force_texture_to_i420);
362  ADD_COMPARE(enable_video_qoe_assess);
363  ADD_COMPARE(h264_hw_min_res_level);
364  ADD_COMPARE(av_enc_video_max_slices);
365  ADD_COMPARE(video_encoder_rc_limit_value);
367  ADD_COMPARE(video_encoder_rc_scene);
369  ADD_COMPARE(av_sw_enc_dump_frame_info);
370  ADD_COMPARE(vp8_enc_switch);
371  ADD_COMPARE(h265_dec_enable);
372  ADD_COMPARE(av1_dec_enable);
373  ADD_COMPARE(av1_camera_enable);
374  ADD_COMPARE(av1_feedback_enable);
375  ADD_COMPARE(av1_screen_enable);
376  ADD_COMPARE(enc_scc_enable);
377  ADD_COMPARE(major_stream_encoder_thread_num);
378  ADD_COMPARE(minor_stream_encoder_thread_num);
379  ADD_COMPARE(color_space_enable);
380  ADD_COMPARE(videoFullrange);
381  ADD_COMPARE(matrixCoefficients);
382  ADD_COMPARE(vcm_info_event_enable);
383 
384  ADD_COMPARE(min_enc_level);
385  ADD_COMPARE(minscore_for_swh265enc);
386  ADD_COMPARE(max_hwenc_cosessions);
387  ADD_COMPARE(default_enable_hwenc_win32);
389  ADD_COMPARE(hwenc_blacklist);
390  ADD_COMPARE(hwdec_blacklist);
391  ADD_COMPARE(enable_change_encoder_profile);
392  ADD_COMPARE(wz265_dec_enable);
393 
394  ADD_COMPARE(enable_video_vpr);
395  ADD_COMPARE(video_vpr_init_size);
396  ADD_COMPARE(video_vpr_max_size);
397  ADD_COMPARE(video_vpr_frozen_ms_thres);
398  ADD_COMPARE(video_vpr_frozen_rate_thres);
399  ADD_COMPARE(video_vpr_method);
400  ADD_COMPARE(video_vpr_adaptive_thres);
401  ADD_COMPARE(av_enc_intra_key_interval);
402  ADD_COMPARE(key_force_device_score);
403  ADD_COMPARE(av_enc_bitrate_adjustment_type);
404  ADD_COMPARE(retrans_detect_enable);
405  ADD_COMPARE(use_sent_ts_enable);
407  ADD_COMPARE(video_rotation);
408  ADD_COMPARE(scale_type);
409  ADD_COMPARE(av_enc_video_use_a264);
410  ADD_COMPARE(av_enc_video_qp_parser_skip);
411  ADD_COMPARE(video_clarity_analysis_flag);
416  ADD_COMPARE(av_enc_video_enable_roi);
417  ADD_COMPARE(roi_max_qp);
418  ADD_COMPARE(roi_qp_offset);
419  ADD_COMPARE(av_enc_vmaf_calc);
420  ADD_COMPARE(av_enc_profiling);
421  ADD_COMPARE(av_enc_param_config);
423  ADD_COMPARE(video_quality_guarantee);
424  ADD_COMPARE(av_enc_advanced_param_config);
425  ADD_COMPARE(av_enc_screen_sharing_subclass);
426  ADD_COMPARE(av_enc_video_width_alignment);
427  ADD_COMPARE(av_enc_video_height_alignment);
430  ADD_COMPARE(av_enc_video_force_alignment);
432  ADD_COMPARE(av_enc_video_adjustment_reset);
433  ADD_COMPARE(av_dec_texture_copy_enable);
434  ADD_COMPARE(av_dec_output_byte_frame);
435  ADD_COMPARE(av_dec_output_10bit_frame);
436  ADD_COMPARE(av_enc_google_enable);
437  ADD_COMPARE(av_dec_google_enable);
438  ADD_COMPARE(av_dec_google_dav1d_enable);
441 
442  ADD_COMPARE(enable_iptos);
443 
446  ADD_COMPARE(min_encode_keyframe_interval);
447  ADD_COMPARE(bFrames);
448  ADD_COMPARE(enable_bframe);
449  ADD_COMPARE(enable_bframe_h265);
450  ADD_COMPARE(video_skip_enable);
451  ADD_COMPARE(av_enc_new_complexity);
452  ADD_COMPARE(av_enc_default_complexity);
453  ADD_COMPARE(use_single_slice_parser);
454  ADD_COMPARE(av_enc_video_hwenc_config);
455  ADD_COMPARE(av_dec_video_hwdec_config);
456  ADD_COMPARE(av_hw_dec_skip_by_name);
457  ADD_COMPARE(av_hw_enc_skip_by_name);
458  ADD_COMPARE(av_enc_hw_hevc_exceptions);
459  ADD_COMPARE(av_dec_hw_hevc_exceptions);
460  ADD_COMPARE(av_enc_hw_exceptions);
461  ADD_COMPARE(enable_parser_reject);
463 
464  ADD_COMPARE(av_enc_send_sei_alpha);
465  ADD_COMPARE(av_enc_alpha_data_codec_type);
466  ADD_COMPARE(av_enc_alpha_data_scale_mode);
467  ADD_COMPARE(av_enc_encode_alpha);
468  ADD_COMPARE(enable_hw_encoder_quickly_start);
470  ADD_COMPARE(fake_enc_error_code);
471  ADD_COMPARE(enable_smooth_enc_codec_change);
472  ADD_COMPARE(fps_est_window_size_ms);
473  ADD_COMPARE(default_enable_hw_encoder);
474  ADD_COMPARE(use_keyframe_type_from_parser);
475  ADD_COMPARE(frame_glitching_detect_level);
476  ADD_COMPARE(simulcast_stream_bitrate_string);
477  ADD_COMPARE(enable_follow_major_stream);
479  ADD_COMPARE(enable_performance_gating);
482  ADD_COMPARE(enable_instant_streaming_mode);
483  ADD_COMPARE(max_all_intra_encode_time);
484  ADD_COMPARE(scc_autoframerate_bitrate_ratio);
485  ADD_COMPARE(feedback_mode);
486  ADD_COMPARE(response_quick_intra_request);
487  ADD_COMPARE(encode_failed_fallback_thresh);
488  ADD_COMPARE(minimum_amf_version_require);
489  ADD_COMPARE(vtenc_default_pixel_format);
492  END_COMPARE();
493 
494 #undef BEGIN_COMPARE
495 #undef ADD_COMPARE
496 #undef END_COMPARE
497  return b;
498  }
499 
500  bool operator!=(const VideoConfigurationEx& o) const { return !(*this == o); }
501 
502  std::string ToString() const {
503 #define ADD_STRING(X) ost << ToStringIfSet(#X, X)
504 
505  std::ostringstream ost;
506  ADD_STRING(codec_type);
507  ADD_STRING(h265_screen_enable);
508  ADD_STRING(frame_width);
509  ADD_STRING(frame_height);
510  ADD_STRING(frame_rate);
511  ADD_STRING(start_bitrate);
512  ADD_STRING(target_bitrate);
513  ADD_STRING(min_bitrate);
514  ADD_STRING(max_bitrate);
515  ADD_STRING(actual_max_bitrate);
516  ADD_STRING(orientation_mode);
517  ADD_STRING(number_of_temporal_layers);
519  ADD_STRING(number_of_bframe_temporal_layers);
520  ADD_STRING(sps_data);
521  ADD_STRING(pps_data);
522  ADD_STRING(h264_profile);
523  ADD_STRING(adaptive_op_mode);
524  ADD_STRING(number_of_spatial_layers);
525  ADD_STRING(flexible_mode);
526  ADD_STRING(interlayer_pred);
527  ADD_STRING(num_of_encoder_cores);
528  ADD_STRING(degradation_preference);
529  ADD_STRING(fps_down_step);
530  ADD_STRING(fps_up_step);
531  ADD_STRING(vqc_version);
532  ADD_STRING(vqc_force_use_version);
533  ADD_STRING(overuse_detector_version);
534  //TODO(kefan) these vqc parameters should placed in MediaEngineParameterCollection
535  ADD_STRING(vqc_quick_adaptNetwork);
536  ADD_STRING(vqc_min_framerate);
537  ADD_STRING(vqc_settings_by_resolution);
540  ADD_STRING(vqc_qp_adjust);
541  ADD_STRING(vqc_ios_h265_adjust);
542  ADD_STRING(vqc_res_min_width);
543  ADD_STRING(vqc_res_min_height);
544  ADD_STRING(min_qp);
545  ADD_STRING(max_qp);
546  ADD_STRING(frame_max_size);
547  ADD_STRING(fec_fix_rate);
548  ADD_STRING(quick_response_intra_request);
549  ADD_STRING(fec_method);
550  ADD_STRING(enable_pvc);
551  ADD_STRING(pvc_max_support_resolution);
552  ADD_STRING(enable_pvc_verify);
553  ADD_STRING(enable_sr_verify);
554  ADD_STRING(sr_verify_type);
555  ADD_STRING(enable_sr);
556  ADD_STRING(sr_type);
557 
558  ADD_STRING(complexity);
559  ADD_STRING(denoising_on);
560  ADD_STRING(automatic_resize_on);
561  ADD_STRING(frame_dropping_on);
562  ADD_STRING(has_intra_request);
563  ADD_STRING(key_frame_interval);
564  ADD_STRING(entropy_coding_mode_flag);
565  ADD_STRING(loop_filter_disable_idc);
566  ADD_STRING(background_detection_on);
568  ADD_STRING(freeze_detect_threshold);
569  ADD_STRING(bitrate_adjust_ratio);
570  ADD_STRING(minbitrate_ratio);
572  ADD_STRING(h264_qp_thresholds_low);
573  ADD_STRING(h264_qp_thresholds_high);
574  ADD_STRING(dec_mosreport);
575  ADD_STRING(vqa_model_target_fps);
576  ADD_STRING(reset_bitrate_ratio);
577  ADD_STRING(reset_framerate_ratio);
578  ADD_STRING(enable_hw_decoder);
579  ADD_STRING(enable_background_hw_decode);
580  ADD_STRING(hw_decoder_provider);
581  ADD_STRING(decoder_thread_num);
582  ADD_STRING(max_hwdec_cosessions);
583  ADD_STRING(low_stream_enable_hw_encoder);
584  ADD_STRING(enable_hw_encoder);
585  ADD_STRING(hw_encoder_provider);
586  ADD_STRING(av_enc_codec_type);
587  ADD_STRING(av_enc_common_quality);
590  ADD_STRING(enable_video_qoe_assess);
591  ADD_STRING(h264_hw_min_res_level);
592  ADD_STRING(av_enc_video_max_slices);
593  ADD_STRING(video_encoder_rc_limit_value);
595  ADD_STRING(video_encoder_rc_scene);
597  ADD_STRING(av_sw_enc_dump_frame_info);
598  ADD_STRING(vp8_enc_switch);
599  ADD_STRING(h265_dec_enable);
600  ADD_STRING(av1_dec_enable);
601  ADD_STRING(av1_camera_enable);
602  ADD_STRING(av1_feedback_enable);
603  ADD_STRING(av1_screen_enable);
604  ADD_STRING(enc_scc_enable);
607  ADD_STRING(save_encode_bitrate);
609  ADD_STRING(save_encode_bitrate_params);
610  ADD_STRING(vcm_info_event_enable);
611 
612  ADD_STRING(min_enc_level);
613  ADD_STRING(minscore_for_swh265enc);
614  ADD_STRING(max_hwenc_cosessions);
615  ADD_STRING(default_enable_hwenc_win32);
617  ADD_STRING(hwenc_blacklist);
618  ADD_STRING(hwdec_blacklist);
619  ADD_STRING(enable_change_encoder_profile);
620 
621  ADD_STRING(wz265_dec_enable);
622 
623  ADD_STRING(color_space_enable);
624  ADD_STRING(videoFullrange);
625  ADD_STRING(matrixCoefficients);
626 
627  ADD_STRING(enable_video_vpr);
628  ADD_STRING(video_vpr_init_size);
629  ADD_STRING(video_vpr_max_size);
630  ADD_STRING(video_vpr_frozen_ms_thres);
631  ADD_STRING(video_vpr_frozen_rate_thres);
632  ADD_STRING(video_vpr_method);
633  ADD_STRING(video_vpr_adaptive_thres);
634  ADD_STRING(retrans_detect_enable);
635  ADD_STRING(use_sent_ts_enable);
637  ADD_STRING(video_rotation);
638  ADD_STRING(scale_type);
639  ADD_STRING(video_render_d3d9_texture);
640  ADD_STRING(video_render_d3d9_render_mode);
641  ADD_STRING(video_render_buffer_queue_size);
642  ADD_STRING(video_render_vsync_switch);
643  ADD_STRING(video_force_texture_to_i420);
647  ADD_STRING(av_enc_video_width_alignment);
648  ADD_STRING(av_enc_video_height_alignment);
651  ADD_STRING(av_enc_video_force_alignment);
653  ADD_STRING(av_enc_video_adjustment_reset);
654  ADD_STRING(av_dec_texture_copy_enable);
655  ADD_STRING(av_dec_output_byte_frame);
656  ADD_STRING(av_dec_output_10bit_frame);
657  ADD_STRING(av_enc_google_enable);
658  ADD_STRING(av_dec_google_enable);
659  ADD_STRING(av_dec_google_dav1d_enable);
662  ADD_STRING(av_dec_video_hwdec_config);
663  ADD_STRING(av_enc_video_hwenc_config);
664  ADD_STRING(av_hw_dec_skip_by_name);
665  ADD_STRING(av_hw_enc_skip_by_name);
666  ADD_STRING(av_enc_hw_hevc_exceptions);
667  ADD_STRING(av_dec_hw_hevc_exceptions);
668  ADD_STRING(av_enc_hw_exceptions);
669 
670  ADD_STRING(av_enc_video_use_a264);
671  ADD_STRING(av_enc_video_qp_parser_skip);
672  ADD_STRING(video_clarity_analysis_flag);
677  ADD_STRING(av_enc_video_enable_roi);
678  ADD_STRING(roi_max_qp);
679  ADD_STRING(roi_qp_offset);
680  ADD_STRING(av_enc_vmaf_calc);
681  ADD_STRING(av_enc_profiling);
682  ADD_STRING(av_enc_param_config);
684  ADD_STRING(video_quality_guarantee);
685  ADD_STRING(av_enc_advanced_param_config);
686  ADD_STRING(av_enc_screen_sharing_subclass);
687 
688  ADD_STRING(enable_iptos);
689 
692  ADD_STRING(min_encode_keyframe_interval);
693  ADD_STRING(bFrames);
694  ADD_STRING(enable_bframe);
695  ADD_STRING(enable_bframe_h265);
696  ADD_STRING(video_skip_enable);
697  ADD_STRING(av_enc_new_complexity);
698  ADD_STRING(av_enc_default_complexity);
699  ADD_STRING(av_enc_intra_key_interval);
700  ADD_STRING(key_force_device_score);
701  ADD_STRING(av_enc_bitrate_adjustment_type);
702  ADD_STRING(use_single_slice_parser);
703  ADD_STRING(enable_parser_reject);
704 
706  ADD_STRING(av_enc_send_sei_alpha);
707  ADD_STRING(av_enc_alpha_data_codec_type);
708  ADD_STRING(av_enc_alpha_data_scale_mode);
709  ADD_STRING(av_enc_encode_alpha);
712  ADD_STRING(fake_enc_error_code);
713  ADD_STRING(enable_smooth_enc_codec_change);
714  ADD_STRING(fps_est_window_size_ms);
715  ADD_STRING(default_enable_hw_encoder);
716  ADD_STRING(use_keyframe_type_from_parser);
717  ADD_STRING(frame_glitching_detect_level);
719  ADD_STRING(enable_follow_major_stream);
721  ADD_STRING(enable_performance_gating);
724  ADD_STRING(enable_instant_streaming_mode);
725  ADD_STRING(max_all_intra_encode_time);
727  ADD_STRING(feedback_mode);
728  ADD_STRING(response_quick_intra_request);
729  ADD_STRING(encode_failed_fallback_thresh);
730  ADD_STRING(minimum_amf_version_require);
731  ADD_STRING(vtenc_default_pixel_format);
734 #undef ADD_STRING
735  std::string ret = ost.str();
736  auto index = ret.rfind(",");
737  if (index != ret.npos) {
738  ret = ret.substr(0, index);
739  ret += NEW_LINE;
740  }
741 
742  return "{" NEW_LINE + ret + "}";
743  }
744 
757  Optional<uint8_t> (number_of_bframe_temporal_layers);
772  //TODO(kefan) these vqc parameters should placed in MediaEngineParameterCollection
782  Optional<int> (min_qp);
783  Optional<int> (max_qp);
784  Optional<int> (frame_max_size);
788  //h265 dec enable
790  //av1 dec enable
797  // enc scc enable
799  // vp8 enc switch
801 
804 
812 
814 
828  // followings are hw setting
829 
830  // h264 quality scaler settings
834 
837 
838  //vqa
841 
842  // Specifies whether or not to enable hw decode.
844  // Specifies whether or not to enable background hw decode.
846  // Specifies hw encode provider.
850 
851  // Specifies whether or not to enable hw encode.
853  // Specifies hw encode provider.
855  // Specifies the encoding scheme.
857  // Specifies the quality level for encoding.
858  // 0 Minimum quality, smaller output size.
859  // 100 Maximum quality, larger output size.
861  // Specifies the rate control mode.
862  // eAVEncCommonRateControlMode_CBR,
863  // eAVEncCommonRateControlMode_PeakConstrainedVBR,
864  // eAVEncCommonRateControlMode_UnconstrainedVBR,
865  // eAVEncCommonRateControlMode_Quality,
866  // eAVEncCommonRateControlMode_LowDelayVBR,
867  // eAVEncCommonRateControlMode_GlobalVBR,
868  // eAVEncCommonRateControlMode_GlobalLowDelayVBR
875  // Specifies the min resolution level to use h264 hardware encoder
877  // mac slice num for a264, valid only when > 0
879  // rc limit value, it can limit the fluctuation range of the bitrate
884  // software encoder open dump frame info feature, used to investigate questions
893 
903  // for intra request
909 
917 
919  // whether default use a264;
924  // whether open vmaf calc;
932  // whether open video coding profiling
934  // sw encoder param
936  // video resolution auto adjust param
939  // advanced encoder param
941  // screen sharing content type
965  // whether use single slice parser.
971 
983 
988 
1001 
1002  // minor stream config
1004  // Specifies whether or not to enable low stream hw encode.
1023 
1024  private:
1025  template <class T>
1026  std::string ToStringIfSet(const char* key, const Optional<T>& val) const {
1027  std::string str;
1028  if (val) {
1029  str = key;
1030  str = "\t\"" + str + "\"";
1031  str += ": ";
1032  str += std::to_string(*val);
1033  str += ",";
1034  str += NEW_LINE;
1035  }
1036  return str;
1037  }
1038 
1039  std::string ToStringIfSet(const char* key, const Optional<std::string>& val) const {
1040  std::string str;
1041  if (val) {
1042  str = key;
1043  str = "\t\"" + str + "\"";
1044  str += ": \"";
1045  str += val.value();
1046  str += "\",";
1047  str += NEW_LINE;
1048  }
1049  return str;
1050  }
1051 
1052  std::string ToStringIfSet(const char* key, const Optional<bool>& val) const {
1053  std::string str;
1054  if (val) {
1055  str = key;
1056  str = "\t\"" + str + "\"";
1057  str += ": ";
1058  str += *val ? "true" : "false";
1059  str += ",";
1060  str += NEW_LINE;
1061  }
1062  return str;
1063  }
1064 
1065  template <typename T>
1066  static void SetFrom(Optional<T>* s, const Optional<T>& o) {
1067  if (o) {
1068  *s = o;
1069  }
1070  }
1071 };
1072 
1073 } // namespace rtc
1074 } // namespace agora
agora::rtc::VideoConfigurationEx::av1_feedback_enable
Optional< bool > av1_feedback_enable
Definition: video_config_i.h:793
agora::rtc::VideoConfigurationEx::fps_up_step
Optional< int > fps_up_step
Definition: video_config_i.h:768
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:876
agora::rtc::VideoConfigurationEx::vcm_info_event_enable
Optional< bool > vcm_info_event_enable
Definition: video_config_i.h:802
agora::rtc::VideoConfigurationEx::sr_type
Optional< int > sr_type
Definition: video_config_i.h:892
agora::rtc::VideoConfigurationEx::encode_failed_fallback_thresh
Optional< int > encode_failed_fallback_thresh
Definition: video_config_i.h:1018
agora::rtc::VideoConfigurationEx::intel_cpu_threshold_mhz
Optional< int32_t > intel_cpu_threshold_mhz
Definition: video_config_i.h:872
agora::rtc::VideoConfigurationEx::enable_instant_streaming_mode
Optional< bool > enable_instant_streaming_mode
Definition: video_config_i.h:1013
agora::rtc::VideoConfigurationEx::av_enc_video_max_slices
Optional< int > av_enc_video_max_slices
Definition: video_config_i.h:878
agora::rtc::VideoConfigurationEx::vqc_res_min_width
Optional< int > vqc_res_min_width
Definition: video_config_i.h:780
agora::rtc::VideoConfigurationEx::enable_background_hw_decode
Optional< bool > enable_background_hw_decode
Definition: video_config_i.h:845
agora::rtc::VideoConfigurationEx::av_enc_hw_exceptions
Optional< int32_t > av_enc_hw_exceptions
Definition: video_config_i.h:953
agora::rtc::VideoConfigurationEx::operator!=
bool operator!=(const VideoConfigurationEx &o) const
Definition: video_config_i.h:500
agora::rtc::VideoConfigurationEx::video_force_texture_to_i420
Optional< bool > video_force_texture_to_i420
Definition: video_config_i.h:914
agora::rtc::VideoConfigurationEx::av_enc_alpha_data_codec_type
Optional< int > av_enc_alpha_data_codec_type
Definition: video_config_i.h:985
agora::rtc::VideoConfigurationEx::pps_data
Optional< std::string > pps_data
Definition: video_config_i.h:759
agora::rtc::VideoConfigurationEx::av_sw_enc_dump_frame_info
Optional< int > av_sw_enc_dump_frame_info
Definition: video_config_i.h:885
agora::rtc::VideoConfigurationEx::adaptive_op_mode
Optional< bool > adaptive_op_mode
Definition: video_config_i.h:761
agora::rtc::VideoConfigurationEx::enable_pvc_verify
Optional< bool > enable_pvc_verify
Definition: video_config_i.h:888
agora::rtc::VideoConfigurationEx::video_vpr_adaptive_thres
Optional< int32_t > video_vpr_adaptive_thres
Definition: video_config_i.h:900
agora::rtc::VideoConfigurationEx::bitrate_adjust_ratio
Optional< std::string > bitrate_adjust_ratio
Definition: video_config_i.h:826
agora::rtc::VideoConfigurationEx::fps_down_step
Optional< int > fps_down_step
Definition: video_config_i.h:767
agora::rtc::VideoConfigurationEx::video_render_buffer_queue_size
Optional< int32_t > video_render_buffer_queue_size
Definition: video_config_i.h:912
agora::rtc::VideoConfigurationEx::enable_minor_stream_codec_follow_major_stream
Optional< bool > enable_minor_stream_codec_follow_major_stream
Definition: video_config_i.h:1011
agora::rtc::VideoConfigurationEx::quick_response_intra_request
Optional< int > quick_response_intra_request
Definition: video_config_i.h:785
agora::rtc::VideoConfigurationEx::vqc_version
Optional< int > vqc_version
Definition: video_config_i.h:769
agora::rtc::VideoConfigurationEx::av_enc_send_sei_alpha
Optional< bool > av_enc_send_sei_alpha
Definition: video_config_i.h:984
agora::rtc::VideoConfigurationEx::simulcast_stream_bitrate_string
Optional< std::string > simulcast_stream_bitrate_string
Definition: video_config_i.h:1007
agora::rtc::VideoConfigurationEx::av_hw_enc_skip_by_name
Optional< std::string > av_hw_enc_skip_by_name
Definition: video_config_i.h:950
agora::rtc::VideoConfigurationEx::direct_cdn_streaming_h264_profile
Optional< int > direct_cdn_streaming_h264_profile
Definition: video_config_i.h:982
agora::rtc::VideoConfigurationEx::av_dec_texture_copy_enable
Optional< bool > av_dec_texture_copy_enable
Definition: video_config_i.h:957
agora::rtc::VideoConfigurationEx::min_bitrate
Optional< int > min_bitrate
Definition: video_config_i.h:752
agora::rtc::VideoConfigurationEx::freeze_detect_threshold
Optional< int > freeze_detect_threshold
Definition: video_config_i.h:825
agora::rtc::VideoConfigurationEx::video_encoder_rc_scene
Optional< int > video_encoder_rc_scene
Definition: video_config_i.h:882
agora::rtc::VideoConfigurationEx::wz265_dec_enable
Optional< bool > wz265_dec_enable
Definition: video_config_i.h:813
agora::rtc::VideoConfigurationEx::initial_hw_encoder_quickly_start
Optional< bool > initial_hw_encoder_quickly_start
Definition: video_config_i.h:994
agora::rtc::VideoConfigurationEx::video_android_capturer_copy_enable
Optional< bool > video_android_capturer_copy_enable
Definition: video_config_i.h:916
agora::rtc::VideoConfigurationEx::intra_request_keyframe_received_timeout_ms
Optional< int > intra_request_keyframe_received_timeout_ms
Definition: video_config_i.h:1022
agora::rtc::VideoConfigurationEx::max_hwdec_cosessions
Optional< int > max_hwdec_cosessions
Definition: video_config_i.h:849
agora::rtc::VideoConfigurationEx::frame_dropping_on
Optional< bool > frame_dropping_on
Definition: video_config_i.h:818
agora::rtc::VideoConfigurationEx::av_enc_new_complexity
Optional< bool > av_enc_new_complexity
Definition: video_config_i.h:979
agora::rtc::VideoConfigurationEx::orientation_mode
Optional< int > orientation_mode
Definition: video_config_i.h:755
agora::rtc::VideoConfigurationEx::h264_profile
Optional< int > h264_profile
Definition: video_config_i.h:760
agora::rtc::VideoConfigurationEx::av_enc_profiling
Optional< bool > av_enc_profiling
Definition: video_config_i.h:933
agora::rtc::VideoConfigurationEx::vp8_enc_switch
Optional< bool > vp8_enc_switch
Definition: video_config_i.h:800
agora::rtc::VideoConfigurationEx::enable_video_qoe_assess
Optional< bool > enable_video_qoe_assess
Definition: video_config_i.h:874
agora::rtc::VideoConfigurationEx::h265_dec_enable
Optional< bool > h265_dec_enable
Definition: video_config_i.h:789
agora::rtc::VideoConfigurationEx::av_dec_google_dav1d_enable
Optional< bool > av_dec_google_dav1d_enable
Definition: video_config_i.h:962
agora::rtc::VideoConfigurationEx::av_enc_intra_key_interval
Optional< int32_t > av_enc_intra_key_interval
Definition: video_config_i.h:904
agora::rtc::VideoConfigurationEx::major_stream_encoder_thread_num
Optional< int > major_stream_encoder_thread_num
Definition: video_config_i.h:795
agora::rtc::VideoConfigurationEx::posted_frames_waiting_for_encode
Optional< int > posted_frames_waiting_for_encode
Definition: video_config_i.h:824
agora::rtc::VideoConfigurationEx::av_enc_google_enable
Optional< bool > av_enc_google_enable
Definition: video_config_i.h:960
agora::rtc::VideoConfigurationEx::vqc_min_framerate
Optional< int > vqc_min_framerate
Definition: video_config_i.h:774
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::VideoConfigurationEx::enc_scc_enable
Optional< bool > enc_scc_enable
Definition: video_config_i.h:798
agora::rtc::VideoConfigurationEx::av_enc_video_width_alignment
Optional< int32_t > av_enc_video_width_alignment
Definition: video_config_i.h:943
agora::rtc::VideoConfigurationEx::vqc_res_min_height
Optional< int > vqc_res_min_height
Definition: video_config_i.h:781
agora::rtc::VideoConfigurationEx::key_frame_interval
Optional< int > key_frame_interval
Definition: video_config_i.h:820
agora::rtc::VideoConfigurationEx::operator==
bool operator==(const VideoConfigurationEx &o) const
Definition: video_config_i.h:263
agora::rtc::VideoConfigurationEx::bitrate_ceiling_ratio
Optional< std::string > bitrate_ceiling_ratio
Definition: video_config_i.h:992
agora::rtc::VideoConfigurationEx::denoising_on
Optional< bool > denoising_on
Definition: video_config_i.h:816
agora::rtc::VideoConfigurationEx::video_clarity_analysis_max_list_size
Optional< int > video_clarity_analysis_max_list_size
Definition: video_config_i.h:928
agora::rtc::VideoConfigurationEx::av_hw_dec_skip_by_name
Optional< std::string > av_hw_dec_skip_by_name
Definition: video_config_i.h:949
agora::rtc::VideoConfigurationEx::video_quality_guarantee
Optional< std::string > video_quality_guarantee
Definition: video_config_i.h:938
agora::rtc::VideoConfigurationEx::av_enc_param_config
Optional< std::string > av_enc_param_config
Definition: video_config_i.h:935
agora::rtc::VideoConfigurationEx::video_vpr_max_size
Optional< int32_t > video_vpr_max_size
Definition: video_config_i.h:896
agora::rtc::VideoConfigurationEx::default_enable_hw_encoder
Optional< bool > default_enable_hw_encoder
Definition: video_config_i.h:998
agora::rtc::VideoConfigurationEx::roi_max_qp
Optional< int > roi_max_qp
Definition: video_config_i.h:922
agora::rtc::VideoConfigurationEx::enable_video_vpr
Optional< bool > enable_video_vpr
Definition: video_config_i.h:894
agora::rtc::VideoConfigurationEx::video_vpr_frozen_ms_thres
Optional< int32_t > video_vpr_frozen_ms_thres
Definition: video_config_i.h:897
agora::rtc::VideoConfigurationEx::start_bitrate
Optional< int > start_bitrate
Definition: video_config_i.h:750
agora::rtc::VideoConfigurationEx::matrixCoefficients
Optional< int > matrixCoefficients
Definition: video_config_i.h:969
agora::rtc::VideoConfigurationEx::av_enc_screen_sharing_subclass
Optional< int32_t > av_enc_screen_sharing_subclass
Definition: video_config_i.h:942
agora::rtc::VideoConfigurationEx::decoder_thread_num
Optional< int > decoder_thread_num
Definition: video_config_i.h:848
agora::rtc::VideoConfigurationEx::~VideoConfigurationEx
~VideoConfigurationEx()=default
agora::rtc::VideoConfigurationEx::video_vpr_method
Optional< int32_t > video_vpr_method
Definition: video_config_i.h:899
agora::rtc::VideoConfigurationEx::key_frame_interval_intra_request
Optional< int > key_frame_interval_intra_request
Definition: video_config_i.h:975
agora::rtc::VideoConfigurationEx::av_enc_encode_alpha
Optional< bool > av_enc_encode_alpha
Definition: video_config_i.h:987
agora::rtc::VideoConfigurationEx::enable_iptos
Optional< bool > enable_iptos
Definition: video_config_i.h:970
agora::rtc::VideoConfigurationEx::vqc_ios_h265_adjust
Optional< int > vqc_ios_h265_adjust
Definition: video_config_i.h:779
agora::rtc::VideoConfigurationEx::h264_qp_thresholds_high
Optional< int > h264_qp_thresholds_high
Definition: video_config_i.h:833
agora::rtc::VideoConfigurationEx::hw_decoder_provider
Optional< std::string > hw_decoder_provider
Definition: video_config_i.h:847
agora::rtc::VideoConfigurationEx::enable_hw_encoder_quickly_start
Optional< bool > enable_hw_encoder_quickly_start
Definition: video_config_i.h:993
agora::rtc::VideoConfigurationEx::SetAll
void SetAll(const VideoConfigurationEx &change)
Definition: video_config_i.h:30
agora::rtc::VideoConfigurationEx::enable_simulcast_stream_codec_follow_major_stream
Optional< bool > enable_simulcast_stream_codec_follow_major_stream
Definition: video_config_i.h:1012
agora::rtc::VideoConfigurationEx::ToString
std::string ToString() const
Definition: video_config_i.h:502
agora::rtc::VideoConfigurationEx::video_vpr_frozen_rate_thres
Optional< int32_t > video_vpr_frozen_rate_thres
Definition: video_config_i.h:898
agora::rtc::VideoConfigurationEx::complexity
Optional< int > complexity
Definition: video_config_i.h:815
agora::rtc::VideoConfigurationEx::save_encode_bitrate_minor_stream
Optional< bool > save_encode_bitrate_minor_stream
Definition: video_config_i.h:973
agora::rtc::VideoConfigurationEx::use_single_slice_parser
Optional< bool > use_single_slice_parser
Definition: video_config_i.h:966
agora::rtc::VideoConfigurationEx::simulcast_stream_number_of_temporal_layers
Optional< uint8_t > simulcast_stream_number_of_temporal_layers
Definition: video_config_i.h:1006
agora::rtc::VideoConfigurationEx::vqc_min_holdtime_auto_resize_zoomout
Optional< int > vqc_min_holdtime_auto_resize_zoomout
Definition: video_config_i.h:777
agora::rtc::VideoConfigurationEx::overuse_detector_version
Optional< int > overuse_detector_version
Definition: video_config_i.h:771
agora::rtc::VideoConfigurationEx::frame_glitching_detect_level
Optional< int > frame_glitching_detect_level
Definition: video_config_i.h:1000
agora::rtc::VideoConfigurationEx::codec_type
Optional< int > codec_type
Definition: video_config_i.h:745
agora::rtc::VideoConfigurationEx::video_render_d3d9_texture
Optional< bool > video_render_d3d9_texture
Definition: video_config_i.h:910
agora::rtc::VideoConfigurationEx::h264_qp_thresholds_low
Optional< int > h264_qp_thresholds_low
Definition: video_config_i.h:832
agora::rtc::VideoConfigurationEx::av_enc_video_hdr_width_alignment
Optional< int32_t > av_enc_video_hdr_width_alignment
Definition: video_config_i.h:945
agora::rtc::VideoConfigurationEx::nvdia_cpu_threshold_mhz
Optional< int32_t > nvdia_cpu_threshold_mhz
Definition: video_config_i.h:871
agora::rtc::VideoConfigurationEx::av_enc_video_enable_dequeue_timewait
Optional< bool > av_enc_video_enable_dequeue_timewait
Definition: video_config_i.h:955
agora::rtc::VideoConfigurationEx::enable_bframe
Optional< bool > enable_bframe
Definition: video_config_i.h:989
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:873
agora::rtc::VideoConfigurationEx::number_of_temporal_layers
Optional< uint8_t > number_of_temporal_layers
Definition: video_config_i.h:756
agora::rtc::VideoConfigurationEx::av_enc_codec_type
Optional< uint32_t > av_enc_codec_type
Definition: video_config_i.h:856
agora::rtc::VideoConfigurationEx::av_dec_output_byte_frame_resolution_product_thres
Optional< int > av_dec_output_byte_frame_resolution_product_thres
Definition: video_config_i.h:963
agora::rtc::VideoConfigurationEx::save_encode_bitrate
Optional< bool > save_encode_bitrate
Definition: video_config_i.h:972
agora::rtc::VideoConfigurationEx::max_all_intra_encode_time
Optional< int32_t > max_all_intra_encode_time
Definition: video_config_i.h:1014
agora::rtc::VideoConfigurationEx::actual_max_bitrate
Optional< int > actual_max_bitrate
Definition: video_config_i.h:754
agora::rtc::VideoConfigurationEx::retrans_detect_enable
Optional< bool > retrans_detect_enable
Definition: video_config_i.h:901
agora::rtc::VideoConfigurationEx::degradation_preference
Optional< int > degradation_preference
Definition: video_config_i.h:766
agora::rtc::VideoConfigurationEx::video_rotation
Optional< int > video_rotation
Definition: video_config_i.h:907
agora::rtc::VideoConfigurationEx::sr_verify_type
Optional< int > sr_verify_type
Definition: video_config_i.h:890
agora::rtc::VideoConfigurationEx::fec_method
Optional< int > fec_method
Definition: video_config_i.h:786
agora::rtc::VideoConfigurationEx::video_enable_high_definition_strategy
Optional< bool > video_enable_high_definition_strategy
Definition: video_config_i.h:918
agora::rtc::VideoConfigurationEx::video_render_vsync_switch
Optional< bool > video_render_vsync_switch
Definition: video_config_i.h:913
agora::rtc::VideoConfigurationEx::scale_type
Optional< int > scale_type
Definition: video_config_i.h:908
agora::rtc::VideoConfigurationEx::has_intra_request
Optional< bool > has_intra_request
Definition: video_config_i.h:819
agora::rtc::VideoConfigurationEx::av_dec_output_byte_frame
Optional< bool > av_dec_output_byte_frame
Definition: video_config_i.h:958
agora::rtc::VideoConfigurationEx::fec_fix_rate
Optional< int > fec_fix_rate
Definition: video_config_i.h:787
agora::rtc::VideoConfigurationEx::min_encode_keyframe_interval
Optional< int > min_encode_keyframe_interval
Definition: video_config_i.h:977
agora::rtc::VideoConfigurationEx::default_enable_hwenc_win32
Optional< bool > default_enable_hwenc_win32
Definition: video_config_i.h:807
agora::rtc::VideoConfigurationEx::enable_bframe_h265
Optional< bool > enable_bframe_h265
Definition: video_config_i.h:991
agora::rtc::VideoConfigurationEx::minbitrate_ratio
Optional< std::string > minbitrate_ratio
Definition: video_config_i.h:827
agora::rtc::VideoConfigurationEx::loop_filter_disable_idc
Optional< int > loop_filter_disable_idc
Definition: video_config_i.h:822
agora::rtc::VideoConfigurationEx::av_enc_video_hwenc_config
Optional< std::string > av_enc_video_hwenc_config
Definition: video_config_i.h:947
agora::rtc::VideoConfigurationEx::video_switch_soft_decoder_threshold
Optional< int > video_switch_soft_decoder_threshold
Definition: video_config_i.h:976
agora::rtc::VideoConfigurationEx::major_minor_stream_resolution_ratio
Optional< float > major_minor_stream_resolution_ratio
Definition: video_config_i.h:1009
agora::rtc::VideoConfigurationEx
Definition: video_config_i.h:25
agora::rtc::VideoConfigurationEx::video_clarity_analysis_max_map_size
Optional< int > video_clarity_analysis_max_map_size
Definition: video_config_i.h:927
agora::rtc::VideoConfigurationEx::target_bitrate
Optional< int > target_bitrate
Definition: video_config_i.h:751
agora::rtc::VideoConfigurationEx::number_of_spatial_layers
Optional< uint8_t > number_of_spatial_layers
Definition: video_config_i.h:762
agora::rtc::VideoConfigurationEx::use_keyframe_type_from_parser
Optional< int > use_keyframe_type_from_parser
Definition: video_config_i.h:999
agora::rtc::VideoConfigurationEx::av_dec_hw_hevc_exceptions
Optional< int32_t > av_dec_hw_hevc_exceptions
Definition: video_config_i.h:952
agora::rtc::VideoConfigurationEx::enable_change_encoder_profile
Optional< bool > enable_change_encoder_profile
Definition: video_config_i.h:811
agora::rtc::VideoConfigurationEx::key_force_device_score
Optional< int32_t > key_force_device_score
Definition: video_config_i.h:905
agora::rtc::VideoConfigurationEx::sps_data
Optional< std::string > sps_data
Definition: video_config_i.h:758
agora::rtc::VideoConfigurationEx::reset_framerate_ratio
Optional< int > reset_framerate_ratio
Definition: video_config_i.h:836
agora::rtc::VideoConfigurationEx::av_dec_video_hwdec_config
Optional< std::string > av_dec_video_hwdec_config
Definition: video_config_i.h:948
agora::rtc::VideoConfigurationEx::h265_screen_enable
Optional< int > h265_screen_enable
Definition: video_config_i.h:746
agora::rtc::VideoConfigurationEx::av_enc_vmaf_calc
Optional< bool > av_enc_vmaf_calc
Definition: video_config_i.h:931
agora::rtc::VideoConfigurationEx::video_clarity_analysis_score_threshold
Optional< int > video_clarity_analysis_score_threshold
Definition: video_config_i.h:930
agora::rtc::VideoConfigurationEx::av_enc_video_qp_parser_skip
Optional< int > av_enc_video_qp_parser_skip
Definition: video_config_i.h:925
agora::rtc::VideoConfigurationEx::av_enc_bitrate_adjustment_type
Optional< int32_t > av_enc_bitrate_adjustment_type
Definition: video_config_i.h:906
agora::rtc::VideoConfigurationEx::color_space_enable
Optional< bool > color_space_enable
Definition: video_config_i.h:967
agora::rtc::VideoConfigurationEx::enable_follow_major_stream
Optional< bool > enable_follow_major_stream
Definition: video_config_i.h:1008
agora::rtc::VideoConfigurationEx::av_enc_video_enable_roi
Optional< bool > av_enc_video_enable_roi
Definition: video_config_i.h:921
agora::rtc::VideoConfigurationEx::av_enc_alpha_data_scale_mode
Optional< int > av_enc_alpha_data_scale_mode
Definition: video_config_i.h:986
agora::rtc::VideoConfigurationEx::dec_mosreport
Optional< int > dec_mosreport
Definition: video_config_i.h:839
agora::rtc::VideoConfigurationEx::pvc_max_support_resolution
Optional< int > pvc_max_support_resolution
Definition: video_config_i.h:887
agora::rtc::VideoConfigurationEx::background_detection_on
Optional< bool > background_detection_on
Definition: video_config_i.h:823
agora::rtc::VideoConfigurationEx::video_vpr_init_size
Optional< int32_t > video_vpr_init_size
Definition: video_config_i.h:895
agora::rtc::VideoConfigurationEx::video_windows_capture_to_texture
Optional< bool > video_windows_capture_to_texture
Definition: video_config_i.h:915
agora::rtc::VideoConfigurationEx::minor_stream_encoder_thread_num
Optional< int > minor_stream_encoder_thread_num
Definition: video_config_i.h:796
agora::rtc::VideoConfigurationEx::minscore_for_swh265enc
Optional< int > minscore_for_swh265enc
Definition: video_config_i.h:805
agora::rtc::VideoConfigurationEx::max_hwenc_cosessions
Optional< int > max_hwenc_cosessions
Definition: video_config_i.h:806
agora::rtc::VideoConfigurationEx::hwenc_blacklist
Optional< std::string > hwenc_blacklist
Definition: video_config_i.h:809
agora::rtc::VideoConfigurationEx::av_enc_hw_hevc_exceptions
Optional< int32_t > av_enc_hw_hevc_exceptions
Definition: video_config_i.h:951
agora::rtc::VideoConfigurationEx::feedback_mode
Optional< int32_t > feedback_mode
Definition: video_config_i.h:1016
agora::rtc::VideoConfigurationEx::frame_width
Optional< int > frame_width
Definition: video_config_i.h:747
agora::rtc::VideoConfigurationEx::av_enc_video_use_a264
Optional< bool > av_enc_video_use_a264
Definition: video_config_i.h:920
agora::rtc::VideoConfigurationEx::max_bitrate
Optional< int > max_bitrate
Definition: video_config_i.h:753
agora::rtc::VideoConfigurationEx::flexible_mode
Optional< bool > flexible_mode
Definition: video_config_i.h:763
agora::rtc::VideoConfigurationEx::fps_est_window_size_ms
Optional< int > fps_est_window_size_ms
Definition: video_config_i.h:997
agora::rtc::VideoConfigurationEx::enable_performance_gating
Optional< bool > enable_performance_gating
Definition: video_config_i.h:1010
agora::rtc::VideoConfigurationEx::enable_sr
Optional< bool > enable_sr
Definition: video_config_i.h:891
agora::rtc::VideoConfigurationEx::av_enc_default_complexity
Optional< int > av_enc_default_complexity
Definition: video_config_i.h:980
agora::rtc::VideoConfigurationEx::hw_encoder_provider
Optional< uint32_t > hw_encoder_provider
Definition: video_config_i.h:854
agora::rtc::VideoConfigurationEx::vqc_force_use_version
Optional< int > vqc_force_use_version
Definition: video_config_i.h:770
agora::rtc::VideoConfigurationEx::num_of_encoder_cores
Optional< int > num_of_encoder_cores
Definition: video_config_i.h:765
agora::rtc::VideoConfigurationEx::vqc_quick_adaptNetwork
Optional< bool > vqc_quick_adaptNetwork
Definition: video_config_i.h:773
agora::rtc::VideoConfigurationEx::hwdec_blacklist
Optional< std::string > hwdec_blacklist
Definition: video_config_i.h:810
agora::rtc::VideoConfigurationEx::vqc_min_holdtime_auto_resize_zoomin
Optional< int > vqc_min_holdtime_auto_resize_zoomin
Definition: video_config_i.h:776
agora::rtc::VideoConfigurationEx::video_resolution_auto_adjust_param
Optional< std::string > video_resolution_auto_adjust_param
Definition: video_config_i.h:937
agora::rtc::VideoConfigurationEx::encoder_skip_color_space_override_if_present_enable
Optional< bool > encoder_skip_color_space_override_if_present_enable
Definition: video_config_i.h:1021
agora::rtc::VideoConfigurationEx::av_enc_video_height_alignment
Optional< int32_t > av_enc_video_height_alignment
Definition: video_config_i.h:944
agora::rtc::VideoConfigurationEx::enable_parser_reject
Optional< bool > enable_parser_reject
Definition: video_config_i.h:981
agora::rtc::VideoConfigurationEx::fake_enc_error_code
Optional< int > fake_enc_error_code
Definition: video_config_i.h:995
agora::rtc::VideoConfigurationEx::reset_bitrate_ratio
Optional< int > reset_bitrate_ratio
Definition: video_config_i.h:835
agora::rtc::VideoConfigurationEx::av_enc_video_force_alignment
Optional< bool > av_enc_video_force_alignment
Definition: video_config_i.h:954
agora::rtc::VideoConfigurationEx::video_skip_enable
Optional< bool > video_skip_enable
Definition: video_config_i.h:978
agora::rtc::VideoConfigurationEx::vqc_qp_adjust
Optional< int > vqc_qp_adjust
Definition: video_config_i.h:778
agora::rtc::VideoConfigurationEx::vqa_model_target_fps
Optional< int > vqa_model_target_fps
Definition: video_config_i.h:840
agora::rtc::VideoConfigurationEx::quality_scale_only_on_average_qp
Optional< bool > quality_scale_only_on_average_qp
Definition: video_config_i.h:831
agora::rtc::VideoConfigurationEx::vqc_settings_by_resolution
Optional< std::string > vqc_settings_by_resolution
Definition: video_config_i.h:775
agora::rtc::VideoConfigurationEx::video_clarity_analysis_max_time_range
Optional< int > video_clarity_analysis_max_time_range
Definition: video_config_i.h:929
agora::rtc::VideoConfigurationEx::enable_hw_decoder
Optional< bool > enable_hw_decoder
Definition: video_config_i.h:843
agora::rtc::VideoConfigurationEx::bFrames
Optional< int > bFrames
Definition: video_config_i.h:990
agora::rtc::VideoConfigurationEx::enable_nvdia_first
Optional< bool > enable_nvdia_first
Definition: video_config_i.h:870
agora::rtc::VideoConfigurationEx::vtenc_default_pixel_format
Optional< int > vtenc_default_pixel_format
Definition: video_config_i.h:1020
agora::rtc::VideoConfigurationEx::av_enc_video_adjustment_reset
Optional< bool > av_enc_video_adjustment_reset
Definition: video_config_i.h:956
agora::rtc::VideoConfigurationEx::use_sent_ts_enable
Optional< bool > use_sent_ts_enable
Definition: video_config_i.h:902
agora::rtc::VideoConfigurationEx::av_dec_output_10bit_frame
Optional< bool > av_dec_output_10bit_frame
Definition: video_config_i.h:959
agora::rtc::VideoConfigurationEx::enable_smooth_enc_codec_change
Optional< bool > enable_smooth_enc_codec_change
Definition: video_config_i.h:996
agora::rtc::VideoConfigurationEx::frame_rate
Optional< int > frame_rate
Definition: video_config_i.h:749
agora::rtc::VideoConfigurationEx::roi_qp_offset
Optional< int > roi_qp_offset
Definition: video_config_i.h:923
agora::rtc::VideoConfigurationEx::av_enc_common_rate_control_mode
Optional< uint32_t > av_enc_common_rate_control_mode
Definition: video_config_i.h:869
agora::rtc::VideoConfigurationEx::minor_stream_video_encoder_rc_limit_value
Optional< int > minor_stream_video_encoder_rc_limit_value
Definition: video_config_i.h:881
agora::rtc::VideoConfigurationEx::av1_screen_enable
Optional< bool > av1_screen_enable
Definition: video_config_i.h:794
agora::rtc::VideoConfigurationEx::min_enc_level
Optional< int > min_enc_level
Definition: video_config_i.h:803
agora::rtc::VideoConfigurationEx::video_encoder_rc_limit_value
Optional< int > video_encoder_rc_limit_value
Definition: video_config_i.h:880
agora::rtc::VideoConfigurationEx::frame_height
Optional< int > frame_height
Definition: video_config_i.h:748
agora::rtc::VideoConfigurationEx::minimum_amf_version_require
Optional< std::string > minimum_amf_version_require
Definition: video_config_i.h:1019
agora::rtc::VideoConfigurationEx::save_encode_bitrate_params
Optional< std::string > save_encode_bitrate_params
Definition: video_config_i.h:974
agora::rtc::VideoConfigurationEx::av_enc_common_quality
Optional< uint32_t > av_enc_common_quality
Definition: video_config_i.h:860
agora::rtc::VideoConfigurationEx::response_quick_intra_request
Optional< bool > response_quick_intra_request
Definition: video_config_i.h:1017
agora::rtc::VideoConfigurationEx::videoFullrange
Optional< int > videoFullrange
Definition: video_config_i.h:968
agora::rtc::VideoConfigurationEx::av_dec_google_enable
Optional< bool > av_dec_google_enable
Definition: video_config_i.h:961
agora::rtc::VideoConfigurationEx::entropy_coding_mode_flag
Optional< int > entropy_coding_mode_flag
Definition: video_config_i.h:821
agora::rtc::VideoConfigurationEx::enable_minor_stream_intra_request
Optional< bool > enable_minor_stream_intra_request
Definition: video_config_i.h:1003
agora::rtc::VideoConfigurationEx::av1_camera_enable
Optional< bool > av1_camera_enable
Definition: video_config_i.h:792
agora::rtc::VideoConfigurationEx::scc_autoframerate_bitrate_ratio
Optional< float > scc_autoframerate_bitrate_ratio
Definition: video_config_i.h:1015
agora::rtc::VideoConfigurationEx::enable_sr_verify
Optional< bool > enable_sr_verify
Definition: video_config_i.h:889
agora::rtc::VideoConfigurationEx::enable_hw_encoder
Optional< bool > enable_hw_encoder
Definition: video_config_i.h:852
rtc
Definition: video_node_i.h:28
agora::rtc::VideoConfigurationEx::video_render_d3d9_render_mode
Optional< int32_t > video_render_d3d9_render_mode
Definition: video_config_i.h:911
agora::rtc::VideoConfigurationEx::video_encoder_impair_net_ref_opt
Optional< int > video_encoder_impair_net_ref_opt
Definition: video_config_i.h:883
agora::rtc::VideoConfigurationEx::enable_hw_decoder_reset_cropping
Optional< bool > enable_hw_decoder_reset_cropping
Definition: video_config_i.h:964
agora::Optional< int >
agora::rtc::VideoConfigurationEx::interlayer_pred
Optional< int > interlayer_pred
Definition: video_config_i.h:764
agora::rtc::VideoConfigurationEx::low_stream_enable_hw_encoder
Optional< bool > low_stream_enable_hw_encoder
Definition: video_config_i.h:1005
agora::rtc::VideoConfigurationEx::av_enc_video_hdr_height_alignment
Optional< int32_t > av_enc_video_hdr_height_alignment
Definition: video_config_i.h:946
agora::rtc::VideoConfigurationEx::av1_dec_enable
Optional< bool > av1_dec_enable
Definition: video_config_i.h:791
agora::rtc::VideoConfigurationEx::automatic_resize_on
Optional< bool > automatic_resize_on
Definition: video_config_i.h:817
agora::rtc::VideoConfigurationEx::allow_qsvhevcenc_for_screenshare
Optional< bool > allow_qsvhevcenc_for_screenshare
Definition: video_config_i.h:808
agora::rtc::VideoConfigurationEx::enable_pvc
Optional< bool > enable_pvc
Definition: video_config_i.h:886
agora::rtc::VideoConfigurationEx::av_enc_advanced_param_config
Optional< std::string > av_enc_advanced_param_config
Definition: video_config_i.h:940
agora::rtc::VideoConfigurationEx::video_clarity_analysis_flag
Optional< int > video_clarity_analysis_flag
Definition: video_config_i.h:926