Adds the ability to lock the preview so sources can't be edited. This
feature is typically used in the case where the user wants to prevent
accidentally clicking and dragging on sources.
The scene check prevents the ability to remove scene items that have
been detached from their scene, which can happen when scenes are used as
scene items and the scene is deleted elsewhere.
Makes it so third-party plugins are stored in system-local specific data
directories (except on linux, which will still use user-local data
directories for the time being)
When configuring file formatting settings in advanced, allow the ability
to specify formatted directories.
For example, "%CCYY-%MM/%DD %hh-%mm-%ss"
would make the year and month a subdirectory, then the
day/hour/minute/seconds as the file name. January 21st 2121 at 4pm
would end up being:
"21 04-00-00.mp4" in the subdirectory "2121-01".
Commit 8932bd39 attempted to fix the starting position when the program
started up inside of a monitor that no longer exists, but it was
incorrectly assumed that it would cause the program to automatically
center its position. Instead it set its position to {0,0}, which is a
really awkward position.
This fixes that commit and ensures the window starts up centered to the
primary display when its saved starting position is invalid.
Allows adding scenes as scene items. Note that you will not be able to
add scenes if it detects infinite recursion (i.e. adding scene A to
scene B, then adding scene B to scene A), in that case it will just fail
to create the scene item.
Adds a little improvement to quality-of-life, a typical "View" menu with
the ability to show/hide the following (for now):
- Listbox toolbars
- Status bar
- Transitions pane (some people don't really need/use/care about it)
This allows installing the architecture independent data outside the
prefix, for example on a multiarch layout where the prefix is
/usr/{host-triplet}.
Closesjp9000/obs-studio#552
Allows the ability for users to make it so recording automatically
starts when they start streaming. Also adds the option to allow the
recording to continue when stream is stopped.
Closesjp9000/obs-studio#554
The new cutoff timing fix means that streaming/recording has to remain
active for bit until the stream/recording has reached the expecting stop
timestamp. This means that the buttons would continue to say "Stop
streaming/recording" while waiting for the output to stop itself at the
appropriate timing.
So instead of letting it do that and confusing the user, the buttons
will now say "stopping" when the button is pressed to indicate to the
user that the stream/recording is in the process of stopping.
It wouldn't properly clear the reconnect information when the user
forcibly stops the stream while reconnecting, so when the user starts a
new stream after that it would erroneously display a lingering reconnect
message on the status bar.
The internal data of a property value would be converted to QString and
Qt would inevitably try to convert the characters to another encoding,
causing the internal data to possibly become invalid. Instead, use
QByteArray to treat it as nothing more than a byte array.
(Note: This commit also modifies the UI)
The editable list only had two types: A type that allows both files and
URLS, and a type that only allows strings.
This changes it so the editable list can have a "files only" type, a
"files and URLs" type, and a "strings only" type.
After testing, LA_ICQ may not always be supported, so use regular ICQ
for recordings instead. Also fixes a bug where simple output mode
wouldn't even use LA_ICQ.
In the advanced output section of settings, when a different encoder is
set, it would try to pass over settings from the other encoder, which
may or may not be fully compatible with different encoders. Instead,
just set it to defaults if it's on an encoder that's different from the
currently loaded encoder.
The "cbr" setting has been deprecated, so if the user is using that
setting for any of the encoders, convert it to set "rate_control" to
"CBR".
Additionally, if an encoder is using x264 with VBR and the buffer size
is set to 0, change the rate control mode to CRF.
When using simple output mode, previously NVENC did not support a
constant quality rate control method, and you'd have to use VBR with
bitrate. However CQP has since been added to NVENC, and it's preferable
to use for recording when available instead of using VBR.
This reverts commit cb24080d76.
This commit is being reverted due to the fact that it breaks common
dialogs such as the open/save file dialogs, the dialogs would cause the
UI thread to lock up.
The plugin that required this will have to be modified to accommodate
this situation.
When clicking the transition properties button and creating the
context menu with properties/rename, it would create actions that also
included a source reference, but the parent of those actions was the
main window instead of the menu, so those actions would stay created
until the main window was destroyed.
This would cause bugs with saving/loading scenes where children of that
transition would also be perpetually referenced.
So instead of using the main window, just use a pointer to the menu
itself as the parent so that when the menu is destroyed, the actions are
also destroyed, and the source refs released.
The signal name is "remove" for when a source is removed, not "removed".
This is proof that I should never have relied on strings for signals.
The original intention for string-based signals was to make them
programmable and scriptable, but honestly that use-case (that never
happened and will likely never happen) was foolish to program around.
These should have been fixed macros from the beginning.
Sometimes encoders might have a tiny insignificant amount of lag
unintentionally for whatever reason (for example VP9 sometimes lags on
startup by a frame or two), so don't warn the user if the skip count is
below 10.