|
@@ -342,6 +342,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
|
|
HookWidget(ui->advOutFFVBitrate, SCROLL_CHANGED, OUTPUTS_CHANGED);
|
|
|
HookWidget(ui->advOutFFVGOPSize, SCROLL_CHANGED, OUTPUTS_CHANGED);
|
|
|
HookWidget(ui->advOutFFUseRescale, CHECK_CHANGED, OUTPUTS_CHANGED);
|
|
|
+ HookWidget(ui->advOutFFIgnoreCompat, CHECK_CHANGED, OUTPUTS_CHANGED);
|
|
|
HookWidget(ui->advOutFFRescale, CBEDIT_CHANGED, OUTPUTS_CHANGED);
|
|
|
HookWidget(ui->advOutFFVEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
|
|
HookWidget(ui->advOutFFVCfg, EDIT_CHANGED, OUTPUTS_CHANGED);
|
|
@@ -352,7 +353,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
|
|
HookWidget(ui->advOutFFTrack4, CHECK_CHANGED, OUTPUTS_CHANGED);
|
|
|
HookWidget(ui->advOutFFTrack5, CHECK_CHANGED, OUTPUTS_CHANGED);
|
|
|
HookWidget(ui->advOutFFTrack6, CHECK_CHANGED, OUTPUTS_CHANGED);
|
|
|
- HookWidget(ui->advOutFFAEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
|
|
+ HookWidget(ui->advOutFFAEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
|
|
HookWidget(ui->advOutFFACfg, EDIT_CHANGED, OUTPUTS_CHANGED);
|
|
|
HookWidget(ui->advOutTrack1Bitrate, COMBO_CHANGED, OUTPUTS_CHANGED);
|
|
|
HookWidget(ui->advOutTrack1Name, EDIT_CHANGED, OUTPUTS_CHANGED);
|
|
@@ -813,7 +814,9 @@ void OBSBasicSettings::ReloadCodecs(const ff_format_desc *formatDesc)
|
|
|
if (formatDesc == nullptr)
|
|
|
return;
|
|
|
|
|
|
- OBSFFCodecDesc codecDescs(ff_codec_supported(formatDesc));
|
|
|
+ bool ignore_compatability = ui->advOutFFIgnoreCompat->isChecked();
|
|
|
+ OBSFFCodecDesc codecDescs(ff_codec_supported(formatDesc,
|
|
|
+ ignore_compatability));
|
|
|
|
|
|
const ff_codec_desc *codec = codecDescs.get();
|
|
|
|
|
@@ -1563,6 +1566,8 @@ void OBSBasicSettings::LoadAdvOutputFFmpegSettings()
|
|
|
"FFVGOPSize");
|
|
|
bool rescale = config_get_bool(main->Config(), "AdvOut",
|
|
|
"FFRescale");
|
|
|
+ bool codecCompat = config_get_bool(main->Config(), "AdvOut",
|
|
|
+ "FFIgnoreCompat");
|
|
|
const char *rescaleRes = config_get_string(main->Config(), "AdvOut",
|
|
|
"FFRescaleRes");
|
|
|
const char *vEncoder = config_get_string(main->Config(), "AdvOut",
|
|
@@ -1591,6 +1596,7 @@ void OBSBasicSettings::LoadAdvOutputFFmpegSettings()
|
|
|
ui->advOutFFVBitrate->setValue(videoBitrate);
|
|
|
ui->advOutFFVGOPSize->setValue(gopSize);
|
|
|
ui->advOutFFUseRescale->setChecked(rescale);
|
|
|
+ ui->advOutFFIgnoreCompat->setChecked(codecCompat);
|
|
|
ui->advOutFFRescale->setEnabled(rescale);
|
|
|
ui->advOutFFRescale->setCurrentText(rescaleRes);
|
|
|
SelectEncoder(ui->advOutFFVEncoder, vEncoder, vEncoderId);
|
|
@@ -2753,6 +2759,7 @@ void OBSBasicSettings::SaveOutputSettings()
|
|
|
SaveSpinBox(ui->advOutFFVBitrate, "AdvOut", "FFVBitrate");
|
|
|
SaveSpinBox(ui->advOutFFVGOPSize, "AdvOut", "FFVGOPSize");
|
|
|
SaveCheckBox(ui->advOutFFUseRescale, "AdvOut", "FFRescale");
|
|
|
+ SaveCheckBox(ui->advOutFFIgnoreCompat, "AdvOut", "FFIgnoreCompat");
|
|
|
SaveCombo(ui->advOutFFRescale, "AdvOut", "FFRescaleRes");
|
|
|
SaveEncoder(ui->advOutFFVEncoder, "AdvOut", "FFVEncoder");
|
|
|
SaveEdit(ui->advOutFFVCfg, "AdvOut", "FFVCustom");
|
|
@@ -3110,6 +3117,13 @@ void OBSBasicSettings::on_advOutRecEncoder_currentIndexChanged(int idx)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void OBSBasicSettings::on_advOutFFIgnoreCompat_stateChanged(int)
|
|
|
+{
|
|
|
+ /* Little hack to reload codecs when checked */
|
|
|
+ on_advOutFFFormat_currentIndexChanged(
|
|
|
+ ui->advOutFFFormat->currentIndex());
|
|
|
+}
|
|
|
+
|
|
|
#define DEFAULT_CONTAINER_STR \
|
|
|
QTStr("Basic.Settings.Output.Adv.FFmpeg.FormatDescDef")
|
|
|
|