@@ -2819,9 +2819,7 @@ static void convert_28_1_encoder_setting(const char *encoder, const char *file)
2819
2819
bool modified = false ;
2820
2820
2821
2821
if (astrcmpi (encoder, " jim_nvenc" ) == 0 ||
2822
- astrcmpi (encoder, " jim_hevc_nvenc" ) == 0 ||
2823
- astrcmpi (encoder, " ffmpeg_nvenc" ) == 0 ||
2824
- astrcmpi (encoder, " ffmpeg_hevc_nvenc" ) == 0 ) {
2822
+ astrcmpi (encoder, " ffmpeg_nvenc" ) == 0 ) {
2825
2823
2826
2824
if (obs_data_has_user_value (data, " preset" ) &&
2827
2825
!obs_data_has_user_value (data, " preset2" )) {
@@ -2886,6 +2884,74 @@ static void convert_28_1_encoder_setting(const char *encoder, const char *file)
2886
2884
" disabled" );
2887
2885
}
2888
2886
2887
+ modified = true ;
2888
+ }
2889
+ } else if (astrcmpi (encoder, " jim_hevc_nvenc" ) == 0 ||
2890
+ astrcmpi (encoder, " ffmpeg_hevc_nvenc" ) == 0 ) {
2891
+
2892
+ if (obs_data_has_user_value (data, " preset" ) &&
2893
+ !obs_data_has_user_value (data, " preset2" )) {
2894
+ const char *preset =
2895
+ obs_data_get_string (data, " preset" );
2896
+ const char *rc =
2897
+ obs_data_get_string (data, " rate_control" );
2898
+
2899
+ if (astrcmpi (rc, " lossless" ) == 0 &&
2900
+ astrcmpi (preset, " mq" )) {
2901
+ obs_data_set_string (data, " preset2" , " p5" );
2902
+ obs_data_set_string (data, " tune" , " lossless" );
2903
+ obs_data_set_string (data, " multipass" ,
2904
+ " disabled" );
2905
+
2906
+ } else if (astrcmpi (rc, " lossless" ) == 0 &&
2907
+ astrcmpi (preset, " hp" )) {
2908
+ obs_data_set_string (data, " preset2" , " p3" );
2909
+ obs_data_set_string (data, " tune" , " lossless" );
2910
+ obs_data_set_string (data, " multipass" ,
2911
+ " disabled" );
2912
+
2913
+ } else if (astrcmpi (preset, " mq" ) == 0 ) {
2914
+ obs_data_set_string (data, " preset2" , " p6" );
2915
+ obs_data_set_string (data, " tune" , " hq" );
2916
+ obs_data_set_string (data, " multipass" , " qres" );
2917
+
2918
+ } else if (astrcmpi (preset, " hq" ) == 0 ) {
2919
+ obs_data_set_string (data, " preset2" , " p6" );
2920
+ obs_data_set_string (data, " tune" , " hq" );
2921
+ obs_data_set_string (data, " multipass" ,
2922
+ " disabled" );
2923
+
2924
+ } else if (astrcmpi (preset, " default" ) == 0 ) {
2925
+ obs_data_set_string (data, " preset2" , " p5" );
2926
+ obs_data_set_string (data, " tune" , " hq" );
2927
+ obs_data_set_string (data, " multipass" ,
2928
+ " disabled" );
2929
+
2930
+ } else if (astrcmpi (preset, " hp" ) == 0 ) {
2931
+ obs_data_set_string (data, " preset2" , " p1" );
2932
+ obs_data_set_string (data, " tune" , " hq" );
2933
+ obs_data_set_string (data, " multipass" ,
2934
+ " disabled" );
2935
+
2936
+ } else if (astrcmpi (preset, " ll" ) == 0 ) {
2937
+ obs_data_set_string (data, " preset2" , " p3" );
2938
+ obs_data_set_string (data, " tune" , " ll" );
2939
+ obs_data_set_string (data, " multipass" ,
2940
+ " disabled" );
2941
+
2942
+ } else if (astrcmpi (preset, " llhq" ) == 0 ) {
2943
+ obs_data_set_string (data, " preset2" , " p4" );
2944
+ obs_data_set_string (data, " tune" , " ll" );
2945
+ obs_data_set_string (data, " multipass" ,
2946
+ " disabled" );
2947
+
2948
+ } else if (astrcmpi (preset, " llhp" ) == 0 ) {
2949
+ obs_data_set_string (data, " preset2" , " p2" );
2950
+ obs_data_set_string (data, " tune" , " ll" );
2951
+ obs_data_set_string (data, " multipass" ,
2952
+ " disabled" );
2953
+ }
2954
+
2889
2955
modified = true ;
2890
2956
}
2891
2957
}
0 commit comments