This converts the advanced audio window to use
a ui form, so it is easier to modify in the future.
This also fixes sizing issues with the control widgets,
as before the audio tracks would be clipped, because the
widgets in the window were too wide.
This option regularly confuses users, who accidentally select it and
then ask why they have hundreds of 2-4 second video clips in their
output folder. HLS output format to file is a pretty niche use case,
so let's keep it in advanced mode only.
For Keyboard shortcuts with Ctrl as the primary modifier, the secondary
modifier should be Shift, not Alt. Alt could be used as a tertiary in
the future if really necessary, but generally it should be avoided.
This removes the min and max size properties from the YouTube "Manage
Broadcast" dialog. Such values depend on the actual content or very
precise layout management, making hardcoded values prone to being
incorrect. To avoid incorrect values we should avoid these settings on
top level widgets/windows.
This pattern can lead to crashes on Wayland compositors like
GNOME which are strict about these values being correct.
HLG output uses MovieLabs-recommended procedure.
- If peak luminance is greater than 1000, use maxRGB EETF to 1000.
- Otherwise, don't tonemap.
- Then use normal HLG conversion procedure with gamma 1.2 (1000 nits).
The original PR was made with time specified in seconds because it was
useful to debug the behavior. For production, assuming most users want
to specify 10 minutes or more, the time should be specified in minutes.
window-basic-properties was written in the earliest days of OBS. To
make it easier to navigate & adjust, this moves all the structural
code into a new .ui file and out of the C++ code.
This also modifies the ButtonBox in Filters to use matching buttons.
While Qt Designer doesn't care about casing, the XML schema spec does.
Due to Qt Creator automatically changing case on save, require the
uppercase variant in all situations, so that other devs don't have to
manually change the case after Qt Creator changes it.
NOTE: This introduces an adjustment to the spec, different from what
Qt provide from Qt Designer. If this file is changed in future, this
diff may need to be manually re-applied.
https://doc.qt.io/qt-5/designer-ui-file-format.html
Qt Creator automatically adjusts these files when opened. Rather than
contributors having to manually undo these changes, just apply them
directly into the repository.
This uses the SetWindowDisplayAffinity API to hide windows from capture
applications (including OBS). This is not perfect - internal windows
such as context menus, combo box dropdowns, etc will still be displayed.
Even with these limitations, it should help people with single monitors
capture content with less interference from the OBS window.
This implementation is for Windows only but the code is generic enough
that adding other platforms should be straightforward.
When running Windows 10 or 11 in light mode, the pause icon especially
was hard to see. This adds a border to both icons to improve visiblity.
Additionally, the active icon was a little too large.
This commit adds a setting to reset timestamps when splitting files.
Some NLEs cannot handle video files whose starting timestamp is not
zero. Default is enabed.
This commit implements a new feature to split recordings in split files
in Advanced output mode.
These basic settings are implemented.
- Enable/disable the feature. Default is disabled.
- Select a type of the limit, time or size.
- Specifies the limit in seconds or MiB.
Updates the filters window to use a QSplitter layout for the properties area.
The handle is disabled for audio filter windows. The handle and property area are hidden when there are no filters.
This change removes the minimum total size from the context bar, instead
removing certain elements when the size is too small. This means that
users will still be able to make OBS smaller in width while keeping the
context bar enabled.
First, the properties, filter and interact buttons will get reduced to
just the symbols, if it gets even smaller the source specific menus are
hidden.
As all the .ui files follow a set schema, providing a way to validate
that schema is useful for manual XML modifications.
XML-Schema-Qt5.15.xsd source: https://doc.qt.io/qt-5/designer-ui-file-format.html
Note: some lines had to be commented out as they are not valid in XSD.
When a new version of Qt is used, compare the diff and update as necessary.
This file doesn't do anything on its own, but can be paired with an IDE
or a standalone linter to perform validation.
Adds a new setting to the general OBS settings, which can be checked
in order to no longer show the "confirm close" dialog when there are
still streams/recordings running.
#5187 added a minimum size enforcement on the source toolbar to ensure
it remains functional at lower window sizes.
That minimum size was set to 800 pixels, which causes issues for
users on 1366x768 monitors in a vertical orientation.
This is still a rather common resolution, so this reduces the minimum
size below 768