UI: Do not show deprecated encoders if not selected
Hides video encoders marked as deprecated if they're not currently in use.master
parent
e38a5c61d3
commit
21ea1b1947
|
@ -137,11 +137,15 @@ static inline void SetComboByName(QComboBox *combo, const char *name)
|
||||||
combo->setCurrentIndex(idx);
|
combo->setCurrentIndex(idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void SetComboByValue(QComboBox *combo, const char *name)
|
static inline bool SetComboByValue(QComboBox *combo, const char *name)
|
||||||
{
|
{
|
||||||
int idx = combo->findData(QT_UTF8(name));
|
int idx = combo->findData(QT_UTF8(name));
|
||||||
if (idx != -1)
|
if (idx != -1) {
|
||||||
combo->setCurrentIndex(idx);
|
combo->setCurrentIndex(idx);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline QString GetComboData(QComboBox *combo)
|
static inline QString GetComboData(QComboBox *combo)
|
||||||
|
@ -573,9 +577,12 @@ void OBSBasicSettings::LoadEncoderTypes()
|
||||||
while (obs_enum_encoder_types(idx++, &type)) {
|
while (obs_enum_encoder_types(idx++, &type)) {
|
||||||
const char *name = obs_encoder_get_display_name(type);
|
const char *name = obs_encoder_get_display_name(type);
|
||||||
const char *codec = obs_get_encoder_codec(type);
|
const char *codec = obs_get_encoder_codec(type);
|
||||||
|
uint32_t caps = obs_get_encoder_caps(type);
|
||||||
|
|
||||||
if (strcmp(codec, "h264") != 0)
|
if (strcmp(codec, "h264") != 0)
|
||||||
continue;
|
continue;
|
||||||
|
if ((caps & OBS_ENCODER_CAP_DEPRECATED) != 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
QString qName = QT_UTF8(name);
|
QString qName = QT_UTF8(name);
|
||||||
QString qType = QT_UTF8(type);
|
QString qType = QT_UTF8(type);
|
||||||
|
@ -1217,18 +1224,27 @@ OBSPropertiesView *OBSBasicSettings::CreateEncoderPropertyView(
|
||||||
|
|
||||||
void OBSBasicSettings::LoadAdvOutputStreamingEncoderProperties()
|
void OBSBasicSettings::LoadAdvOutputStreamingEncoderProperties()
|
||||||
{
|
{
|
||||||
const char *encoder = config_get_string(main->Config(), "AdvOut",
|
const char *type = config_get_string(main->Config(), "AdvOut",
|
||||||
"Encoder");
|
"Encoder");
|
||||||
|
|
||||||
delete streamEncoderProps;
|
delete streamEncoderProps;
|
||||||
streamEncoderProps = CreateEncoderPropertyView(encoder,
|
streamEncoderProps = CreateEncoderPropertyView(type,
|
||||||
"streamEncoder.json");
|
"streamEncoder.json");
|
||||||
ui->advOutputStreamTab->layout()->addWidget(streamEncoderProps);
|
ui->advOutputStreamTab->layout()->addWidget(streamEncoderProps);
|
||||||
|
|
||||||
connect(streamEncoderProps, SIGNAL(Changed()),
|
connect(streamEncoderProps, SIGNAL(Changed()),
|
||||||
this, SLOT(UpdateStreamDelayEstimate()));
|
this, SLOT(UpdateStreamDelayEstimate()));
|
||||||
|
|
||||||
SetComboByValue(ui->advOutEncoder, encoder);
|
if (!SetComboByValue(ui->advOutEncoder, type)) {
|
||||||
|
uint32_t caps = obs_get_encoder_caps(type);
|
||||||
|
if ((caps & OBS_ENCODER_CAP_DEPRECATED) != 0) {
|
||||||
|
const char *name = obs_encoder_get_display_name(type);
|
||||||
|
|
||||||
|
ui->advOutEncoder->insertItem(0, QT_UTF8(name),
|
||||||
|
QT_UTF8(type));
|
||||||
|
SetComboByValue(ui->advOutEncoder, type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
UpdateStreamDelayEstimate();
|
UpdateStreamDelayEstimate();
|
||||||
}
|
}
|
||||||
|
@ -1270,19 +1286,28 @@ void OBSBasicSettings::LoadAdvOutputRecordingSettings()
|
||||||
|
|
||||||
void OBSBasicSettings::LoadAdvOutputRecordingEncoderProperties()
|
void OBSBasicSettings::LoadAdvOutputRecordingEncoderProperties()
|
||||||
{
|
{
|
||||||
const char *encoder = config_get_string(main->Config(), "AdvOut",
|
const char *type = config_get_string(main->Config(), "AdvOut",
|
||||||
"RecEncoder");
|
"RecEncoder");
|
||||||
|
|
||||||
delete recordEncoderProps;
|
delete recordEncoderProps;
|
||||||
recordEncoderProps = nullptr;
|
recordEncoderProps = nullptr;
|
||||||
|
|
||||||
if (astrcmpi(encoder, "none") != 0) {
|
if (astrcmpi(type, "none") != 0) {
|
||||||
recordEncoderProps = CreateEncoderPropertyView(encoder,
|
recordEncoderProps = CreateEncoderPropertyView(type,
|
||||||
"recordEncoder.json");
|
"recordEncoder.json");
|
||||||
ui->advOutRecStandard->layout()->addWidget(recordEncoderProps);
|
ui->advOutRecStandard->layout()->addWidget(recordEncoderProps);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetComboByValue(ui->advOutRecEncoder, encoder);
|
if (!SetComboByValue(ui->advOutRecEncoder, type)) {
|
||||||
|
uint32_t caps = obs_get_encoder_caps(type);
|
||||||
|
if ((caps & OBS_ENCODER_CAP_DEPRECATED) != 0) {
|
||||||
|
const char *name = obs_encoder_get_display_name(type);
|
||||||
|
|
||||||
|
ui->advOutRecEncoder->insertItem(1, QT_UTF8(name),
|
||||||
|
QT_UTF8(type));
|
||||||
|
SetComboByValue(ui->advOutRecEncoder, type);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SelectFormat(QComboBox *combo, const char *name,
|
static void SelectFormat(QComboBox *combo, const char *name,
|
||||||
|
|
Loading…
Reference in New Issue