提交 d54bf1b8 编写于 作者: J jp9000

UI: Add "Enforce streaming bitrate limits" setting

Allows the user to disable streaming bitrate limits in simple output
mode if they so choose.  This option is enabled by default.
上级 26977328
......@@ -371,6 +371,7 @@ Basic.Settings.Output.Format="Recording Format"
Basic.Settings.Output.Encoder="Encoder"
Basic.Settings.Output.SelectDirectory="Select Recording Directory"
Basic.Settings.Output.SelectFile="Select Recording File"
Basic.Settings.Output.EnforceBitrate="Enforce streaming service bitrate limits"
Basic.Settings.Output.Mode="Output Mode"
Basic.Settings.Output.Mode.Simple="Simple"
Basic.Settings.Output.Mode.Adv="Advanced"
......
......@@ -621,7 +621,7 @@
</property>
</widget>
</item>
<item row="3" column="1">
<item row="4" column="1">
<widget class="QComboBox" name="simpleOutPreset">
<item>
<property name="text">
......@@ -665,7 +665,7 @@
</item>
</widget>
</item>
<item row="3" column="0">
<item row="4" column="0">
<widget class="QLabel" name="label_24">
<property name="enabled">
<bool>true</bool>
......@@ -678,7 +678,7 @@
</property>
</widget>
</item>
<item row="4" column="0">
<item row="5" column="0">
<widget class="QLabel" name="label_23">
<property name="text">
<string>Basic.Settings.Output.CustomEncoderSettings</string>
......@@ -688,9 +688,16 @@
</property>
</widget>
</item>
<item row="4" column="1">
<item row="5" column="1">
<widget class="QLineEdit" name="simpleOutCustom"/>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="simpleOutEnforce">
<property name="text">
<string>Basic.Settings.Output.EnforceBitrate</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
......@@ -3669,8 +3676,24 @@
<y>207</y>
</hint>
<hint type="destinationlabel">
<x>777</x>
<y>206</y>
<x>866</x>
<y>306</y>
</hint>
</hints>
</connection>
<connection>
<sender>simpleOutAdvanced</sender>
<signal>toggled(bool)</signal>
<receiver>simpleOutEnforce</receiver>
<slot>setVisible(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>484</x>
<y>147</y>
</hint>
<hint type="destinationlabel">
<x>483</x>
<y>170</y>
</hint>
</hints>
</connection>
......
......@@ -297,6 +297,8 @@ void SimpleOutput::Update()
int audioBitrate = GetAudioBitrate();
bool advanced = config_get_bool(main->Config(), "SimpleOutput",
"UseAdvanced");
bool enforceBitrate = config_get_bool(main->Config(), "SimpleOutput",
"EnforceBitrate");
const char *preset = config_get_string(main->Config(),
"SimpleOutput", "Preset");
const char *custom = config_get_string(main->Config(),
......@@ -315,6 +317,9 @@ void SimpleOutput::Update()
obs_service_apply_encoder_settings(main->GetService(),
h264Settings, aacSettings);
if (advanced && !enforceBitrate)
obs_data_set_int(h264Settings, "bitrate", videoBitrate);
video_t *video = obs_get_video();
enum video_format format = video_output_get_format(video);
......
......@@ -706,6 +706,8 @@ bool OBSBasic::InitBasicConfigDefaults()
config_set_default_uint (basicConfig, "SimpleOutput", "ABitrate", 160);
config_set_default_bool (basicConfig, "SimpleOutput", "UseAdvanced",
false);
config_set_default_bool (basicConfig, "SimpleOutput", "EnforceBitrate",
true);
config_set_default_string(basicConfig, "SimpleOutput", "Preset",
"veryfast");
config_set_default_string(basicConfig, "SimpleOutput", "RecQuality",
......
......@@ -280,6 +280,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
HookWidget(ui->simpleOutputVBitrate, SCROLL_CHANGED, OUTPUTS_CHANGED);
HookWidget(ui->simpleOutputABitrate, COMBO_CHANGED, OUTPUTS_CHANGED);
HookWidget(ui->simpleOutAdvanced, CHECK_CHANGED, OUTPUTS_CHANGED);
HookWidget(ui->simpleOutEnforce, CHECK_CHANGED, OUTPUTS_CHANGED);
HookWidget(ui->simpleOutPreset, COMBO_CHANGED, OUTPUTS_CHANGED);
HookWidget(ui->simpleOutCustom, EDIT_CHANGED, OUTPUTS_CHANGED);
HookWidget(ui->simpleOutRecQuality, COMBO_CHANGED, OUTPUTS_CHANGED);
......@@ -1104,6 +1105,8 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
"ABitrate");
bool advanced = config_get_bool(main->Config(), "SimpleOutput",
"UseAdvanced");
bool enforceBitrate = config_get_bool(main->Config(), "SimpleOutput",
"EnforceBitrate");
const char *preset = config_get_string(main->Config(), "SimpleOutput",
"Preset");
const char *custom = config_get_string(main->Config(), "SimpleOutput",
......@@ -1129,6 +1132,7 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
ui->simpleOutAdvanced->setChecked(advanced);
ui->simpleOutPreset->setCurrentText(preset);
ui->simpleOutEnforce->setChecked(enforceBitrate);
ui->simpleOutCustom->setText(custom);
idx = ui->simpleOutRecQuality->findData(QString(recQual));
......@@ -2287,6 +2291,7 @@ void OBSBasicSettings::SaveOutputSettings()
SaveCheckBox(ui->simpleNoSpace, "SimpleOutput", "FileNameWithoutSpace");
SaveCombo(ui->simpleOutRecFormat, "SimpleOutput", "RecFormat");
SaveCheckBox(ui->simpleOutAdvanced, "SimpleOutput", "UseAdvanced");
SaveCheckBox(ui->simpleOutEnforce, "SimpleOutput", "EnforceBitrate");
SaveCombo(ui->simpleOutPreset, "SimpleOutput", "Preset");
SaveEdit(ui->simpleOutCustom, "SimpleOutput", "x264Settings");
SaveComboData(ui->simpleOutRecQuality, "SimpleOutput", "RecQuality");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册