mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-04-28 18:39:05 -04:00
UI: Use defaults when changing to different encoders
In the advanced output section of settings, when a different encoder is set, it would try to pass over settings from the other encoder, which may or may not be fully compatible with different encoders. Instead, just set it to defaults if it's on an encoder that's different from the currently loaded encoder.
This commit is contained in:
@@ -1257,6 +1257,8 @@ void OBSBasicSettings::LoadAdvOutputStreamingEncoderProperties()
|
||||
connect(streamEncoderProps, SIGNAL(Changed()),
|
||||
this, SLOT(UpdateStreamDelayEstimate()));
|
||||
|
||||
curAdvStreamEncoder = type;
|
||||
|
||||
if (!SetComboByValue(ui->advOutEncoder, type)) {
|
||||
uint32_t caps = obs_get_encoder_caps(type);
|
||||
if ((caps & OBS_ENCODER_CAP_DEPRECATED) != 0) {
|
||||
@@ -1320,6 +1322,8 @@ void OBSBasicSettings::LoadAdvOutputRecordingEncoderProperties()
|
||||
ui->advOutRecStandard->layout()->addWidget(recordEncoderProps);
|
||||
}
|
||||
|
||||
curAdvRecordEncoder = type;
|
||||
|
||||
if (!SetComboByValue(ui->advOutRecEncoder, type)) {
|
||||
uint32_t caps = obs_get_encoder_caps(type);
|
||||
if ((caps & OBS_ENCODER_CAP_DEPRECATED) != 0) {
|
||||
@@ -2366,6 +2370,8 @@ void OBSBasicSettings::SaveOutputSettings()
|
||||
SaveComboData(ui->simpleOutRecEncoder, "SimpleOutput", "RecEncoder");
|
||||
SaveEdit(ui->simpleOutMuxCustom, "SimpleOutput", "MuxerCustom");
|
||||
|
||||
curAdvStreamEncoder = GetComboData(ui->advOutEncoder);
|
||||
|
||||
SaveCheckBox(ui->advOutApplyService, "AdvOut", "ApplyServiceSettings");
|
||||
SaveComboData(ui->advOutEncoder, "AdvOut", "Encoder");
|
||||
SaveCheckBox(ui->advOutUseRescale, "AdvOut", "Rescale");
|
||||
@@ -2377,6 +2383,8 @@ void OBSBasicSettings::SaveOutputSettings()
|
||||
config_set_string(main->Config(), "AdvOut", "RecType",
|
||||
RecTypeFromIdx(ui->advOutRecType->currentIndex()));
|
||||
|
||||
curAdvRecordEncoder = GetComboData(ui->advOutRecEncoder);
|
||||
|
||||
SaveEdit(ui->advOutRecPath, "AdvOut", "RecFilePath");
|
||||
SaveCheckBox(ui->advOutNoSpace, "AdvOut", "RecFileNameWithoutSpace");
|
||||
SaveCombo(ui->advOutRecFormat, "AdvOut", "RecFormat");
|
||||
@@ -2707,10 +2715,11 @@ void OBSBasicSettings::on_advOutEncoder_currentIndexChanged(int idx)
|
||||
return;
|
||||
|
||||
QString encoder = GetComboData(ui->advOutEncoder);
|
||||
bool loadSettings = encoder == curAdvStreamEncoder;
|
||||
|
||||
delete streamEncoderProps;
|
||||
streamEncoderProps = CreateEncoderPropertyView(QT_TO_UTF8(encoder),
|
||||
"streamEncoder.json", true);
|
||||
loadSettings ? "streamEncoder.json" : nullptr, true);
|
||||
ui->advOutputStreamTab->layout()->addWidget(streamEncoderProps);
|
||||
|
||||
UNUSED_PARAMETER(idx);
|
||||
@@ -2729,10 +2738,12 @@ void OBSBasicSettings::on_advOutRecEncoder_currentIndexChanged(int idx)
|
||||
|
||||
if (idx > 0) {
|
||||
QString encoder = GetComboData(ui->advOutRecEncoder);
|
||||
bool loadSettings = encoder == curAdvRecordEncoder;
|
||||
|
||||
recordEncoderProps = CreateEncoderPropertyView(
|
||||
QT_TO_UTF8(encoder),
|
||||
"recordEncoder.json", true);
|
||||
loadSettings ? "recordEncoder.json" : nullptr,
|
||||
true);
|
||||
ui->advOutRecStandard->layout()->addWidget(recordEncoderProps);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user