Răsfoiți Sursa

UI: Only use preset2 in simple mode for legacy/FFmpeg NVENC

derrod 1 an în urmă
părinte
comite
ce3d739f3a
2 a modificat fișierele cu 12 adăugiri și 6 ștergeri
  1. 9 5
      UI/window-basic-main-outputs.cpp
  2. 3 1
      UI/window-basic-settings.cpp

+ 9 - 5
UI/window-basic-main-outputs.cpp

@@ -819,6 +819,7 @@ void SimpleOutput::Update()
 					       "x264Settings");
 	const char *encoder = config_get_string(main->Config(), "SimpleOutput",
 						"StreamEncoder");
+	const char *encoder_id = obs_encoder_get_id(videoStreaming);
 	const char *presetType;
 	const char *preset;
 
@@ -855,11 +856,14 @@ void SimpleOutput::Update()
 	}
 
 	preset = config_get_string(main->Config(), "SimpleOutput", presetType);
-	obs_data_set_string(videoSettings,
-			    (strcmp(presetType, "NVENCPreset2") == 0)
-				    ? "preset2"
-				    : "preset",
-			    preset);
+
+	/* Only use preset2 for legacy/FFmpeg NVENC Encoder. */
+	if (strncmp(encoder_id, "ffmpeg_", 7) == 0 &&
+	    strcmp(presetType, "NVENCPreset2") == 0) {
+		obs_data_set_string(videoSettings, "preset2", preset);
+	} else {
+		obs_data_set_string(videoSettings, "preset", preset);
+	}
 
 	obs_data_set_string(videoSettings, "rate_control", "CBR");
 	obs_data_set_int(videoSettings, "bitrate", videoBitrate);

+ 3 - 1
UI/window-basic-settings.cpp

@@ -5484,9 +5484,11 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
 
 		const char *name =
 			get_simple_output_encoder(QT_TO_UTF8(encoder));
+		const bool isFFmpegEncoder = strncmp(name, "ffmpeg_", 7) == 0;
 		obs_properties_t *props = obs_get_encoder_properties(name);
 
-		obs_property_t *p = obs_properties_get(props, "preset2");
+		obs_property_t *p = obs_properties_get(
+			props, isFFmpegEncoder ? "preset2" : "preset");
 		size_t num = obs_property_list_item_count(p);
 		for (size_t i = 0; i < num; i++) {
 			const char *name = obs_property_list_item_name(p, i);