Browse Source

obs-ffmpeg: Align NVENC preset migrations to NVIDIA guidelines

Bring our NVENC preset migrations closer in line with NVIDIA guidelines.

https://docs.nvidia.com/video-technologies/video-codec-sdk/nvenc-preset-migration-guide/

This commit also modifies UI.
Ryan Foster 3 years ago
parent
commit
891e3b0f49
2 changed files with 8 additions and 6 deletions
  1. 5 3
      UI/obs-app.cpp
  2. 3 3
      plugins/obs-ffmpeg/jim-nvenc.c

+ 5 - 3
UI/obs-app.cpp

@@ -2829,14 +2829,15 @@ static void convert_28_1_encoder_setting(const char *encoder, const char *file)
 				obs_data_get_string(data, "preset");
 
 			if (astrcmpi(preset, "mq") == 0) {
-				obs_data_set_string(data, "preset2", "p6");
+				obs_data_set_string(data, "preset2", "p5");
 				obs_data_set_string(data, "tune", "hq");
 				obs_data_set_string(data, "multipass", "qres");
 
 			} else if (astrcmpi(preset, "hq") == 0) {
 				obs_data_set_string(data, "preset2", "p5");
 				obs_data_set_string(data, "tune", "hq");
-				obs_data_set_string(data, "multipass", "qres");
+				obs_data_set_string(data, "multipass",
+						    "disabled");
 
 			} else if (astrcmpi(preset, "default") == 0) {
 				obs_data_set_string(data, "preset2", "p3");
@@ -2859,7 +2860,8 @@ static void convert_28_1_encoder_setting(const char *encoder, const char *file)
 			} else if (astrcmpi(preset, "llhq") == 0) {
 				obs_data_set_string(data, "preset2", "p4");
 				obs_data_set_string(data, "tune", "ll");
-				obs_data_set_string(data, "multipass", "qres");
+				obs_data_set_string(data, "multipass",
+						    "disabled");
 
 			} else if (astrcmpi(preset, "llhp") == 0) {
 				obs_data_set_string(data, "preset2", "p2");

+ 3 - 3
plugins/obs-ffmpeg/jim-nvenc.c

@@ -463,14 +463,14 @@ static bool init_encoder_base(struct nvenc_data *enc, obs_data_t *settings,
 	if (obs_data_has_user_value(settings, "preset") &&
 	    !obs_data_has_user_value(settings, "preset2")) {
 		if (astrcmpi(preset, "mq") == 0) {
-			nv_preset = NV_ENC_PRESET_P6_GUID;
+			nv_preset = NV_ENC_PRESET_P5_GUID;
 			nv_tuning = NV_ENC_TUNING_INFO_HIGH_QUALITY;
 			nv_multipass = NV_ENC_TWO_PASS_QUARTER_RESOLUTION;
 
 		} else if (astrcmpi(preset, "hq") == 0) {
 			nv_preset = NV_ENC_PRESET_P5_GUID;
 			nv_tuning = NV_ENC_TUNING_INFO_HIGH_QUALITY;
-			nv_multipass = NV_ENC_TWO_PASS_QUARTER_RESOLUTION;
+			nv_multipass = NV_ENC_MULTI_PASS_DISABLED;
 
 		} else if (astrcmpi(preset, "default") == 0) {
 			nv_preset = NV_ENC_PRESET_P3_GUID;
@@ -490,7 +490,7 @@ static bool init_encoder_base(struct nvenc_data *enc, obs_data_t *settings,
 		} else if (astrcmpi(preset, "llhq") == 0) {
 			nv_preset = NV_ENC_PRESET_P4_GUID;
 			nv_tuning = NV_ENC_TUNING_INFO_LOW_LATENCY;
-			nv_multipass = NV_ENC_TWO_PASS_QUARTER_RESOLUTION;
+			nv_multipass = NV_ENC_MULTI_PASS_DISABLED;
 
 		} else if (astrcmpi(preset, "llhp") == 0) {
 			nv_preset = NV_ENC_PRESET_P2_GUID;