From a2373b12588d2171b63b6fef1b439def1c750130 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Fri, 6 Feb 2015 03:56:19 -0800 Subject: [PATCH] UI: Add buffer size to 'simple' settings --- obs/forms/OBSBasicSettings.ui | 132 +++++++++++++++++++++++++++------- obs/window-basic-main.cpp | 3 + obs/window-basic-settings.cpp | 26 +++++++ obs/window-basic-settings.hpp | 3 + 4 files changed, 138 insertions(+), 26 deletions(-) diff --git a/obs/forms/OBSBasicSettings.ui b/obs/forms/OBSBasicSettings.ui index 5c84562eb..12cc748cb 100644 --- a/obs/forms/OBSBasicSettings.ui +++ b/obs/forms/OBSBasicSettings.ui @@ -483,6 +483,13 @@ + + + + Basic.Settings.Output.RetryDelay + + + @@ -490,6 +497,13 @@ + + + + Basic.Settings.Output.MaxRetries + + + @@ -500,20 +514,6 @@ - - - - Basic.Settings.Output.RetryDelay - - - - - - - Basic.Settings.Output.MaxRetries - - - @@ -524,13 +524,13 @@ - - - - - + + - Basic.Settings.Output.CustomEncoderSettings + Basic.Settings.Output.UseCBR + + + true @@ -588,16 +588,48 @@ - - - - Basic.Settings.Output.UseCBR + + + + + 0 + 0 + - - true + + Qt::RightToLeft + + + Basic.Settings.Output.UseBufferSize + + + + false + + + 200 + + + 1000000 + + + 2000 + + + + + + + Basic.Settings.Output.CustomEncoderSettings + + + + + + @@ -1267,5 +1299,53 @@ + + simpleOutUseBufsize + toggled(bool) + simpleOutVBufsize + setEnabled(bool) + + + 318 + 312 + + + 473 + 311 + + + + + simpleOutAdvanced + toggled(bool) + simpleOutUseBufsize + setVisible(bool) + + + 456 + 241 + + + 260 + 315 + + + + + simpleOutAdvanced + toggled(bool) + simpleOutVBufsize + setVisible(bool) + + + 525 + 238 + + + 519 + 317 + + + diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 657dd43f4..f91715cc2 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -401,6 +401,9 @@ bool OBSBasic::InitBasicConfigDefaults() config_set_default_bool (basicConfig, "SimpleOutput", "UseAdvanced", false); config_set_default_bool (basicConfig, "SimpleOutput", "UseCBR", true); + config_set_default_bool (basicConfig, "SimpleOutput", "UseBufsize", + false); + config_set_default_int (basicConfig, "SimpleOutput", "Bufsize", 2500); config_set_default_string(basicConfig, "SimpleOutput", "Preset", "veryfast"); diff --git a/obs/window-basic-settings.cpp b/obs/window-basic-settings.cpp index 07bf52010..2397ee818 100644 --- a/obs/window-basic-settings.cpp +++ b/obs/window-basic-settings.cpp @@ -142,6 +142,8 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) HookWidget(ui->simpleOutUseCBR, CHECK_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->simpleOutPreset, COMBO_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->simpleOutCustom, EDIT_CHANGED, OUTPUTS_CHANGED); + HookWidget(ui->simpleOutUseBufsize, CHECK_CHANGED, OUTPUTS_CHANGED); + HookWidget(ui->simpleOutVBufsize, SCROLL_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->channelSetup, COMBO_CHANGED, AUDIO_RESTART); HookWidget(ui->sampleRate, COMBO_CHANGED, AUDIO_RESTART); HookWidget(ui->desktopAudioDevice1, COMBO_CHANGED, AUDIO_CHANGED); @@ -442,6 +444,8 @@ void OBSBasicSettings::LoadSimpleOutputSettings() "FilePath"); int videoBitrate = config_get_uint(main->Config(), "SimpleOutput", "VBitrate"); + int videoBufsize = config_get_uint(main->Config(), "SimpleOutput", + "Bufsize"); int audioBitrate = config_get_uint(main->Config(), "SimpleOutput", "ABitrate"); bool reconnect = config_get_bool(main->Config(), "SimpleOutput", @@ -454,6 +458,8 @@ void OBSBasicSettings::LoadSimpleOutputSettings() "UseAdvanced"); bool useCBR = config_get_bool(main->Config(), "SimpleOutput", "UseCBR"); + bool useBufsize = config_get_bool(main->Config(), "SimpleOutput", + "UseBufsize"); const char *preset = config_get_string(main->Config(), "SimpleOutput", "Preset"); const char *custom = config_get_string(main->Config(), "SimpleOutput", @@ -461,6 +467,9 @@ void OBSBasicSettings::LoadSimpleOutputSettings() ui->simpleOutputPath->setText(path); ui->simpleOutputVBitrate->setValue(videoBitrate); + ui->simpleOutUseBufsize->setChecked(useBufsize); + ui->simpleOutVBufsize->setValue( + useBufsize ? videoBufsize : videoBitrate); SetComboByName(ui->simpleOutputABitrate, std::to_string(audioBitrate).c_str()); @@ -647,8 +656,12 @@ void OBSBasicSettings::SaveOutputSettings() SaveSpinBox(ui->simpleOutMaxRetries, "SimpleOutput", "MaxRetries"); SaveCheckBox(ui->simpleOutAdvanced, "SimpleOutput", "UseAdvanced"); SaveCheckBox(ui->simpleOutUseCBR, "SimpleOutput", "UseCBR"); + SaveCheckBox(ui->simpleOutUseBufsize, "SimpleOutput", "UseBufsize"); SaveCombo(ui->simpleOutPreset, "SimpleOutput", "Preset"); SaveEdit(ui->simpleOutCustom, "SimpleOutput", "x264Settings"); + + if (ui->simpleOutUseBufsize->isChecked()) + SaveSpinBox(ui->simpleOutVBufsize, "SimpleOutput", "VBufsize"); } void OBSBasicSettings::SaveAudioSettings() @@ -723,6 +736,19 @@ void OBSBasicSettings::closeEvent(QCloseEvent *event) event->ignore(); } +void OBSBasicSettings::on_simpleOutUseBufsize_toggled(bool checked) +{ + if (!checked) + ui->simpleOutVBufsize->setValue( + ui->simpleOutputVBitrate->value()); +} + +void OBSBasicSettings::on_simpleOutputVBitrate_valueChanged(int val) +{ + if (!ui->simpleOutUseBufsize->isChecked()) + ui->simpleOutVBufsize->setValue(val); +} + void OBSBasicSettings::on_listWidget_itemSelectionChanged() { int row = ui->listWidget->currentRow(); diff --git a/obs/window-basic-settings.hpp b/obs/window-basic-settings.hpp index 9e97206c6..1a778a7fe 100644 --- a/obs/window-basic-settings.hpp +++ b/obs/window-basic-settings.hpp @@ -115,6 +115,9 @@ private: void SaveSettings(); private slots: + void on_simpleOutUseBufsize_toggled(bool checked); + void on_simpleOutputVBitrate_valueChanged(int val); + void on_listWidget_itemSelectionChanged(); void on_buttonBox_clicked(QAbstractButton *button);