UI: Set advanced audio encoder to invalid if missing

This commit is contained in:
derrod
2023-08-15 19:47:35 +02:00
committed by Lain
parent fee4f2dc48
commit 3e29844af7

View File

@@ -920,6 +920,8 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
&OBSBasicSettings::AdvOutRecCheckCodecs);
// Set placeholder used when selection was reset due to incompatibilities
ui->advOutAEncoder->setPlaceholderText(
QTStr("CodecCompat.CodecPlaceholder"));
ui->advOutRecEncoder->setPlaceholderText(
QTStr("CodecCompat.CodecPlaceholder"));
ui->advOutRecAEncoder->setPlaceholderText(
@@ -2427,7 +2429,8 @@ void OBSBasicSettings::LoadOutputSettings()
const char *type =
config_get_string(main->Config(), "AdvOut", "AudioEncoder");
SetComboByValue(ui->advOutAEncoder, type);
if (!SetComboByValue(ui->advOutAEncoder, type))
ui->advOutAEncoder->setCurrentIndex(-1);
LoadAdvOutputRecordingSettings();
LoadAdvOutputRecordingEncoderProperties();
@@ -4970,6 +4973,11 @@ static void DisableIncompatibleCodecs(QComboBox *cbox, const QString &format,
? strEncLabel
: obs_encoder_get_display_name(
encoderId.c_str());
/* Something has gone horribly wrong and there's no encoder */
if (encoderId.empty())
continue;
const char *codec = obs_get_encoder_codec(encoderId.c_str());
bool is_compatible =