Ver Fonte

UI: Only offer ultrafast-fast x264 presets in Simple Mode

gxalpha há 3 anos atrás
pai
commit
7475eff13a
2 ficheiros alterados com 25 adições e 6 exclusões
  1. 3 0
      UI/data/locale/en-US.ini
  2. 22 6
      UI/window-basic-settings.cpp

+ 3 - 0
UI/data/locale/en-US.ini

@@ -911,6 +911,9 @@ Basic.Settings.Output.RetryDelay="Retry Delay"
 Basic.Settings.Output.MaxRetries="Maximum Retries"
 Basic.Settings.Output.Advanced="Enable Custom Encoder Settings (Advanced)"
 Basic.Settings.Output.EncoderPreset="Encoder Preset"
+Basic.Settings.Output.EncoderPreset.ultrafast="%1 (low CPU usage, lowest quality)"
+Basic.Settings.Output.EncoderPreset.veryfast="%1 (default) (medium CPU usage, standard quality)"
+Basic.Settings.Output.EncoderPreset.fast="%1 (high CPU usage, high quality)"
 Basic.Settings.Output.CustomEncoderSettings="Custom Encoder Settings"
 Basic.Settings.Output.CustomMuxerSettings="Custom Muxer Settings"
 Basic.Settings.Output.NoSpaceFileName="Generate File Name without Space"

+ 22 - 6
UI/window-basic-settings.cpp

@@ -4922,14 +4922,30 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
 		defaultPreset = "balanced";
 		preset = curAMDPreset;
 	} else {
-		ui->simpleOutPreset->addItem("ultrafast", "ultrafast");
+
+#define PRESET_STR(val) \
+	QString(Str("Basic.Settings.Output.EncoderPreset." val)).arg(val)
+		ui->simpleOutPreset->addItem(PRESET_STR("ultrafast"),
+					     "ultrafast");
 		ui->simpleOutPreset->addItem("superfast", "superfast");
-		ui->simpleOutPreset->addItem("veryfast", "veryfast");
+		ui->simpleOutPreset->addItem(PRESET_STR("veryfast"),
+					     "veryfast");
 		ui->simpleOutPreset->addItem("faster", "faster");
-		ui->simpleOutPreset->addItem("fast", "fast");
-		ui->simpleOutPreset->addItem("medium", "medium");
-		ui->simpleOutPreset->addItem("slow", "slow");
-		ui->simpleOutPreset->addItem("slower", "slower");
+		ui->simpleOutPreset->addItem(PRESET_STR("fast"), "fast");
+#undef PRESET_STR
+
+		/* Users might have previously selected a preset which is no
+		 * longer available in simple mode. Make sure we don't mess
+		 * with their setups without them knowing. */
+		if (ui->simpleOutPreset->findData(curPreset) == -1) {
+			ui->simpleOutPreset->addItem(curPreset, curPreset);
+			QStandardItemModel *model =
+				qobject_cast<QStandardItemModel *>(
+					ui->simpleOutPreset->model());
+			QStandardItem *item =
+				model->item(model->rowCount() - 1);
+			item->setEnabled(false);
+		}
 
 		defaultPreset = "veryfast";
 		preset = curPreset;