From f6bc114c7d80f6344353619f51d9584ad022d91b Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Sat, 7 Jan 2023 23:15:13 -0500 Subject: [PATCH 101/103] UI: Consistently reference the software H264 encoder properly The code here assumes that the only software encoder is the x264-based H.264 encoder. That may not always remain true. This change adjusts the encoder string to indicate that it's an H.264 encoder from x264. --- UI/data/locale/en-US.ini | 4 ++-- UI/window-basic-auto-config-test.cpp | 6 +++--- UI/window-basic-settings-stream.cpp | 2 +- UI/window-basic-settings.cpp | 7 ++++--- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index 9c3f38777..dd8f20f69 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -997,7 +997,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording with a software en Basic.Settings.Output.Simple.Warn.Lossless="Warning: Lossless quality generates tremendously large file sizes! Lossless quality can use upward of 7 gigabytes of disk space per minute at high resolutions and framerates. Lossless is not recommended for long recordings unless you have a very large amount of disk space available. Replay buffer is unavailable when using lossless quality." Basic.Settings.Output.Simple.Warn.Lossless.Msg="Are you sure you want to use lossless quality?" Basic.Settings.Output.Simple.Warn.Lossless.Title="Lossless quality warning!" -Basic.Settings.Output.Simple.Encoder.Software="Software (x264)" +Basic.Settings.Output.Simple.Encoder.Software.X264.H264="Software (x264)" Basic.Settings.Output.Simple.Encoder.Hardware.QSV.H264="Hardware (QSV, H.264)" Basic.Settings.Output.Simple.Encoder.Hardware.QSV.AV1="Hardware (QSV, AV1)" Basic.Settings.Output.Simple.Encoder.Hardware.AMD.H264="Hardware (AMD, H.264)" @@ -1008,7 +1008,7 @@ Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.AV1="Hardware (NVENC, AV1)" Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.HEVC="Hardware (NVENC, HEVC)" Basic.Settings.Output.Simple.Encoder.Hardware.Apple.H264="Hardware (Apple, H.264)" Basic.Settings.Output.Simple.Encoder.Hardware.Apple.HEVC="Hardware (Apple, HEVC)" -Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Software (x264 low CPU usage preset, increases file size)" +Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU.X264.H264="Software (x264 low CPU usage preset, increases file size)" Basic.Settings.Output.Simple.Codec.AAC="AAC" Basic.Settings.Output.Simple.Codec.AAC.Default="AAC (Default)" Basic.Settings.Output.Simple.Codec.Opus="Opus" diff --git a/UI/window-basic-auto-config-test.cpp b/UI/window-basic-auto-config-test.cpp index 7d7c4278e..a8b5d884a 100644 --- a/UI/window-basic-auto-config-test.cpp +++ b/UI/window-basic-auto-config-test.cpp @@ -1010,7 +1010,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread() } #define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x -#define ENCODER_SOFTWARE ENCODER_TEXT("Software") +#define ENCODER_X264 ENCODER_TEXT("Software.X264.H264") #define ENCODER_NVENC ENCODER_TEXT("Hardware.NVENC.H264") #define ENCODER_QSV ENCODER_TEXT("Hardware.QSV.H264") #define ENCODER_AMD ENCODER_TEXT("Hardware.AMD.H264") @@ -1050,7 +1050,7 @@ void AutoConfigTestPage::FinalizeResults() auto encName = [](AutoConfig::Encoder enc) -> QString { switch (enc) { case AutoConfig::Encoder::x264: - return QTStr(ENCODER_SOFTWARE); + return QTStr(ENCODER_X264); case AutoConfig::Encoder::NVENC: return QTStr(ENCODER_NVENC); case AutoConfig::Encoder::QSV: @@ -1063,7 +1063,7 @@ void AutoConfigTestPage::FinalizeResults() return QTStr(QUALITY_SAME); } - return QTStr(ENCODER_SOFTWARE); + return QTStr(ENCODER_X264); }; auto newLabel = [this](const char *str) -> QLabel * { diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp index e28c5b189..de306efa9 100644 --- a/UI/window-basic-settings-stream.cpp +++ b/UI/window-basic-settings-stream.cpp @@ -1704,7 +1704,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly) #define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str) - ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software"), + ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software.X264.H264"), QString(SIMPLE_ENCODER_X264)); #ifdef _WIN32 if (service_supports_encoder(vcodecs, "obs_qsv11")) diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index bee2c86ed..efb98c4ef 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -5303,10 +5303,11 @@ void OBSBasicSettings::FillSimpleRecordingValues() ADD_QUALITY("HQ"); ADD_QUALITY("Lossless"); - ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software"), + ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software.X264.H264"), QString(SIMPLE_ENCODER_X264)); - ui->simpleOutRecEncoder->addItem(ENCODER_STR("SoftwareLowCPU"), - QString(SIMPLE_ENCODER_X264_LOWCPU)); + ui->simpleOutRecEncoder->addItem( + ENCODER_STR("SoftwareLowCPU.X264.H264"), + QString(SIMPLE_ENCODER_X264_LOWCPU)); if (EncoderAvailable("obs_qsv11")) ui->simpleOutRecEncoder->addItem( ENCODER_STR("Hardware.QSV.H264"), -- 2.44.0