14#include "AgoraOptional.h"
16#if defined(WEBRTC_WIN)
17#define NEW_LINE "\r\n"
31#define SET_FROM(X) SetFrom(&X, change.X)
46 SET_FROM(number_of_bframe_temporal_layers);
73 SET_FROM(frame_max_size);
263#define BEGIN_COMPARE() bool b = true
264#define ADD_COMPARE(X) b = (b && (X == o.X))
279 ADD_COMPARE(number_of_bframe_temporal_layers);
306 ADD_COMPARE(frame_max_size);
501#define ADD_STRING(X) ost << ToStringIfSet(#X, X)
503 std::ostringstream ost;
517 ADD_STRING(number_of_bframe_temporal_layers);
544 ADD_STRING(frame_max_size);
732 std::string ret = ost.str();
733 auto index = ret.rfind(
",");
734 if (index != ret.npos) {
735 ret = ret.substr(0, index);
739 return "{" NEW_LINE + ret +
"}";
1022 std::string ToStringIfSet(
const char* key,
const Optional<T>& val)
const {
1026 str =
"\t\"" + str +
"\"";
1028 str += std::to_string(*val);
1039 str =
"\t\"" + str +
"\"";
1048 std::string ToStringIfSet(
const char* key,
const Optional<bool>& val)
const {
1052 str =
"\t\"" + str +
"\"";
1054 str += *val ?
"true" :
"false";
1061 template <
typename T>
Definition AgoraOptional.h:413
const T & value() const
Definition AgoraOptional.h:542
Definition AgoraExtensions.h:5
Definition AgoraAtomicOps.h:21
Optional< int > target_bitrate
Definition video_config_i.h:748
Optional< int > sr_type
Definition video_config_i.h:888
Optional< bool > use_single_slice_parser
Definition video_config_i.h:962
Optional< std::string > hw_decoder_provider
Definition video_config_i.h:843
Optional< int > frame_rate
Definition video_config_i.h:746
Optional< int > vqc_force_use_version
Definition video_config_i.h:767
Optional< std::string > pps_data
Definition video_config_i.h:756
Optional< int > h264_qp_thresholds_high
Definition video_config_i.h:829
Optional< bool > enable_smooth_enc_codec_change
Definition video_config_i.h:992
Optional< std::string > simulcast_stream_bitrate_string
Definition video_config_i.h:1003
Optional< int > degradation_preference
Definition video_config_i.h:763
Optional< bool > enable_hw_decoder_reset_cropping
Definition video_config_i.h:960
Optional< int > frame_height
Definition video_config_i.h:745
Optional< bool > h265_dec_enable
Definition video_config_i.h:786
Optional< bool > response_quick_intra_request
Definition video_config_i.h:1013
VideoConfigurationEx()=default
Optional< int > fec_method
Definition video_config_i.h:783
Optional< int32_t > video_vpr_adaptive_thres
Definition video_config_i.h:896
Optional< std::string > vqc_settings_by_resolution
Definition video_config_i.h:772
Optional< bool > enable_bframe_h265
Definition video_config_i.h:987
Optional< bool > video_android_capturer_copy_enable
Definition video_config_i.h:912
Optional< bool > enable_hw_encoder_quickly_start
Definition video_config_i.h:989
Optional< bool > save_encode_bitrate_minor_stream
Definition video_config_i.h:969
Optional< bool > has_intra_request
Definition video_config_i.h:816
Optional< bool > enable_minor_stream_codec_follow_major_stream
Definition video_config_i.h:1007
Optional< bool > enable_follow_major_stream
Definition video_config_i.h:1004
Optional< std::string > av_hw_enc_skip_by_name
Definition video_config_i.h:946
Optional< bool > video_force_texture_to_i420
Definition video_config_i.h:910
Optional< std::string > video_quality_guarantee
Definition video_config_i.h:934
Optional< int > min_bitrate
Definition video_config_i.h:749
Optional< int > h264_profile
Definition video_config_i.h:757
Optional< int > bFrames
Definition video_config_i.h:986
Optional< int32_t > intel_cpu_threshold_mhz
Definition video_config_i.h:868
Optional< int > vqc_min_holdtime_auto_resize_zoomout
Definition video_config_i.h:774
Optional< int > fake_enc_error_code
Definition video_config_i.h:991
Optional< std::string > av_enc_video_hwenc_config
Definition video_config_i.h:943
Optional< int > max_bitrate
Definition video_config_i.h:750
Optional< int > video_switch_soft_decoder_threshold
Definition video_config_i.h:972
Optional< bool > av1_dec_enable
Definition video_config_i.h:788
Optional< bool > video_windows_capture_to_texture
Definition video_config_i.h:911
Optional< int > vqc_res_min_height
Definition video_config_i.h:778
Optional< bool > av_enc_send_sei_alpha
Definition video_config_i.h:980
Optional< bool > vdm_not_override_lua_smallvideo_not_use_hwenc_policy
Definition video_config_i.h:869
Optional< int32_t > key_force_device_score
Definition video_config_i.h:901
Optional< bool > enable_performance_gating
Definition video_config_i.h:1006
Optional< int > fec_fix_rate
Definition video_config_i.h:784
Optional< bool > video_skip_enable
Definition video_config_i.h:974
Optional< std::string > minbitrate_ratio
Definition video_config_i.h:823
void SetAll(const VideoConfigurationEx &change)
Definition video_config_i.h:30
Optional< int > av_sw_enc_dump_frame_info
Definition video_config_i.h:881
Optional< int > fps_est_window_size_ms
Definition video_config_i.h:993
Optional< int > num_of_encoder_cores
Definition video_config_i.h:762
Optional< uint8_t > number_of_spatial_layers
Definition video_config_i.h:759
Optional< int32_t > max_all_intra_encode_time
Definition video_config_i.h:1010
Optional< bool > enable_video_qoe_assess
Definition video_config_i.h:870
Optional< int > max_hwenc_cosessions
Definition video_config_i.h:803
Optional< bool > video_render_vsync_switch
Definition video_config_i.h:909
Optional< int32_t > video_vpr_frozen_rate_thres
Definition video_config_i.h:894
Optional< bool > enable_change_encoder_profile
Definition video_config_i.h:808
Optional< int32_t > video_vpr_init_size
Definition video_config_i.h:891
Optional< int > video_clarity_analysis_max_map_size
Definition video_config_i.h:923
Optional< bool > enable_iptos
Definition video_config_i.h:966
Optional< uint32_t > av_enc_codec_type
Definition video_config_i.h:852
Optional< bool > enable_video_vpr
Definition video_config_i.h:890
Optional< int > vtenc_default_pixel_format
Definition video_config_i.h:1016
Optional< int > scale_type
Definition video_config_i.h:904
Optional< int32_t > video_vpr_frozen_ms_thres
Definition video_config_i.h:893
Optional< int > sr_verify_type
Definition video_config_i.h:886
Optional< std::string > hwdec_blacklist
Definition video_config_i.h:807
Optional< int > orientation_mode
Definition video_config_i.h:752
Optional< bool > background_detection_on
Definition video_config_i.h:820
Optional< std::string > av_enc_param_config
Definition video_config_i.h:931
Optional< bool > enable_hw_encoder
Definition video_config_i.h:848
Optional< int > major_stream_encoder_thread_num
Definition video_config_i.h:792
Optional< bool > use_sent_ts_enable
Definition video_config_i.h:898
Optional< int32_t > av_enc_hw_hevc_exceptions
Definition video_config_i.h:947
Optional< bool > enable_nvdia_first
Definition video_config_i.h:866
Optional(number_of_bframe_temporal_layers)
Optional< bool > enable_pvc_verify
Definition video_config_i.h:884
Optional< bool > av_enc_video_use_a264
Definition video_config_i.h:916
Optional< int > quick_response_intra_request
Definition video_config_i.h:782
Optional< int > roi_max_qp
Definition video_config_i.h:918
Optional< bool > save_encode_bitrate
Definition video_config_i.h:968
Optional< int > videoFullrange
Definition video_config_i.h:964
Optional< bool > enc_scc_enable
Definition video_config_i.h:795
Optional< bool > automatic_resize_on
Definition video_config_i.h:814
Optional< bool > initial_hw_encoder_quickly_start
Definition video_config_i.h:990
Optional< uint32_t > av_enc_common_quality
Definition video_config_i.h:856
Optional< int > vqc_ios_h265_adjust
Definition video_config_i.h:776
Optional< bool > frame_dropping_on
Definition video_config_i.h:815
Optional< bool > encoder_skip_color_space_override_if_present_enable
Definition video_config_i.h:1017
Optional< int32_t > video_vpr_max_size
Definition video_config_i.h:892
Optional< int > video_clarity_analysis_flag
Definition video_config_i.h:922
Optional< bool > color_space_enable
Definition video_config_i.h:963
Optional< int > entropy_coding_mode_flag
Definition video_config_i.h:818
Optional< int32_t > nvdia_cpu_threshold_mhz
Definition video_config_i.h:867
Optional< bool > enable_pvc
Definition video_config_i.h:882
Optional< bool > av_enc_video_force_alignment
Definition video_config_i.h:950
Optional< bool > enable_instant_streaming_mode
Definition video_config_i.h:1009
Optional< std::string > save_encode_bitrate_params
Definition video_config_i.h:970
Optional< int > posted_frames_waiting_for_encode
Definition video_config_i.h:821
Optional< int > vqc_version
Definition video_config_i.h:766
Optional< int > vqc_qp_adjust
Definition video_config_i.h:775
Optional< int > video_encoder_rc_scene
Definition video_config_i.h:878
Optional< bool > vp8_enc_switch
Definition video_config_i.h:797
Optional< int > vqc_res_min_width
Definition video_config_i.h:777
Optional< int > interlayer_pred
Definition video_config_i.h:761
Optional< bool > quality_scale_only_on_average_qp
Definition video_config_i.h:827
Optional< int32_t > av_enc_video_height_alignment
Definition video_config_i.h:940
Optional< uint8_t > number_of_temporal_layers
Definition video_config_i.h:753
Optional< int > start_bitrate
Definition video_config_i.h:747
Optional< std::string > hwenc_blacklist
Definition video_config_i.h:806
Optional< bool > av1_feedback_enable
Definition video_config_i.h:790
Optional< bool > default_enable_hw_encoder
Definition video_config_i.h:994
Optional< int32_t > av_dec_hw_hevc_exceptions
Definition video_config_i.h:948
Optional< bool > flexible_mode
Definition video_config_i.h:760
Optional< int32_t > av_enc_video_width_alignment
Definition video_config_i.h:939
Optional< int > vqa_model_target_fps
Definition video_config_i.h:836
Optional< int > use_keyframe_type_from_parser
Definition video_config_i.h:995
Optional< bool > av_enc_profiling
Definition video_config_i.h:929
bool operator==(const VideoConfigurationEx &o) const
Definition video_config_i.h:262
Optional< std::string > video_resolution_auto_adjust_param
Definition video_config_i.h:933
Optional< int > minscore_for_swh265enc
Definition video_config_i.h:802
Optional< bool > av_dec_google_dav1d_enable
Definition video_config_i.h:958
Optional< int32_t > av_enc_video_hdr_width_alignment
Definition video_config_i.h:941
Optional< int32_t > av_enc_video_hdr_height_alignment
Definition video_config_i.h:942
Optional< int > video_encoder_rc_limit_value
Definition video_config_i.h:876
Optional< int > frame_width
Definition video_config_i.h:744
Optional< bool > wz265_dec_enable
Definition video_config_i.h:810
Optional< int > key_frame_interval
Definition video_config_i.h:817
Optional< bool > av_dec_texture_copy_enable
Definition video_config_i.h:953
Optional< int > pvc_max_support_resolution
Definition video_config_i.h:883
Optional< bool > av_enc_encode_alpha
Definition video_config_i.h:983
Optional< int > max_hwdec_cosessions
Definition video_config_i.h:845
Optional< int > dec_mosreport
Definition video_config_i.h:835
Optional< bool > av_enc_new_complexity
Definition video_config_i.h:975
Optional< bool > av_enc_video_enable_dequeue_timewait
Definition video_config_i.h:951
Optional< bool > enable_sr
Definition video_config_i.h:887
Optional< bool > av1_screen_enable
Definition video_config_i.h:791
~VideoConfigurationEx()=default
bool operator!=(const VideoConfigurationEx &o) const
Definition video_config_i.h:498
Optional< bool > vcm_info_event_enable
Definition video_config_i.h:799
Optional< int32_t > video_vpr_method
Definition video_config_i.h:895
Optional< int > roi_qp_offset
Definition video_config_i.h:919
Optional< bool > av_enc_video_adjustment_reset
Definition video_config_i.h:952
Optional< bool > enable_bframe
Definition video_config_i.h:985
Optional< int > vqc_min_holdtime_auto_resize_zoomin
Definition video_config_i.h:773
Optional< int > av_enc_video_max_slices
Definition video_config_i.h:874
Optional< bool > av1_camera_enable
Definition video_config_i.h:789
Optional< std::string > minimum_amf_version_require
Definition video_config_i.h:1015
Optional< int > key_frame_interval_intra_request
Definition video_config_i.h:971
Optional< int > encode_failed_fallback_thresh
Definition video_config_i.h:1014
Optional< int > video_clarity_analysis_max_list_size
Definition video_config_i.h:924
Optional< bool > adaptive_op_mode
Definition video_config_i.h:758
Optional< int > fps_up_step
Definition video_config_i.h:765
Optional< uint32_t > hw_encoder_provider
Definition video_config_i.h:850
Optional< std::string > sps_data
Definition video_config_i.h:755
Optional< bool > enable_parser_reject
Definition video_config_i.h:977
Optional< bool > av_enc_google_enable
Definition video_config_i.h:956
Optional< int > minor_stream_encoder_thread_num
Definition video_config_i.h:793
Optional< int > minor_stream_video_encoder_rc_limit_value
Definition video_config_i.h:877
Optional< bool > video_enable_high_definition_strategy
Definition video_config_i.h:914
Optional< int > video_encoder_impair_net_ref_opt
Definition video_config_i.h:879
Optional< bool > enable_sr_verify
Definition video_config_i.h:885
Optional< float > scc_autoframerate_bitrate_ratio
Definition video_config_i.h:1011
Optional< int > decoder_thread_num
Definition video_config_i.h:844
Optional< bool > av_enc_video_enable_roi
Definition video_config_i.h:917
Optional< int > actual_max_bitrate
Definition video_config_i.h:751
Optional< int32_t > video_render_buffer_queue_size
Definition video_config_i.h:908
Optional< std::string > bitrate_adjust_ratio
Definition video_config_i.h:822
Optional< int32_t > av_enc_bitrate_adjustment_type
Definition video_config_i.h:902
Optional< int > fps_down_step
Definition video_config_i.h:764
Optional< int > direct_cdn_streaming_h264_profile
Definition video_config_i.h:978
Optional< int > reset_bitrate_ratio
Definition video_config_i.h:831
Optional< float > major_minor_stream_resolution_ratio
Definition video_config_i.h:1005
Optional< int32_t > feedback_mode
Definition video_config_i.h:1012
Optional< int > intra_request_keyframe_received_timeout_ms
Definition video_config_i.h:1018
Optional< int > overuse_detector_version
Definition video_config_i.h:768
Optional< bool > av_dec_output_10bit_frame
Definition video_config_i.h:955
Optional< int32_t > av_enc_screen_sharing_subclass
Definition video_config_i.h:938
Optional< uint8_t > simulcast_stream_number_of_temporal_layers
Definition video_config_i.h:1002
Optional< int > h265_screen_enable
Definition video_config_i.h:743
Optional< int > h264_hw_min_res_level
Definition video_config_i.h:872
Optional< int > min_encode_keyframe_interval
Definition video_config_i.h:973
Optional< int > min_enc_level
Definition video_config_i.h:800
Optional< int > video_clarity_analysis_max_time_range
Definition video_config_i.h:925
Optional< std::string > bitrate_ceiling_ratio
Definition video_config_i.h:988
Optional< int > reset_framerate_ratio
Definition video_config_i.h:832
Optional< bool > default_enable_hwenc_win32
Definition video_config_i.h:804
Optional< bool > vqc_quick_adaptNetwork
Definition video_config_i.h:770
Optional< int > vqc_min_framerate
Definition video_config_i.h:771
Optional< bool > av_dec_google_enable
Definition video_config_i.h:957
Optional< int > av_enc_alpha_data_scale_mode
Definition video_config_i.h:982
Optional< bool > enable_background_hw_decode
Definition video_config_i.h:841
Optional< bool > enable_minor_stream_intra_request
Definition video_config_i.h:999
Optional< int32_t > av_enc_hw_exceptions
Definition video_config_i.h:949
Optional< std::string > av_dec_video_hwdec_config
Definition video_config_i.h:944
Optional< int > loop_filter_disable_idc
Definition video_config_i.h:819
Optional< bool > allow_qsvhevcenc_for_screenshare
Definition video_config_i.h:805
Optional< std::string > av_enc_advanced_param_config
Definition video_config_i.h:936
Optional< int > matrixCoefficients
Definition video_config_i.h:965
Optional< int > av_enc_alpha_data_codec_type
Definition video_config_i.h:981
Optional< bool > video_render_d3d9_texture
Definition video_config_i.h:906
Optional< int32_t > av_enc_intra_key_interval
Definition video_config_i.h:900
Optional< bool > av_enc_vmaf_calc
Definition video_config_i.h:927
Optional< int > video_clarity_analysis_score_threshold
Definition video_config_i.h:926
Optional< bool > av_dec_output_byte_frame
Definition video_config_i.h:954
Optional< bool > low_stream_enable_hw_encoder
Definition video_config_i.h:1001
std::string ToString() const
Definition video_config_i.h:500
Optional< bool > enable_hw_decoder
Definition video_config_i.h:839
Optional< int > av_dec_output_byte_frame_resolution_product_thres
Definition video_config_i.h:959
Optional< int > codec_type
Definition video_config_i.h:742
Optional< int > frame_glitching_detect_level
Definition video_config_i.h:996
Optional< bool > denoising_on
Definition video_config_i.h:813
Optional< bool > enable_simulcast_stream_codec_follow_major_stream
Definition video_config_i.h:1008
Optional< int > h264_qp_thresholds_low
Definition video_config_i.h:828
Optional< int > av_enc_video_qp_parser_skip
Definition video_config_i.h:921
Optional< int > av_enc_default_complexity
Definition video_config_i.h:976
Optional< int > complexity
Definition video_config_i.h:812
Optional< bool > retrans_detect_enable
Definition video_config_i.h:897
Optional< uint32_t > av_enc_common_rate_control_mode
Definition video_config_i.h:865
Optional< std::string > av_hw_dec_skip_by_name
Definition video_config_i.h:945
Optional< int32_t > video_render_d3d9_render_mode
Definition video_config_i.h:907
Optional< int > video_rotation
Definition video_config_i.h:903