13 #include "AgoraBase.h"
14 #include "AgoraOptional.h"
16 #if defined(WEBRTC_WIN)
17 #define NEW_LINE "\r\n"
31 #define SET_FROM(X) SetFrom(&X, change.X)
34 SET_FROM(frame_width);
35 SET_FROM(frame_height);
37 SET_FROM(start_bitrate);
38 SET_FROM(target_bitrate);
39 SET_FROM(min_bitrate);
40 SET_FROM(max_bitrate);
41 SET_FROM(orientation_mode);
42 SET_FROM(number_of_temporal_layers);
45 SET_FROM(h264_profile);
46 SET_FROM(adaptive_op_mode);
47 SET_FROM(number_of_spatial_layers);
48 SET_FROM(flexible_mode);
49 SET_FROM(interlayer_pred);
50 SET_FROM(num_of_encoder_cores);
51 SET_FROM(degradation_preference);
52 SET_FROM(fps_down_step);
53 SET_FROM(fps_up_step);
54 SET_FROM(vqc_version);
56 SET_FROM(vqc_quick_adaptNetwork);
57 SET_FROM(vqc_min_framerate);
58 SET_FROM(vqc_min_holdtime_auto_resize_zoomin);
59 SET_FROM(vqc_min_holdtime_auto_resize_zoomout);
60 SET_FROM(vqc_qp_adjust);
61 SET_FROM(vqc_ios_h265_adjust);
64 SET_FROM(dmfec_min_level);
67 SET_FROM(denoising_on);
68 SET_FROM(automatic_resize_on);
69 SET_FROM(frame_dropping_on);
70 SET_FROM(has_intra_request);
71 SET_FROM(key_frame_interval);
72 SET_FROM(entropy_coding_mode_flag);
73 SET_FROM(loop_filter_disable_idc);
74 SET_FROM(background_detection_on);
75 SET_FROM(posted_frames_waiting_for_encode);
76 SET_FROM(bitrate_adjust_ratio);
77 SET_FROM(minbitrate_ratio);
78 SET_FROM(quality_scale_only_on_average_qp);
79 SET_FROM(h264_qp_thresholds_low);
80 SET_FROM(h264_qp_thresholds_high);
81 SET_FROM(enable_hw_encoder);
82 SET_FROM(enable_hw_decoder);
83 SET_FROM(hw_encoder_provider);
84 SET_FROM(av_dec_common_input_format);
85 SET_FROM(av_dec_common_output_format);
86 SET_FROM(av_dec_mmcss_class);
87 SET_FROM(av_enc_codec_type);
88 SET_FROM(av_enc_common_buffer_in_level);
89 SET_FROM(av_enc_common_buffer_out_level);
90 SET_FROM(av_enc_common_buffer_size);
91 SET_FROM(av_enc_common_format_constraint);
92 SET_FROM(av_enc_common_low_latency);
93 SET_FROM(av_enc_common_max_bit_rate);
94 SET_FROM(av_enc_common_mean_bit_rate);
95 SET_FROM(av_enc_common_mean_bit_rate_interval);
96 SET_FROM(av_enc_common_min_bit_rate);
97 SET_FROM(av_enc_common_quality);
98 SET_FROM(av_enc_common_quality_vs_speed);
99 SET_FROM(av_enc_common_rate_control_mode);
100 SET_FROM(av_enc_common_real_time);
101 SET_FROM(av_enc_common_stream_end_handling);
102 SET_FROM(av_enc_mux_output_stream_type);
103 SET_FROM(av_dec_video_acceleration_h264);
104 SET_FROM(av_dec_video_acceleration_mpeg2);
105 SET_FROM(av_dec_video_acceleration_vc1);
106 SET_FROM(av_dec_video_drop_pic_with_missing_ref);
107 SET_FROM(av_dec_video_fast_decode_mode);
108 SET_FROM(av_dec_video_input_scan_type);
109 SET_FROM(av_dec_video_pixel_aspect_ratio);
110 SET_FROM(av_dec_video_software_deinterlace_mode);
111 SET_FROM(av_dec_video_sw_power_level);
112 SET_FROM(av_dec_video_thumbnail_generation_mode);
113 SET_FROM(av_enc_input_video_system);
114 SET_FROM(av_enc_video_cbr_motion_tradeoff);
115 SET_FROM(av_enc_video_coded_video_access_unit_size);
116 SET_FROM(av_enc_video_default_upper_field_dominant);
117 SET_FROM(av_enc_video_display_dimension);
118 SET_FROM(av_enc_video_encode_dimension);
119 SET_FROM(av_enc_video_encode_offset_origin);
120 SET_FROM(av_enc_video_field_swap);
121 SET_FROM(av_enc_video_force_source_scan_type);
122 SET_FROM(av_enc_video_header_drop_frame);
123 SET_FROM(av_enc_video_header_frames);
124 SET_FROM(av_enc_video_header_hours);
125 SET_FROM(av_enc_video_header_minutes);
126 SET_FROM(av_enc_video_header_seconds);
127 SET_FROM(av_enc_video_input_chroma_resolution);
128 SET_FROM(av_enc_video_input_chroma_subsampling);
129 SET_FROM(av_enc_video_input_color_lighting);
130 SET_FROM(av_enc_video_input_color_nominal_range);
131 SET_FROM(av_enc_video_input_color_primaries);
132 SET_FROM(av_enc_video_input_color_transfer_function);
133 SET_FROM(av_enc_video_input_color_transfer_matrix);
134 SET_FROM(av_enc_video_inverse_telecine_enable);
135 SET_FROM(av_enc_video_inverse_telecine_threshold);
136 SET_FROM(av_enc_video_max_keyframe_distance);
137 SET_FROM(av_enc_video_no_of_fields_to_encode);
138 SET_FROM(av_enc_video_no_of_fields_to_skip);
139 SET_FROM(av_enc_video_output_chroma_resolution);
140 SET_FROM(av_enc_video_output_chroma_subsampling);
141 SET_FROM(av_enc_video_output_color_lighting);
142 SET_FROM(av_enc_video_output_color_nominal_range);
143 SET_FROM(av_enc_video_output_color_primaries);
144 SET_FROM(av_enc_video_output_color_transfer_function);
145 SET_FROM(av_enc_video_output_color_transfer_matrix);
146 SET_FROM(av_enc_video_output_frame_rate);
147 SET_FROM(av_enc_video_output_frame_rate_conversion);
148 SET_FROM(av_enc_video_output_scan_type);
149 SET_FROM(av_enc_video_pixel_aspect_ratio);
150 SET_FROM(av_enc_video_source_film_content);
151 SET_FROM(av_enc_video_source_is_bw);
152 SET_FROM(av_enc_mpv_add_seq_end_code);
153 SET_FROM(av_enc_mpv_default_b_picture_count);
154 SET_FROM(av_enc_mpv_frame_field_mode);
155 SET_FROM(av_enc_mpv_generate_header_pic_disp_ext);
156 SET_FROM(av_enc_mpv_generate_header_pic_ext);
157 SET_FROM(av_enc_mpv_generate_header_seq_disp_ext);
158 SET_FROM(av_enc_mpv_generate_header_seq_ext);
159 SET_FROM(av_enc_mpv_generate_header_seq_scale_ext);
160 SET_FROM(av_enc_mpvgop_open);
161 SET_FROM(av_enc_mpvgops_in_seq);
162 SET_FROM(av_enc_mpvgop_size);
163 SET_FROM(av_enc_mpv_intra_dc_precision);
164 SET_FROM(av_enc_mpv_intra_vlc_table);
165 SET_FROM(av_enc_mpv_level);
166 SET_FROM(av_enc_mpv_profile);
167 SET_FROM(av_enc_mpvq_scale_type);
168 SET_FROM(av_enc_mpv_quant_matrix_chroma_intra);
169 SET_FROM(av_enc_mpv_quant_matrix_chroma_non_intra);
170 SET_FROM(av_enc_mpv_quant_matrix_intra);
171 SET_FROM(av_enc_mpv_quant_matrix_non_intra);
172 SET_FROM(av_enc_mpv_scan_pattern);
173 SET_FROM(av_enc_mpv_scene_detection);
174 SET_FROM(av_enc_mpv_use_concealment_motion_vectors);
175 SET_FROM(vdm_not_override_lua_smallvideo_not_use_hwenc_policy);
176 SET_FROM(enable_video_sender_frame_dropper);
177 SET_FROM(enable_video_freeze_diagnose);
178 SET_FROM(h264_hw_min_res_level);
179 SET_FROM(av_enc_video_max_slices);
185 #define BEGIN_COMPARE() bool b = true
186 #define ADD_COMPARE(X) b = (b && (X == o.X))
187 #define END_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);
199 ADD_COMPARE(sps_data);
200 ADD_COMPARE(pps_data);
201 ADD_COMPARE(h264_profile);
202 ADD_COMPARE(adaptive_op_mode);
203 ADD_COMPARE(number_of_spatial_layers);
204 ADD_COMPARE(flexible_mode);
205 ADD_COMPARE(interlayer_pred);
206 ADD_COMPARE(num_of_encoder_cores);
207 ADD_COMPARE(degradation_preference);
208 ADD_COMPARE(fps_down_step);
209 ADD_COMPARE(fps_up_step);
210 ADD_COMPARE(vqc_version);
212 ADD_COMPARE(vqc_quick_adaptNetwork);
213 ADD_COMPARE(vqc_min_framerate);
214 ADD_COMPARE(vqc_min_holdtime_auto_resize_zoomin);
215 ADD_COMPARE(vqc_min_holdtime_auto_resize_zoomout);
216 ADD_COMPARE(vqc_qp_adjust);
217 ADD_COMPARE(vqc_ios_h265_adjust);
218 ADD_COMPARE(fec_method);
219 ADD_COMPARE(dm_wsize);
220 ADD_COMPARE(dmfec_min_level);
222 ADD_COMPARE(complexity);
223 ADD_COMPARE(denoising_on);
224 ADD_COMPARE(automatic_resize_on);
225 ADD_COMPARE(frame_dropping_on);
226 ADD_COMPARE(has_intra_request);
227 ADD_COMPARE(key_frame_interval);
228 ADD_COMPARE(entropy_coding_mode_flag);
229 ADD_COMPARE(loop_filter_disable_idc);
230 ADD_COMPARE(background_detection_on);
231 ADD_COMPARE(posted_frames_waiting_for_encode);
232 ADD_COMPARE(bitrate_adjust_ratio);
233 ADD_COMPARE(minbitrate_ratio);
234 ADD_COMPARE(quality_scale_only_on_average_qp);
235 ADD_COMPARE(h264_qp_thresholds_low);
236 ADD_COMPARE(h264_qp_thresholds_high);
237 ADD_COMPARE(enable_hw_encoder);
238 ADD_COMPARE(enable_hw_decoder);
239 ADD_COMPARE(hw_encoder_provider);
240 ADD_COMPARE(av_dec_common_input_format);
241 ADD_COMPARE(av_dec_common_output_format);
242 ADD_COMPARE(av_dec_mmcss_class);
243 ADD_COMPARE(av_enc_codec_type);
244 ADD_COMPARE(av_enc_common_buffer_in_level);
245 ADD_COMPARE(av_enc_common_buffer_out_level);
246 ADD_COMPARE(av_enc_common_buffer_size);
247 ADD_COMPARE(av_enc_common_format_constraint);
248 ADD_COMPARE(av_enc_common_low_latency);
249 ADD_COMPARE(av_enc_common_max_bit_rate);
250 ADD_COMPARE(av_enc_common_mean_bit_rate);
251 ADD_COMPARE(av_enc_common_mean_bit_rate_interval);
252 ADD_COMPARE(av_enc_common_min_bit_rate);
253 ADD_COMPARE(av_enc_common_quality);
254 ADD_COMPARE(av_enc_common_quality_vs_speed);
255 ADD_COMPARE(av_enc_common_rate_control_mode);
256 ADD_COMPARE(av_enc_common_real_time);
257 ADD_COMPARE(av_enc_common_stream_end_handling);
258 ADD_COMPARE(av_enc_mux_output_stream_type);
259 ADD_COMPARE(av_dec_video_acceleration_h264);
260 ADD_COMPARE(av_dec_video_acceleration_mpeg2);
261 ADD_COMPARE(av_dec_video_acceleration_vc1);
262 ADD_COMPARE(av_dec_video_drop_pic_with_missing_ref);
263 ADD_COMPARE(av_dec_video_fast_decode_mode);
264 ADD_COMPARE(av_dec_video_input_scan_type);
265 ADD_COMPARE(av_dec_video_pixel_aspect_ratio);
266 ADD_COMPARE(av_dec_video_software_deinterlace_mode);
267 ADD_COMPARE(av_dec_video_sw_power_level);
268 ADD_COMPARE(av_dec_video_thumbnail_generation_mode);
269 ADD_COMPARE(av_enc_input_video_system);
270 ADD_COMPARE(av_enc_video_cbr_motion_tradeoff);
271 ADD_COMPARE(av_enc_video_coded_video_access_unit_size);
272 ADD_COMPARE(av_enc_video_default_upper_field_dominant);
273 ADD_COMPARE(av_enc_video_display_dimension);
274 ADD_COMPARE(av_enc_video_encode_dimension);
275 ADD_COMPARE(av_enc_video_encode_offset_origin);
276 ADD_COMPARE(av_enc_video_field_swap);
277 ADD_COMPARE(av_enc_video_force_source_scan_type);
278 ADD_COMPARE(av_enc_video_header_drop_frame);
279 ADD_COMPARE(av_enc_video_header_frames);
280 ADD_COMPARE(av_enc_video_header_hours);
281 ADD_COMPARE(av_enc_video_header_minutes);
282 ADD_COMPARE(av_enc_video_header_seconds);
283 ADD_COMPARE(av_enc_video_input_chroma_resolution);
284 ADD_COMPARE(av_enc_video_input_chroma_subsampling);
285 ADD_COMPARE(av_enc_video_input_color_lighting);
286 ADD_COMPARE(av_enc_video_input_color_nominal_range);
287 ADD_COMPARE(av_enc_video_input_color_primaries);
288 ADD_COMPARE(av_enc_video_input_color_transfer_function);
289 ADD_COMPARE(av_enc_video_input_color_transfer_matrix);
290 ADD_COMPARE(av_enc_video_inverse_telecine_enable);
291 ADD_COMPARE(av_enc_video_inverse_telecine_threshold);
292 ADD_COMPARE(av_enc_video_max_keyframe_distance);
293 ADD_COMPARE(av_enc_video_no_of_fields_to_encode);
294 ADD_COMPARE(av_enc_video_no_of_fields_to_skip);
295 ADD_COMPARE(av_enc_video_output_chroma_resolution);
296 ADD_COMPARE(av_enc_video_output_chroma_subsampling);
297 ADD_COMPARE(av_enc_video_output_color_lighting);
298 ADD_COMPARE(av_enc_video_output_color_nominal_range);
299 ADD_COMPARE(av_enc_video_output_color_primaries);
300 ADD_COMPARE(av_enc_video_output_color_transfer_function);
301 ADD_COMPARE(av_enc_video_output_color_transfer_matrix);
302 ADD_COMPARE(av_enc_video_output_frame_rate);
303 ADD_COMPARE(av_enc_video_output_frame_rate_conversion);
304 ADD_COMPARE(av_enc_video_output_scan_type);
305 ADD_COMPARE(av_enc_video_pixel_aspect_ratio);
306 ADD_COMPARE(av_enc_video_source_film_content);
307 ADD_COMPARE(av_enc_video_source_is_bw);
308 ADD_COMPARE(av_enc_mpv_add_seq_end_code);
309 ADD_COMPARE(av_enc_mpv_default_b_picture_count);
310 ADD_COMPARE(av_enc_mpv_frame_field_mode);
311 ADD_COMPARE(av_enc_mpv_generate_header_pic_disp_ext);
312 ADD_COMPARE(av_enc_mpv_generate_header_pic_ext);
313 ADD_COMPARE(av_enc_mpv_generate_header_seq_disp_ext);
314 ADD_COMPARE(av_enc_mpv_generate_header_seq_ext);
315 ADD_COMPARE(av_enc_mpv_generate_header_seq_scale_ext);
316 ADD_COMPARE(av_enc_mpvgop_open);
317 ADD_COMPARE(av_enc_mpvgops_in_seq);
318 ADD_COMPARE(av_enc_mpvgop_size);
319 ADD_COMPARE(av_enc_mpv_intra_dc_precision);
320 ADD_COMPARE(av_enc_mpv_intra_vlc_table);
321 ADD_COMPARE(av_enc_mpv_level);
322 ADD_COMPARE(av_enc_mpv_profile);
323 ADD_COMPARE(av_enc_mpvq_scale_type);
324 ADD_COMPARE(av_enc_mpv_quant_matrix_chroma_intra);
325 ADD_COMPARE(av_enc_mpv_quant_matrix_chroma_non_intra);
326 ADD_COMPARE(av_enc_mpv_quant_matrix_intra);
327 ADD_COMPARE(av_enc_mpv_quant_matrix_non_intra);
328 ADD_COMPARE(av_enc_mpv_scan_pattern);
329 ADD_COMPARE(av_enc_mpv_scene_detection);
330 ADD_COMPARE(av_enc_mpv_use_concealment_motion_vectors);
331 ADD_COMPARE(vdm_not_override_lua_smallvideo_not_use_hwenc_policy);
332 ADD_COMPARE(enable_video_sender_frame_dropper);
333 ADD_COMPARE(enable_video_freeze_diagnose);
334 ADD_COMPARE(h264_hw_min_res_level);
335 ADD_COMPARE(av_enc_video_max_slices);
346 std::string ToString()
const {
347 #define ADD_STRING(X) ost << ToStringIfSet(#X, X)
349 std::ostringstream ost;
350 ADD_STRING(codec_type);
351 ADD_STRING(frame_width);
352 ADD_STRING(frame_height);
353 ADD_STRING(frame_rate);
354 ADD_STRING(start_bitrate);
355 ADD_STRING(target_bitrate);
356 ADD_STRING(min_bitrate);
357 ADD_STRING(max_bitrate);
358 ADD_STRING(orientation_mode);
359 ADD_STRING(number_of_temporal_layers);
360 ADD_STRING(sps_data);
361 ADD_STRING(pps_data);
362 ADD_STRING(h264_profile);
363 ADD_STRING(adaptive_op_mode);
364 ADD_STRING(number_of_spatial_layers);
365 ADD_STRING(flexible_mode);
366 ADD_STRING(interlayer_pred);
367 ADD_STRING(num_of_encoder_cores);
368 ADD_STRING(degradation_preference);
369 ADD_STRING(fps_down_step);
370 ADD_STRING(fps_up_step);
371 ADD_STRING(vqc_version);
373 ADD_STRING(vqc_quick_adaptNetwork);
374 ADD_STRING(vqc_min_framerate);
375 ADD_STRING(vqc_min_holdtime_auto_resize_zoomin);
376 ADD_STRING(vqc_min_holdtime_auto_resize_zoomout);
377 ADD_STRING(vqc_qp_adjust);
378 ADD_STRING(vqc_ios_h265_adjust);
379 ADD_STRING(fec_method);
380 ADD_STRING(dm_wsize);
381 ADD_STRING(dmfec_min_level);
383 ADD_STRING(complexity);
384 ADD_STRING(denoising_on);
385 ADD_STRING(automatic_resize_on);
386 ADD_STRING(frame_dropping_on);
387 ADD_STRING(has_intra_request);
388 ADD_STRING(key_frame_interval);
389 ADD_STRING(entropy_coding_mode_flag);
390 ADD_STRING(loop_filter_disable_idc);
391 ADD_STRING(background_detection_on);
392 ADD_STRING(posted_frames_waiting_for_encode);
393 ADD_STRING(bitrate_adjust_ratio);
394 ADD_STRING(minbitrate_ratio);
395 ADD_STRING(quality_scale_only_on_average_qp);
396 ADD_STRING(h264_qp_thresholds_low);
397 ADD_STRING(h264_qp_thresholds_high);
398 ADD_STRING(enable_hw_encoder);
399 ADD_STRING(enable_hw_decoder);
400 ADD_STRING(hw_encoder_provider);
401 ADD_STRING(av_dec_common_input_format);
402 ADD_STRING(av_dec_common_output_format);
403 ADD_STRING(av_dec_mmcss_class);
404 ADD_STRING(av_enc_codec_type);
405 ADD_STRING(av_enc_common_buffer_in_level);
406 ADD_STRING(av_enc_common_buffer_out_level);
407 ADD_STRING(av_enc_common_buffer_size);
408 ADD_STRING(av_enc_common_format_constraint);
409 ADD_STRING(av_enc_common_low_latency);
410 ADD_STRING(av_enc_common_max_bit_rate);
411 ADD_STRING(av_enc_common_mean_bit_rate);
412 ADD_STRING(av_enc_common_mean_bit_rate_interval);
413 ADD_STRING(av_enc_common_min_bit_rate);
414 ADD_STRING(av_enc_common_quality);
415 ADD_STRING(av_enc_common_quality_vs_speed);
416 ADD_STRING(av_enc_common_rate_control_mode);
417 ADD_STRING(av_enc_common_real_time);
418 ADD_STRING(av_enc_common_stream_end_handling);
419 ADD_STRING(av_enc_mux_output_stream_type);
420 ADD_STRING(av_dec_video_acceleration_h264);
421 ADD_STRING(av_dec_video_acceleration_mpeg2);
422 ADD_STRING(av_dec_video_acceleration_vc1);
423 ADD_STRING(av_dec_video_drop_pic_with_missing_ref);
424 ADD_STRING(av_dec_video_fast_decode_mode);
425 ADD_STRING(av_dec_video_input_scan_type);
426 ADD_STRING(av_dec_video_pixel_aspect_ratio);
427 ADD_STRING(av_dec_video_software_deinterlace_mode);
428 ADD_STRING(av_dec_video_sw_power_level);
429 ADD_STRING(av_dec_video_thumbnail_generation_mode);
430 ADD_STRING(av_enc_input_video_system);
431 ADD_STRING(av_enc_video_cbr_motion_tradeoff);
432 ADD_STRING(av_enc_video_coded_video_access_unit_size);
433 ADD_STRING(av_enc_video_default_upper_field_dominant);
434 ADD_STRING(av_enc_video_display_dimension);
435 ADD_STRING(av_enc_video_encode_dimension);
436 ADD_STRING(av_enc_video_encode_offset_origin);
437 ADD_STRING(av_enc_video_field_swap);
438 ADD_STRING(av_enc_video_force_source_scan_type);
439 ADD_STRING(av_enc_video_header_drop_frame);
440 ADD_STRING(av_enc_video_header_frames);
441 ADD_STRING(av_enc_video_header_hours);
442 ADD_STRING(av_enc_video_header_minutes);
443 ADD_STRING(av_enc_video_header_seconds);
444 ADD_STRING(av_enc_video_input_chroma_resolution);
445 ADD_STRING(av_enc_video_input_chroma_subsampling);
446 ADD_STRING(av_enc_video_input_color_lighting);
447 ADD_STRING(av_enc_video_input_color_nominal_range);
448 ADD_STRING(av_enc_video_input_color_primaries);
449 ADD_STRING(av_enc_video_input_color_transfer_function);
450 ADD_STRING(av_enc_video_input_color_transfer_matrix);
451 ADD_STRING(av_enc_video_inverse_telecine_enable);
452 ADD_STRING(av_enc_video_inverse_telecine_threshold);
453 ADD_STRING(av_enc_video_max_keyframe_distance);
454 ADD_STRING(av_enc_video_no_of_fields_to_encode);
455 ADD_STRING(av_enc_video_no_of_fields_to_skip);
456 ADD_STRING(av_enc_video_output_chroma_resolution);
457 ADD_STRING(av_enc_video_output_chroma_subsampling);
458 ADD_STRING(av_enc_video_output_color_lighting);
459 ADD_STRING(av_enc_video_output_color_nominal_range);
460 ADD_STRING(av_enc_video_output_color_primaries);
461 ADD_STRING(av_enc_video_output_color_transfer_function);
462 ADD_STRING(av_enc_video_output_color_transfer_matrix);
463 ADD_STRING(av_enc_video_output_frame_rate);
464 ADD_STRING(av_enc_video_output_frame_rate_conversion);
465 ADD_STRING(av_enc_video_output_scan_type);
466 ADD_STRING(av_enc_video_pixel_aspect_ratio);
467 ADD_STRING(av_enc_video_source_film_content);
468 ADD_STRING(av_enc_video_source_is_bw);
469 ADD_STRING(av_enc_mpv_add_seq_end_code);
470 ADD_STRING(av_enc_mpv_default_b_picture_count);
471 ADD_STRING(av_enc_mpv_frame_field_mode);
472 ADD_STRING(av_enc_mpv_generate_header_pic_disp_ext);
473 ADD_STRING(av_enc_mpv_generate_header_pic_ext);
474 ADD_STRING(av_enc_mpv_generate_header_seq_disp_ext);
475 ADD_STRING(av_enc_mpv_generate_header_seq_ext);
476 ADD_STRING(av_enc_mpv_generate_header_seq_scale_ext);
477 ADD_STRING(av_enc_mpvgop_open);
478 ADD_STRING(av_enc_mpvgops_in_seq);
479 ADD_STRING(av_enc_mpvgop_size);
480 ADD_STRING(av_enc_mpv_intra_dc_precision);
481 ADD_STRING(av_enc_mpv_intra_vlc_table);
482 ADD_STRING(av_enc_mpv_level);
483 ADD_STRING(av_enc_mpv_profile);
484 ADD_STRING(av_enc_mpvq_scale_type);
485 ADD_STRING(av_enc_mpv_quant_matrix_chroma_intra);
486 ADD_STRING(av_enc_mpv_quant_matrix_chroma_non_intra);
487 ADD_STRING(av_enc_mpv_quant_matrix_intra);
488 ADD_STRING(av_enc_mpv_quant_matrix_non_intra);
489 ADD_STRING(av_enc_mpv_scan_pattern);
490 ADD_STRING(av_enc_mpv_scene_detection);
491 ADD_STRING(av_enc_mpv_use_concealment_motion_vectors);
492 ADD_STRING(vdm_not_override_lua_smallvideo_not_use_hwenc_policy);
493 ADD_STRING(enable_video_sender_frame_dropper);
494 ADD_STRING(enable_video_freeze_diagnose);
495 ADD_STRING(h264_hw_min_res_level);
496 ADD_STRING(av_enc_video_max_slices);
499 std::string ret = ost.str();
500 auto index = ret.rfind(
",");
501 if (index != ret.npos) {
502 ret = ret.substr(0, index);
506 return "{" NEW_LINE + ret +
"}";
934 Optional<bool> vdm_not_override_lua_smallvideo_not_use_hwenc_policy;
943 std::string ToStringIfSet(
const char* key,
const Optional<T>& val)
const {
947 str =
"\t\"" + str +
"\"";
949 str += std::to_string(*val);
960 str =
"\t\"" + str +
"\"";
969 std::string ToStringIfSet(
const char* key,
const Optional<bool>& val)
const {
973 str =
"\t\"" + str +
"\"";
975 str += *val ?
"true" :
"false";
982 template <
typename T>