Some Twitch dashboard panels now require a UUID, it is not used for
anything but local storage right now, and according to Twitch we can
generate it ourselves (or even use a static string). To be safe we can
just use QUuid to generate a "real" UUID and then store it locally until
the user disconnects the account.
These are more fields that app stores such as GNOME Software
and Discover show. Nothing fancy, but the more information we
provide, the better it looks!
Kudos are read by app centers such as GNOME Software and Discover
to calculate the "awesomeness" level of the application. OBS Studio
qualifies for two of these kudos: the "hi-dpi icon" kudo, since we
have 128x128 and bigger icons; and the "modern toolkit" icon, since
we use Qt5.
Add these kudos to the AppData file, and let app centers tell the
world how awesome OBS Studio is :)
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.
Until now, we've been installing the UI/forms/images/obs.png asset
as the logo. However, that's not officially the logo we should
be using.
Install the correct logo assets. Add 128x128, 256x256, 512x512,
and scalable variants.
* aja: Initial commit of AJA capture/output plugin
* aja: Fix clang-format on aja-output-ui code
* aja: Remove script used during dev/testing
* aja: Address pull request feedback from @RytoEX
* aja: Remove the SDK sources and update CMakeLists to point to new headers-only/static libs dependency distribution.
* aja: Only build AJA plugin on x64 on macOS for now
* aja: Remove the non-English placeholder locale files. The english strings/files will be produced via crowdin, according to @ddrboxman.
* aja: Add FindLibAJANTV2.cmake script to locate the ajantv2 headers and static libs in the OBS external deps package(s). Tested on Windows x64. macOS and Linux x64 TBD.
* aja: Add ajantv2/includes to FindLibAJANTV2 include search paths
* aja: Remove commented code from aja CMakeLists
* aja: Remove debug code and comments that are no longer needed.
* aja: Fix indentation
* aja: Remove disablement of clang-format in routing table and SDIWireFormat map
* aja: Use spaces for all indentation in widget crosspoint arrays where we disable clang-format
* aja: Address code style comments made by @RytoEX
* aja: Fix uneven indentation
* aja: More fixes to if/else placement and remove superfluous comments.
* aja: Rename 'dwns' to 'deactivateWhileNotShowing' for clarity. The DeckLink plugin still uses the variable name 'dwns' and should be changed, if desired, in a separate PR.
* aja: Remove X11Extras dependency from AJA Output frontend plugin
* aja: Add patch from Jim to find AJA release/debug libs
* aja: Improve AV sync of queued video/audio sent to the AJA card in the AJA Output plugin.
When a window with an OBSQTDisplay is closed, the surface can be
destroyed before the display is, opening a gap for OBS to attempt to
draw to the invalid surface.
This deletes the underlying OBSDisplay object when the actual surface
is destroyed, closing that gap.
Note: This appears to have been an issue previously with Wayland, as
hinted by the existing ifdefs.
Previously, calling `obs_source_remove()` on an input would not fully
remove it if there was a scene item of the input on the current scene.
Now, when calling `obs_source_remove()` and there is a scene item of
the removed input on the current scene, the UI refreshes the scene
items, allowing the scene item to be released completely and the
input destroyed.
Add support for importing the Screen Capture source type from Streamlabs
scene collections. Since the Screen Capture source type is essentially
an abstraction layer for Display Capture, Game Capture, and Window
Capture, this adds some translation logic to translate Screen Capture
sources into one of those source types.
Move the python linkage after the obs target is defined so that we can
also add linker flags to preserve the unused python linkage. This is
required before GCC 11.
This fixes#2222 by ensuring python symbols are in the global symbol
table through a direct linkage to the executable. When python is
normally linked via frontend-tools.so its symbols are not global since
we dlopen frontend-tools.so. This causes issues for native python
modules which stopped directly linking python around 3.8 as the symbols
will not resolve.
This is pretty much a hack, but it minimizes the number of extra symbols
we add and hopefully isnt too terrible to maintain.
Applies transformations correctly to copy/pasted sources when copy and
pasting multiple. Previously the transformation/crop state was stored in
a single variable on copy so it would only apply the transformations to
one of the selected sources on paste instead of what the state was when
copied.
Adds the following events:
- `OBS_FRONTEND_EVENT_SCENE_COLLECTION_CHANGING`
- `OBS_FRONTEND_EVENT_PROFILE_CHANGING`
Both emitted right before the change occurs. Can provide plugins with
better awareness of these critical operations happening, so that they
can react accordingly.
The system tray assumed all outputs are inactive when it's initiated,
however outputs can be active if started via command line options. This
caused the wrong (only) text to be set if the output was in fact active.
When the filter view is created, the first item of the asyncFilters list
would be selected (if the source supports asyncFilters) and have its
properties shown.
This means that when no items were in the asyncFilters list, no
properties would be shown, even if an effect filter was present.
Adds a check to focus the effectFilters list in case there are only
effect filters, which makes the correct properties appear.