From edec5406952b768b5e0f7f63cf7c145d2414549d Mon Sep 17 00:00:00 2001 From: Palana Date: Wed, 16 Sep 2015 10:26:48 +0200 Subject: [PATCH] UI: Add custom muxer settings to advanced FFmpeg output --- obs/data/locale/en-US.ini | 1 + obs/forms/OBSBasicSettings.ui | 42 +++++++++++++++++++------------ obs/window-basic-main-outputs.cpp | 3 +++ obs/window-basic-settings.cpp | 5 ++++ 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/obs/data/locale/en-US.ini b/obs/data/locale/en-US.ini index c916c476c..3045459d6 100644 --- a/obs/data/locale/en-US.ini +++ b/obs/data/locale/en-US.ini @@ -348,6 +348,7 @@ Basic.Settings.Output.Adv.FFmpeg.VEncoder="Video Encoder" Basic.Settings.Output.Adv.FFmpeg.VEncoderSettings="Video Encoder Settings (if any)" Basic.Settings.Output.Adv.FFmpeg.AEncoder="Audio Encoder" Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings="Audio Encoder Settings (if any)" +Basic.Settings.Output.Adv.FFmpeg.MuxerSettings="Muxer Settings (if any)" # basic mode 'video' settings Basic.Settings.Video="Video" diff --git a/obs/forms/OBSBasicSettings.ui b/obs/forms/OBSBasicSettings.ui index afc14f653..9e5991dae 100644 --- a/obs/forms/OBSBasicSettings.ui +++ b/obs/forms/OBSBasicSettings.ui @@ -1281,14 +1281,14 @@ - + Basic.Settings.Output.VideoBitrate - + 0 @@ -1301,7 +1301,7 @@ - + @@ -1317,7 +1317,7 @@ - + false @@ -1327,34 +1327,34 @@ - + Basic.Settings.Output.Adv.FFmpeg.VEncoder - + - + Basic.Settings.Output.Adv.FFmpeg.VEncoderSettings - + - + Basic.Settings.Output.AudioBitrate - + 32 @@ -1370,14 +1370,14 @@ - + Basic.Settings.Output.Adv.AudioTrack - + @@ -1432,24 +1432,24 @@ - + Basic.Settings.Output.Adv.FFmpeg.AEncoder - + - + Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings - + @@ -1488,6 +1488,16 @@ + + + + Basic.Settings.Output.Adv.FFmpeg.MuxerSettings + + + + + + diff --git a/obs/window-basic-main-outputs.cpp b/obs/window-basic-main-outputs.cpp index c7a4614be..cbdd18823 100644 --- a/obs/window-basic-main-outputs.cpp +++ b/obs/window-basic-main-outputs.cpp @@ -594,6 +594,8 @@ inline void AdvancedOutput::SetupFFmpeg() "FFFormat"); const char *mimeType = config_get_string(main->Config(), "AdvOut", "FFFormatMimeType"); + const char *muxCustom = config_get_string(main->Config(), "AdvOut", + "FFMCustom"); const char *vEncoder = config_get_string(main->Config(), "AdvOut", "FFVEncoder"); int vEncoderId = config_get_int(main->Config(), "AdvOut", @@ -615,6 +617,7 @@ inline void AdvancedOutput::SetupFFmpeg() obs_data_set_string(settings, "url", url); obs_data_set_string(settings, "format_name", formatName); obs_data_set_string(settings, "format_mime_type", mimeType); + obs_data_set_string(settings, "muxer_settings", muxCustom); obs_data_set_int(settings, "video_bitrate", vBitrate); obs_data_set_string(settings, "video_encoder", vEncoder); obs_data_set_int(settings, "video_encoder_id", vEncoderId); diff --git a/obs/window-basic-settings.cpp b/obs/window-basic-settings.cpp index 2bb715fae..93649f346 100644 --- a/obs/window-basic-settings.cpp +++ b/obs/window-basic-settings.cpp @@ -295,6 +295,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) HookWidget(ui->advOutFFRecPath, EDIT_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->advOutFFURL, EDIT_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->advOutFFFormat, COMBO_CHANGED, OUTPUTS_CHANGED); + HookWidget(ui->advOutFFMCfg, EDIT_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->advOutFFVBitrate, SCROLL_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->advOutFFUseRescale, CHECK_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->advOutFFRescale, CBEDIT_CHANGED, OUTPUTS_CHANGED); @@ -1172,6 +1173,8 @@ void OBSBasicSettings::LoadAdvOutputFFmpegSettings() "FFFormat"); const char *mimeType = config_get_string(main->Config(), "AdvOut", "FFFormatMimeType"); + const char *muxCustom = config_get_string(main->Config(), "AdvOut", + "FFMCustom"); int videoBitrate = config_get_int(main->Config(), "AdvOut", "FFVBitrate"); bool rescale = config_get_bool(main->Config(), "AdvOut", @@ -1199,6 +1202,7 @@ void OBSBasicSettings::LoadAdvOutputFFmpegSettings() ui->advOutFFRecPath->setText(QT_UTF8(path)); ui->advOutFFURL->setText(QT_UTF8(url)); SelectFormat(ui->advOutFFFormat, format, mimeType); + ui->advOutFFMCfg->setText(muxCustom); ui->advOutFFVBitrate->setValue(videoBitrate); ui->advOutFFUseRescale->setChecked(rescale); ui->advOutFFRescale->setEnabled(rescale); @@ -2104,6 +2108,7 @@ void OBSBasicSettings::SaveOutputSettings() SaveEdit(ui->advOutFFRecPath, "AdvOut", "FFFilePath"); SaveEdit(ui->advOutFFURL, "AdvOut", "FFURL"); SaveFormat(ui->advOutFFFormat); + SaveEdit(ui->advOutFFMCfg, "AdvOut", "FFMCustom"); SaveSpinBox(ui->advOutFFVBitrate, "AdvOut", "FFVBitrate"); SaveCheckBox(ui->advOutFFUseRescale, "AdvOut", "FFRescale"); SaveCombo(ui->advOutFFRescale, "AdvOut", "FFRescaleRes");