Pārlūkot izejas kodu

UI: Add more information to describe output format

In advanced settings
Also enable translation for color format
mvji 3 gadi atpakaļ
vecāks
revīzija
bbeafeabdd

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

@@ -1059,6 +1059,12 @@ Basic.Settings.Advanced.FormatWarning10BitSdr="Warning: 10-bit formats are more
 Basic.Settings.Advanced.FormatWarning2100="Warning: Rec. 2100 should use a format with more precision."
 Basic.Settings.Advanced.Audio.BufferingTime="Audio Buffering Time"
 Basic.Settings.Advanced.Video.ColorFormat="Color Format"
+Basic.Settings.Advanced.Video.ColorFormat.NV12="NV12 (8-bit, 4:2:0, 2 planes)"
+Basic.Settings.Advanced.Video.ColorFormat.I420="I420 (8-bit, 4:2:0, 3 planes)"
+Basic.Settings.Advanced.Video.ColorFormat.I444="I444 (8-bit, 4:4:4, 3 planes)"
+Basic.Settings.Advanced.Video.ColorFormat.P010="P010 (10-bit, 4:2:0, 2 planes)"
+Basic.Settings.Advanced.Video.ColorFormat.I010="I010 (10-bit, 4:2:0, 3 planes)"
+Basic.Settings.Advanced.Video.ColorFormat.RGB="RGB (8-bit)"
 Basic.Settings.Advanced.Video.ColorSpace="Color Space"
 Basic.Settings.Advanced.Video.ColorSpace.sRGB="sRGB"
 Basic.Settings.Advanced.Video.ColorSpace.601="Rec. 601"

+ 1 - 32
UI/forms/OBSBasicSettings.ui

@@ -5050,38 +5050,7 @@
                     </widget>
                    </item>
                    <item row="2" column="1">
-                    <widget class="QComboBox" name="colorFormat">
-                     <item>
-                      <property name="text">
-                       <string notr="true">NV12</string>
-                      </property>
-                     </item>
-                     <item>
-                      <property name="text">
-                       <string notr="true">I420</string>
-                      </property>
-                     </item>
-                     <item>
-                      <property name="text">
-                       <string notr="true">I444</string>
-                      </property>
-                     </item>
-                     <item>
-                      <property name="text">
-                       <string notr="true">P010</string>
-                      </property>
-                     </item>
-                     <item>
-                      <property name="text">
-                       <string notr="true">I010</string>
-                      </property>
-                     </item>
-                     <item>
-                      <property name="text">
-                       <string notr="true">RGB</string>
-                      </property>
-                     </item>
-                    </widget>
+                    <widget class="QComboBox" name="colorFormat"/>
                    </item>
                    <item row="3" column="0">
                     <widget class="QLabel" name="label_33">

+ 20 - 2
UI/window-basic-settings.cpp

@@ -707,6 +707,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
 	LoadEncoderTypes();
 	LoadColorRanges();
 	LoadColorSpaces();
+	LoadColorFormats();
 	LoadFormats();
 
 	auto ReloadAudioSources = [](void *data, calldata_t *param) {
@@ -1060,6 +1061,23 @@ void OBSBasicSettings::LoadColorSpaces()
 	ui->colorSpace->addItem(CS_2100HLG_STR, "2100HLG");
 }
 
+#define CF_NV12_STR QTStr("Basic.Settings.Advanced.Video.ColorFormat.NV12")
+#define CF_I420_STR QTStr("Basic.Settings.Advanced.Video.ColorFormat.I420")
+#define CF_I444_STR QTStr("Basic.Settings.Advanced.Video.ColorFormat.I444")
+#define CF_P010_STR QTStr("Basic.Settings.Advanced.Video.ColorFormat.P010")
+#define CF_I010_STR QTStr("Basic.Settings.Advanced.Video.ColorFormat.I010")
+#define CF_RGB_STR QTStr("Basic.Settings.Advanced.Video.ColorFormat.RGB")
+
+void OBSBasicSettings::LoadColorFormats()
+{
+	ui->colorFormat->addItem(CF_NV12_STR, "NV12");
+	ui->colorFormat->addItem(CF_I420_STR, "I420");
+	ui->colorFormat->addItem(CF_I444_STR, "I444");
+	ui->colorFormat->addItem(CF_P010_STR, "P010");
+	ui->colorFormat->addItem(CF_I010_STR, "I010");
+	ui->colorFormat->addItem(CF_RGB_STR, "RGB");
+}
+
 #define AV_FORMAT_DEFAULT_STR \
 	QTStr("Basic.Settings.Output.Adv.FFmpeg.FormatDefault")
 #define AUDIO_STR QTStr("Basic.Settings.Output.Adv.FFmpeg.FormatAudio")
@@ -2674,7 +2692,7 @@ void OBSBasicSettings::LoadAdvancedSettings()
 
 	UpdateColorFormatSpaceWarning();
 
-	SetComboByName(ui->colorFormat, videoColorFormat);
+	SetComboByValue(ui->colorFormat, videoColorFormat);
 	SetComboByValue(ui->colorSpace, videoColorSpace);
 	SetComboByValue(ui->colorRange, videoColorRange);
 	ui->sdrWhiteLevel->setValue(sdrWhiteLevel);
@@ -3363,7 +3381,7 @@ void OBSBasicSettings::SaveAdvancedSettings()
 				ui->resetOSXVSync->isChecked());
 #endif
 
-	SaveCombo(ui->colorFormat, "Video", "ColorFormat");
+	SaveComboData(ui->colorFormat, "Video", "ColorFormat");
 	SaveComboData(ui->colorSpace, "Video", "ColorSpace");
 	SaveComboData(ui->colorRange, "Video", "ColorRange");
 	SaveSpinBox(ui->sdrWhiteLevel, "Video", "SdrWhiteLevel");

+ 1 - 0
UI/window-basic-settings.hpp

@@ -228,6 +228,7 @@ private:
 	void LoadEncoderTypes();
 	void LoadColorRanges();
 	void LoadColorSpaces();
+	void LoadColorFormats();
 	void LoadFormats();
 	void ReloadCodecs(const ff_format_desc *formatDesc);