mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-02-18 15:04:53 -05:00
UI: Add codec compatability checkbox to ffmpeg output
Closes jp9000/obs-studio#804
This commit is contained in:
@@ -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")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user