mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-20 04:42:18 +02:00
UI: Allow file name generation without spaces
This will probably go away once proper file name formatting is implemented (https://obsproject.com/mantis/view.php?id=361)
This commit is contained in:
parent
1cd98ae008
commit
124ccb68de
@ -335,6 +335,7 @@ Basic.Settings.Output.Advanced="Enable Advanced Encoder Settings"
|
|||||||
Basic.Settings.Output.EncoderPreset="Encoder Preset (higher = less CPU)"
|
Basic.Settings.Output.EncoderPreset="Encoder Preset (higher = less CPU)"
|
||||||
Basic.Settings.Output.CustomEncoderSettings="Custom Encoder Settings"
|
Basic.Settings.Output.CustomEncoderSettings="Custom Encoder Settings"
|
||||||
Basic.Settings.Output.CustomMuxerSettings="Custom Muxer Settings"
|
Basic.Settings.Output.CustomMuxerSettings="Custom Muxer Settings"
|
||||||
|
Basic.Settings.Output.NoSpaceFileName="Generate File Name without Space"
|
||||||
|
|
||||||
# basic mode 'output' settings - advanced section
|
# basic mode 'output' settings - advanced section
|
||||||
Basic.Settings.Output.Adv.Rescale="Rescale Output"
|
Basic.Settings.Output.Adv.Rescale="Rescale Output"
|
||||||
|
@ -574,7 +574,7 @@
|
|||||||
<property name="labelAlignment">
|
<property name="labelAlignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
</property>
|
</property>
|
||||||
<item row="1" column="1">
|
<item row="0" column="1">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLineEdit" name="simpleOutputPath">
|
<widget class="QLineEdit" name="simpleOutputPath">
|
||||||
@ -595,7 +595,7 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="label_18">
|
<widget class="QLabel" name="label_18">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
@ -611,6 +611,16 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QCheckBox" name="simpleNoSpace">
|
||||||
|
<property name="text">
|
||||||
|
<string>Basic.Settings.Output.NoSpaceFileName</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QComboBox" name="simpleOutRecFormat">
|
<widget class="QComboBox" name="simpleOutRecFormat">
|
||||||
<item>
|
<item>
|
||||||
@ -1098,14 +1108,24 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="1">
|
||||||
|
<widget class="QCheckBox" name="advOutNoSpace">
|
||||||
|
<property name="text">
|
||||||
|
<string>Basic.Settings.Output.NoSpaceFileName</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="label_43">
|
<widget class="QLabel" name="label_43">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.Format</string>
|
<string>Basic.Settings.Output.Format</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QComboBox" name="advOutRecFormat">
|
<widget class="QComboBox" name="advOutRecFormat">
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -1139,14 +1159,14 @@
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="label_29">
|
<widget class="QLabel" name="label_29">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.Adv.AudioTrack</string>
|
<string>Basic.Settings.Output.Adv.AudioTrack</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QWidget" name="widget_9" native="true">
|
<widget class="QWidget" name="widget_9" native="true">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||||
@ -1198,17 +1218,17 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="advOutRecEncLabel">
|
<widget class="QLabel" name="advOutRecEncLabel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.Encoder</string>
|
<string>Basic.Settings.Output.Encoder</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QComboBox" name="advOutRecEncoder"/>
|
<widget class="QComboBox" name="advOutRecEncoder"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="5" column="0">
|
||||||
<widget class="QCheckBox" name="advOutRecUseRescale">
|
<widget class="QCheckBox" name="advOutRecUseRescale">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
|
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
|
||||||
@ -1224,7 +1244,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="5" column="1">
|
||||||
<widget class="QWidget" name="advOutRecRescaleContainer" native="true">
|
<widget class="QWidget" name="advOutRecRescaleContainer" native="true">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
@ -1369,38 +1389,38 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="label_16">
|
<widget class="QLabel" name="label_16">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.Adv.FFmpeg.Format</string>
|
<string>Basic.Settings.Output.Adv.FFmpeg.Format</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QComboBox" name="advOutFFFormat"/>
|
<widget class="QComboBox" name="advOutFFFormat"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="label_44">
|
<widget class="QLabel" name="label_44">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.Adv.FFmpeg.FormatDesc</string>
|
<string>Basic.Settings.Output.Adv.FFmpeg.FormatDesc</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QLabel" name="advOutFFFormatDesc">
|
<widget class="QLabel" name="advOutFFFormatDesc">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0">
|
<item row="6" column="0">
|
||||||
<widget class="QLabel" name="label_40">
|
<widget class="QLabel" name="label_40">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.VideoBitrate</string>
|
<string>Basic.Settings.Output.VideoBitrate</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="1">
|
<item row="6" column="1">
|
||||||
<widget class="QSpinBox" name="advOutFFVBitrate">
|
<widget class="QSpinBox" name="advOutFFVBitrate">
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
@ -1413,7 +1433,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0">
|
<item row="7" column="0">
|
||||||
<widget class="QCheckBox" name="advOutFFUseRescale">
|
<widget class="QCheckBox" name="advOutFFUseRescale">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
|
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
|
||||||
@ -1429,7 +1449,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="1">
|
<item row="7" column="1">
|
||||||
<widget class="QComboBox" name="advOutFFRescale">
|
<widget class="QComboBox" name="advOutFFRescale">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
@ -1439,34 +1459,34 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="0">
|
<item row="8" column="0">
|
||||||
<widget class="QLabel" name="label_37">
|
<widget class="QLabel" name="label_37">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.Adv.FFmpeg.VEncoder</string>
|
<string>Basic.Settings.Output.Adv.FFmpeg.VEncoder</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="1">
|
<item row="8" column="1">
|
||||||
<widget class="QComboBox" name="advOutFFVEncoder"/>
|
<widget class="QComboBox" name="advOutFFVEncoder"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="9" column="0">
|
<item row="10" column="0">
|
||||||
<widget class="QLabel" name="label_38">
|
<widget class="QLabel" name="label_38">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.Adv.FFmpeg.VEncoderSettings</string>
|
<string>Basic.Settings.Output.Adv.FFmpeg.VEncoderSettings</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="9" column="1">
|
<item row="10" column="1">
|
||||||
<widget class="QLineEdit" name="advOutFFVCfg"/>
|
<widget class="QLineEdit" name="advOutFFVCfg"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="10" column="0">
|
<item row="11" column="0">
|
||||||
<widget class="QLabel" name="label_41">
|
<widget class="QLabel" name="label_41">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.AudioBitrate</string>
|
<string>Basic.Settings.Output.AudioBitrate</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="10" column="1">
|
<item row="11" column="1">
|
||||||
<widget class="QSpinBox" name="advOutFFABitrate">
|
<widget class="QSpinBox" name="advOutFFABitrate">
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>32</number>
|
<number>32</number>
|
||||||
@ -1482,14 +1502,14 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="11" column="0">
|
<item row="12" column="0">
|
||||||
<widget class="QLabel" name="label_47">
|
<widget class="QLabel" name="label_47">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.Adv.AudioTrack</string>
|
<string>Basic.Settings.Output.Adv.AudioTrack</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="11" column="1">
|
<item row="12" column="1">
|
||||||
<widget class="QWidget" name="widget_10" native="true">
|
<widget class="QWidget" name="widget_10" native="true">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||||
@ -1544,24 +1564,24 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="12" column="0">
|
<item row="13" column="0">
|
||||||
<widget class="QLabel" name="label_39">
|
<widget class="QLabel" name="label_39">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.Adv.FFmpeg.AEncoder</string>
|
<string>Basic.Settings.Output.Adv.FFmpeg.AEncoder</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="12" column="1">
|
<item row="13" column="1">
|
||||||
<widget class="QComboBox" name="advOutFFAEncoder"/>
|
<widget class="QComboBox" name="advOutFFAEncoder"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="13" column="0">
|
<item row="14" column="0">
|
||||||
<widget class="QLabel" name="label_46">
|
<widget class="QLabel" name="label_46">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings</string>
|
<string>Basic.Settings.Output.Adv.FFmpeg.AEncoderSettings</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="13" column="1">
|
<item row="14" column="1">
|
||||||
<widget class="QLineEdit" name="advOutFFACfg"/>
|
<widget class="QLineEdit" name="advOutFFACfg"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
@ -1600,16 +1620,26 @@
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="5" column="0">
|
||||||
<widget class="QLabel" name="label_1337">
|
<widget class="QLabel" name="label_1337">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Basic.Settings.Output.Adv.FFmpeg.MuxerSettings</string>
|
<string>Basic.Settings.Output.Adv.FFmpeg.MuxerSettings</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="5" column="1">
|
||||||
<widget class="QLineEdit" name="advOutFFMCfg"/>
|
<widget class="QLineEdit" name="advOutFFMCfg"/>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QCheckBox" name="advOutFFNoSpace">
|
||||||
|
<property name="text">
|
||||||
|
<string>Basic.Settings.Output.NoSpaceFileName</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -889,17 +889,18 @@ static void get_last_log(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
string GenerateTimeDateFilename(const char *extension)
|
string GenerateTimeDateFilename(const char *extension, bool noSpace)
|
||||||
{
|
{
|
||||||
time_t now = time(0);
|
time_t now = time(0);
|
||||||
char file[256] = {};
|
char file[256] = {};
|
||||||
struct tm *cur_time;
|
struct tm *cur_time;
|
||||||
|
|
||||||
cur_time = localtime(&now);
|
cur_time = localtime(&now);
|
||||||
snprintf(file, sizeof(file), "%d-%02d-%02d %02d-%02d-%02d.%s",
|
snprintf(file, sizeof(file), "%d-%02d-%02d%c%02d-%02d-%02d.%s",
|
||||||
cur_time->tm_year+1900,
|
cur_time->tm_year+1900,
|
||||||
cur_time->tm_mon+1,
|
cur_time->tm_mon+1,
|
||||||
cur_time->tm_mday,
|
cur_time->tm_mday,
|
||||||
|
noSpace ? '_' : ' ',
|
||||||
cur_time->tm_hour,
|
cur_time->tm_hour,
|
||||||
cur_time->tm_min,
|
cur_time->tm_min,
|
||||||
cur_time->tm_sec,
|
cur_time->tm_sec,
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
std::string CurrentTimeString();
|
std::string CurrentTimeString();
|
||||||
std::string CurrentDateTimeString();
|
std::string CurrentDateTimeString();
|
||||||
std::string GenerateTimeDateFilename(const char *extension);
|
std::string GenerateTimeDateFilename(const char *extension, bool noSpace=false);
|
||||||
QObject *CreateShortcutFilter();
|
QObject *CreateShortcutFilter();
|
||||||
|
|
||||||
struct BaseLexer {
|
struct BaseLexer {
|
||||||
|
@ -430,6 +430,8 @@ bool SimpleOutput::StartRecording()
|
|||||||
"SimpleOutput", "RecFormat");
|
"SimpleOutput", "RecFormat");
|
||||||
const char *mux = config_get_string(main->Config(), "SimpleOutput",
|
const char *mux = config_get_string(main->Config(), "SimpleOutput",
|
||||||
"MuxerCustom");
|
"MuxerCustom");
|
||||||
|
bool noSpace = config_get_bool(main->Config(), "SimpleOutput",
|
||||||
|
"FileNameWithoutSpace");
|
||||||
|
|
||||||
os_dir_t *dir = path ? os_opendir(path) : nullptr;
|
os_dir_t *dir = path ? os_opendir(path) : nullptr;
|
||||||
|
|
||||||
@ -449,7 +451,8 @@ bool SimpleOutput::StartRecording()
|
|||||||
if (lastChar != '/' && lastChar != '\\')
|
if (lastChar != '/' && lastChar != '\\')
|
||||||
strPath += "/";
|
strPath += "/";
|
||||||
|
|
||||||
strPath += GenerateTimeDateFilename(ffmpegOutput ? "avi" : format);
|
strPath += GenerateTimeDateFilename(ffmpegOutput ? "avi" : format,
|
||||||
|
noSpace);
|
||||||
|
|
||||||
SetupOutputs();
|
SetupOutputs();
|
||||||
|
|
||||||
@ -931,6 +934,7 @@ bool AdvancedOutput::StartRecording()
|
|||||||
{
|
{
|
||||||
const char *path;
|
const char *path;
|
||||||
const char *format;
|
const char *format;
|
||||||
|
bool noSpace = false;
|
||||||
|
|
||||||
if (!useStreamEncoder) {
|
if (!useStreamEncoder) {
|
||||||
if (!ffmpegOutput) {
|
if (!ffmpegOutput) {
|
||||||
@ -950,6 +954,10 @@ bool AdvancedOutput::StartRecording()
|
|||||||
ffmpegRecording ? "FFFilePath" : "RecFilePath");
|
ffmpegRecording ? "FFFilePath" : "RecFilePath");
|
||||||
format = config_get_string(main->Config(), "AdvOut",
|
format = config_get_string(main->Config(), "AdvOut",
|
||||||
ffmpegRecording ? "FFExtension" : "RecFormat");
|
ffmpegRecording ? "FFExtension" : "RecFormat");
|
||||||
|
noSpace = config_get_bool(main->Config(), "AdvOut",
|
||||||
|
ffmpegRecording ?
|
||||||
|
"FFFileNameWithoutSpace" :
|
||||||
|
"RecFileNameWithoutSpace");
|
||||||
|
|
||||||
os_dir_t *dir = path ? os_opendir(path) : nullptr;
|
os_dir_t *dir = path ? os_opendir(path) : nullptr;
|
||||||
|
|
||||||
@ -969,7 +977,7 @@ bool AdvancedOutput::StartRecording()
|
|||||||
if (lastChar != '/' && lastChar != '\\')
|
if (lastChar != '/' && lastChar != '\\')
|
||||||
strPath += "/";
|
strPath += "/";
|
||||||
|
|
||||||
strPath += GenerateTimeDateFilename(format);
|
strPath += GenerateTimeDateFilename(format, noSpace);
|
||||||
|
|
||||||
obs_data_t *settings = obs_data_create();
|
obs_data_t *settings = obs_data_create();
|
||||||
obs_data_set_string(settings,
|
obs_data_set_string(settings,
|
||||||
|
@ -266,6 +266,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
|||||||
HookWidget(ui->outputMode, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->outputMode, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->streamType, COMBO_CHANGED, STREAM1_CHANGED);
|
HookWidget(ui->streamType, COMBO_CHANGED, STREAM1_CHANGED);
|
||||||
HookWidget(ui->simpleOutputPath, EDIT_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->simpleOutputPath, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
HookWidget(ui->simpleNoSpace, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->simpleOutRecFormat, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->simpleOutRecFormat, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->simpleOutputVBitrate, SCROLL_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->simpleOutputVBitrate, SCROLL_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->simpleOutputABitrate, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->simpleOutputABitrate, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
@ -285,6 +286,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
|||||||
HookWidget(ui->advOutApplyService, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutApplyService, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecType, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecType, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecPath, EDIT_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecPath, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
HookWidget(ui->advOutNoSpace, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecFormat, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecFormat, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutRecUseRescale, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecUseRescale, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
@ -296,6 +298,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
|||||||
HookWidget(ui->advOutRecTrack4, CHECK_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutRecTrack4, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutFFType, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutFFType, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutFFRecPath, EDIT_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutFFRecPath, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||||
|
HookWidget(ui->advOutFFNoSpace, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutFFURL, EDIT_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutFFURL, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutFFFormat, COMBO_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutFFFormat, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||||
HookWidget(ui->advOutFFMCfg, EDIT_CHANGED, OUTPUTS_CHANGED);
|
HookWidget(ui->advOutFFMCfg, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||||
@ -1011,6 +1014,8 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
|
|||||||
{
|
{
|
||||||
const char *path = config_get_string(main->Config(), "SimpleOutput",
|
const char *path = config_get_string(main->Config(), "SimpleOutput",
|
||||||
"FilePath");
|
"FilePath");
|
||||||
|
bool noSpace = config_get_bool(main->Config(), "SimpleOutput",
|
||||||
|
"FileNameWithoutSpace");
|
||||||
const char *format = config_get_string(main->Config(), "SimpleOutput",
|
const char *format = config_get_string(main->Config(), "SimpleOutput",
|
||||||
"RecFormat");
|
"RecFormat");
|
||||||
int videoBitrate = config_get_uint(main->Config(), "SimpleOutput",
|
int videoBitrate = config_get_uint(main->Config(), "SimpleOutput",
|
||||||
@ -1033,6 +1038,7 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
|
|||||||
audioBitrate = FindClosestAvailableAACBitrate(audioBitrate);
|
audioBitrate = FindClosestAvailableAACBitrate(audioBitrate);
|
||||||
|
|
||||||
ui->simpleOutputPath->setText(path);
|
ui->simpleOutputPath->setText(path);
|
||||||
|
ui->simpleNoSpace->setChecked(noSpace);
|
||||||
ui->simpleOutputVBitrate->setValue(videoBitrate);
|
ui->simpleOutputVBitrate->setValue(videoBitrate);
|
||||||
|
|
||||||
int idx = ui->simpleOutRecFormat->findText(format);
|
int idx = ui->simpleOutRecFormat->findText(format);
|
||||||
@ -1133,6 +1139,8 @@ void OBSBasicSettings::LoadAdvOutputRecordingSettings()
|
|||||||
"RecFormat");
|
"RecFormat");
|
||||||
const char *path = config_get_string(main->Config(), "AdvOut",
|
const char *path = config_get_string(main->Config(), "AdvOut",
|
||||||
"RecFilePath");
|
"RecFilePath");
|
||||||
|
bool noSpace = config_get_bool(main->Config(), "AdvOut",
|
||||||
|
"RecFileNameWithoutSpace");
|
||||||
bool rescale = config_get_bool(main->Config(), "AdvOut",
|
bool rescale = config_get_bool(main->Config(), "AdvOut",
|
||||||
"RecRescale");
|
"RecRescale");
|
||||||
const char *rescaleRes = config_get_string(main->Config(), "AdvOut",
|
const char *rescaleRes = config_get_string(main->Config(), "AdvOut",
|
||||||
@ -1144,6 +1152,7 @@ void OBSBasicSettings::LoadAdvOutputRecordingSettings()
|
|||||||
int typeIndex = (astrcmpi(type, "FFmpeg") == 0) ? 1 : 0;
|
int typeIndex = (astrcmpi(type, "FFmpeg") == 0) ? 1 : 0;
|
||||||
ui->advOutRecType->setCurrentIndex(typeIndex);
|
ui->advOutRecType->setCurrentIndex(typeIndex);
|
||||||
ui->advOutRecPath->setText(path);
|
ui->advOutRecPath->setText(path);
|
||||||
|
ui->advOutNoSpace->setChecked(noSpace);
|
||||||
ui->advOutRecUseRescale->setChecked(rescale);
|
ui->advOutRecUseRescale->setChecked(rescale);
|
||||||
ui->advOutRecRescale->setCurrentText(rescaleRes);
|
ui->advOutRecRescale->setCurrentText(rescaleRes);
|
||||||
ui->advOutMuxCustom->setText(muxCustom);
|
ui->advOutMuxCustom->setText(muxCustom);
|
||||||
@ -1205,6 +1214,8 @@ void OBSBasicSettings::LoadAdvOutputFFmpegSettings()
|
|||||||
"FFOutputToFile");
|
"FFOutputToFile");
|
||||||
const char *path = config_get_string(main->Config(), "AdvOut",
|
const char *path = config_get_string(main->Config(), "AdvOut",
|
||||||
"FFFilePath");
|
"FFFilePath");
|
||||||
|
bool noSpace = config_get_bool(main->Config(), "AdvOut",
|
||||||
|
"FFFileNameWithoutSpace");
|
||||||
const char *url = config_get_string(main->Config(), "AdvOut", "FFURL");
|
const char *url = config_get_string(main->Config(), "AdvOut", "FFURL");
|
||||||
const char *format = config_get_string(main->Config(), "AdvOut",
|
const char *format = config_get_string(main->Config(), "AdvOut",
|
||||||
"FFFormat");
|
"FFFormat");
|
||||||
@ -1237,6 +1248,7 @@ void OBSBasicSettings::LoadAdvOutputFFmpegSettings()
|
|||||||
|
|
||||||
ui->advOutFFType->setCurrentIndex(saveFile ? 0 : 1);
|
ui->advOutFFType->setCurrentIndex(saveFile ? 0 : 1);
|
||||||
ui->advOutFFRecPath->setText(QT_UTF8(path));
|
ui->advOutFFRecPath->setText(QT_UTF8(path));
|
||||||
|
ui->advOutFFNoSpace->setChecked(noSpace);
|
||||||
ui->advOutFFURL->setText(QT_UTF8(url));
|
ui->advOutFFURL->setText(QT_UTF8(url));
|
||||||
SelectFormat(ui->advOutFFFormat, format, mimeType);
|
SelectFormat(ui->advOutFFFormat, format, mimeType);
|
||||||
ui->advOutFFMCfg->setText(muxCustom);
|
ui->advOutFFMCfg->setText(muxCustom);
|
||||||
@ -2126,6 +2138,7 @@ void OBSBasicSettings::SaveOutputSettings()
|
|||||||
SaveSpinBox(ui->simpleOutputVBitrate, "SimpleOutput", "VBitrate");
|
SaveSpinBox(ui->simpleOutputVBitrate, "SimpleOutput", "VBitrate");
|
||||||
SaveCombo(ui->simpleOutputABitrate, "SimpleOutput", "ABitrate");
|
SaveCombo(ui->simpleOutputABitrate, "SimpleOutput", "ABitrate");
|
||||||
SaveEdit(ui->simpleOutputPath, "SimpleOutput", "FilePath");
|
SaveEdit(ui->simpleOutputPath, "SimpleOutput", "FilePath");
|
||||||
|
SaveCheckBox(ui->simpleNoSpace, "SimpleOutput", "FileNameWithoutSpace");
|
||||||
SaveCombo(ui->simpleOutRecFormat, "SimpleOutput", "RecFormat");
|
SaveCombo(ui->simpleOutRecFormat, "SimpleOutput", "RecFormat");
|
||||||
SaveCheckBox(ui->simpleOutAdvanced, "SimpleOutput", "UseAdvanced");
|
SaveCheckBox(ui->simpleOutAdvanced, "SimpleOutput", "UseAdvanced");
|
||||||
SaveCombo(ui->simpleOutPreset, "SimpleOutput", "Preset");
|
SaveCombo(ui->simpleOutPreset, "SimpleOutput", "Preset");
|
||||||
@ -2146,6 +2159,7 @@ void OBSBasicSettings::SaveOutputSettings()
|
|||||||
RecTypeFromIdx(ui->advOutRecType->currentIndex()));
|
RecTypeFromIdx(ui->advOutRecType->currentIndex()));
|
||||||
|
|
||||||
SaveEdit(ui->advOutRecPath, "AdvOut", "RecFilePath");
|
SaveEdit(ui->advOutRecPath, "AdvOut", "RecFilePath");
|
||||||
|
SaveCheckBox(ui->advOutNoSpace, "AdvOut", "RecFileNameWithoutSpace");
|
||||||
SaveCombo(ui->advOutRecFormat, "AdvOut", "RecFormat");
|
SaveCombo(ui->advOutRecFormat, "AdvOut", "RecFormat");
|
||||||
SaveComboData(ui->advOutRecEncoder, "AdvOut", "RecEncoder");
|
SaveComboData(ui->advOutRecEncoder, "AdvOut", "RecEncoder");
|
||||||
SaveCheckBox(ui->advOutRecUseRescale, "AdvOut", "RecRescale");
|
SaveCheckBox(ui->advOutRecUseRescale, "AdvOut", "RecRescale");
|
||||||
@ -2161,6 +2175,7 @@ void OBSBasicSettings::SaveOutputSettings()
|
|||||||
config_set_bool(main->Config(), "AdvOut", "FFOutputToFile",
|
config_set_bool(main->Config(), "AdvOut", "FFOutputToFile",
|
||||||
ui->advOutFFType->currentIndex() == 0 ? true : false);
|
ui->advOutFFType->currentIndex() == 0 ? true : false);
|
||||||
SaveEdit(ui->advOutFFRecPath, "AdvOut", "FFFilePath");
|
SaveEdit(ui->advOutFFRecPath, "AdvOut", "FFFilePath");
|
||||||
|
SaveCheckBox(ui->advOutFFNoSpace, "AdvOut", "FFFileNameWithoutSpace");
|
||||||
SaveEdit(ui->advOutFFURL, "AdvOut", "FFURL");
|
SaveEdit(ui->advOutFFURL, "AdvOut", "FFURL");
|
||||||
SaveFormat(ui->advOutFFFormat);
|
SaveFormat(ui->advOutFFFormat);
|
||||||
SaveEdit(ui->advOutFFMCfg, "AdvOut", "FFMCustom");
|
SaveEdit(ui->advOutFFMCfg, "AdvOut", "FFMCustom");
|
||||||
@ -2550,6 +2565,11 @@ void OBSBasicSettings::on_advOutFFVEncoder_currentIndexChanged(int idx)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OBSBasicSettings::on_advOutFFType_currentIndexChanged(int idx)
|
||||||
|
{
|
||||||
|
ui->advOutFFNoSpace->setHidden(idx != 0);
|
||||||
|
}
|
||||||
|
|
||||||
void OBSBasicSettings::on_colorFormat_currentIndexChanged(const QString &text)
|
void OBSBasicSettings::on_colorFormat_currentIndexChanged(const QString &text)
|
||||||
{
|
{
|
||||||
bool usingNV12 = text == "NV12";
|
bool usingNV12 = text == "NV12";
|
||||||
|
@ -245,6 +245,7 @@ private slots:
|
|||||||
void on_advOutFFFormat_currentIndexChanged(int idx);
|
void on_advOutFFFormat_currentIndexChanged(int idx);
|
||||||
void on_advOutFFAEncoder_currentIndexChanged(int idx);
|
void on_advOutFFAEncoder_currentIndexChanged(int idx);
|
||||||
void on_advOutFFVEncoder_currentIndexChanged(int idx);
|
void on_advOutFFVEncoder_currentIndexChanged(int idx);
|
||||||
|
void on_advOutFFType_currentIndexChanged(int idx);
|
||||||
|
|
||||||
void on_colorFormat_currentIndexChanged(const QString &text);
|
void on_colorFormat_currentIndexChanged(const QString &text);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user