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.
Warns users that two separate QSV encoders can't be active at the same
time.
This should be considered a temporary solution to two issues:
1.) Encoders need to be able to report these errors themselves
2.) If the QSV encoder is ever changed to allow more than one encoder at
the same time this should be removed
Fixes a race condition during shutdown where the dialogs aren't deleted
before another render attempt occurs, by which time the sources are
already freed, resulting in a crash.
Bitrate limit warnings wouldn't be correctly shown if service settings
are changed but not yet saved before modifying the bitrates/settings.
It would use the currently active service settings instead of the
changed values.