Commit graph

14085 commits

Author SHA1 Message Date
Diogo Guerreiro f346ff0c37 fixup! UI: reorder includes correctly 2024-05-27 12:40:39 +01:00
Diogo Guerreiro 1bb8c25710 UI:Implement drag-and-drop from sources to scenes
Description: The Drag-and-Drop feature allows users to effortlessly
move sources or groups of sources into scenes within the user
interface. This intuitive functionality enhances user interaction
by providing a visual and interactive way to organize and customize
content.

The feature mimics the behaviour of a copy and paste. For example
if we drag a "Input Audio Device" from Scene 1 to Scene 2, after
the event, both Scene 1 and Scene 2 will have the "Input Audio
Device" source.

Co-authored-by: André Bento <andre.veloso.bento@tecnico.ulisboa.pt>
2024-05-22 19:49:03 +01:00
Jeremy Woertink e79fea301d rtmp-services: Update Joystick.TV servers and recommended settings 2024-05-22 12:27:07 -04:00
Warchamp7 132f3f3d69 UI: Adjust Classic theme mixer button styling 2024-05-22 12:15:17 -04:00
Ruwen Hahn 27fa9b1eed UI: Give unnamed settings labels relevant names 2024-05-20 16:11:08 -04:00
derrod 72924ac1f3 libobs: Deduplicate audio for nested scenes/groups if not transitioning 2024-05-18 16:44:45 -07:00
derrod 8a38e3375b libobs: Mix audio of each source in a scene only once 2024-05-18 16:44:45 -07:00
derrod c815d6ad61 coreaudio-encoder: Fix pts/dts not including encoder delay 2024-05-18 16:32:38 -07:00
derrod adf744e6f0 libobs: Ensure audio offsets are positive 2024-05-18 16:29:01 -07:00
derrod 7cd72781c8 obs-outputs: Adjust HEVCDecoderConfigurationRecord for hvc1 tag
We mux HEVC with the hvc1 tag, which requires the parameter sets'
array_completeness to be set to 1.
2024-05-18 16:17:37 -07:00
derrod 89c7a9608b libobs/util: Add buffered file serializer
Adapted from 898256d416

Co-authored-by: Richard Stanway <r1ch@r1ch.net>
2024-05-18 16:15:41 -07:00
derrod dc4cba7427 libobs/util: Add seeking support to array serializer 2024-05-18 16:10:42 -07:00
Ryan Foster 842d249cb9 rtmp-services: Bump package version
e92accf136 updated services.json, but
didn't bump the package version.
2024-05-17 15:16:38 -04:00
Ruwen Hahn a18305dd3f UI: Keep weak stream output ref in status bar
The status bar doesn't currently own its references to outputs, which
can be a problem if streaming outputs are released soon after stream
stop. The Multitrack Video output does exactly that, so the status bar
will sometimes try to access an invalid pointer for updating its stats.
Keeping a weak reference around and upgrading it to collect stats,
similar to how the stats window behaves.
2024-05-17 13:48:32 -04:00
cg2121 f60d6bcfe2 rnnoise: Fix compilation not working on latest gcc
The latest gcc spits out an error about calloc parameters that are
in the wrong order.
2024-05-16 18:29:06 -04:00
tytan652 7824e164b1 mac-capture: Replace pragmas with availability markers
Also changes clang-format SeparateDefinitionBlocks to Leave on ObjC
files, which avoid having an empty new line after API_AVAIABLE and the
declaration.
2024-05-16 15:25:53 -04:00
Ryan Foster c3c6c6c934 CI: Add additional log group to setup_ubuntu script
Add clear separation between the CEF setup and the apt/apt-get calls.
This makes it easier to see how much time is being spent on each task.
2024-05-16 14:58:46 -04:00
Ryan Foster b3ee2f89b9 CI: Add Ubuntu 24.04
Add a job matrix for the Ubuntu Build so that we can test builds on both
Ubuntu 22.04 and 24.04.
2024-05-16 14:34:08 -04:00
Warchamp7 7843a822e0 UI: Adjust font size on macOS 2024-05-14 17:40:01 -04:00
moocowsheep ce4c99be4e plugins/win-dshow: Add CUDA decoder 2024-05-11 20:29:43 -07:00
moocowsheep c9f7a3c325 deps/media-playback: Prioritize CUDA decoder 2024-05-11 20:29:43 -07:00
gxalpha 41650479fe UI: Center preview spacing lines
Currently, the spacing lines begin in the middle of the box and then are
their width wide towards one direction. This means that the larger they
are, the more off-center their middle is.
This commit changes them to start at half their width left/top of the
center and end half the width to the right/bottom of the center, putting
the middle in the center.
2024-05-11 23:12:36 -04:00
gxalpha 67e4853b7d UI: Give private spacing helper sources names 2024-05-11 22:13:42 -04:00
gxalpha 03313a6af4 UI: Fix visibility and lock checkbox styling on system theme
In 7931f2acb8 the classes have been
removed in favor of properties, but this styling change appears to have
been reverted by accident, likely by the theming overhaul.
2024-05-11 21:52:42 -04:00
cg2121 b82a49e881 UI: Use OBSSourceLabel for VolControl
The OBSSourceLabel handles renaming of a source, so we don't have
to use the rename signals for volume controls.
2024-05-11 18:18:13 -07:00
cg2121 272a5edbaa UI: Use vector for volume control signals
This cleans up the volume control code by using a vector for
signals.
2024-05-11 18:18:13 -07:00
cg2121 cd918a7f4c UI: Move projector rename signal
This moves the renaming of projectors from OBSBasic to OBSProjector.
2024-05-11 17:51:47 -07:00
cg2121 023d9bd851 UI: Use OBSSourceLabel for item widget labels
This changes the labels for the source tree/visibility item widgets
to use OBSSourceLabel, as it handles the renaming of sources.
2024-05-11 17:35:04 -07:00
tt2468 09be4f9aed obs-webrtc: Only advertise relevant codecs for a or v-only outputs
A video-only output should not advertise any audio codecs.
2024-05-11 20:09:00 -04:00
tt2468 5802077f78 obs-webrtc: Correctly guard HEVC in output using ifdefs
If an output does not support HEVC, it should not advertise it. For
services, however, a service primarily defines the codecs which are
supported for the protocol spec itself/destination platform, so HEVC
can be advertised still.
2024-05-11 20:09:00 -04:00
tt2468 dff302364c obs-webrtc: Fix comment capitalization 2024-05-11 20:09:00 -04:00
Warchamp7 af685be40d UI: Add OS specific theme variables via prefix 2024-05-10 18:39:18 -04:00
derrod 279e9424c0 libobs: Fix obs_parse_avc_header missing high profile parameters 2024-05-10 18:14:27 -04:00
gxalpha 79f680cab6 UI: Use weak_source_expired instead of getting the source 2024-05-10 17:42:28 -04:00
tytan652 c974a40b51 build-aux: Update Flatpak ntv2 module to libajantv2 2024-05-10 16:51:56 -04:00
tytan652 aa3f980603 build-aux: Update Flatpak VPL modules
* Update libvpl to 2.11.0
  * Adds a build option to no longer require ONEVPL_SEARCH_PATH to be set
* Update onevpl-intel-gpu to vpl-gpu-rt 24.2.2
2024-05-10 16:51:56 -04:00
tytan652 03ab26ecac build-aux: Update Flatpak modules
* Update SVT-AV1 to 2.0.0
* Update aom to 3.9.0
  * Freedesktop SDK already provides it, so the module is disabled
* Update FFmpeg 7.0
* Update LuaJIT 5790d25397
* Update libdatachannel to 0.21.0
* Update Asio to 1.30.2
2024-05-10 16:51:56 -04:00
tytan652 92822311a8 UI: Improve and update app CMake 3 metainfo file
CMake 2 path have a newer version of this file.

See the following commits for metainfo change details:
- 853ae5ea6e
- 904fe87f83
- 0cc6068ed4
2024-05-10 16:21:36 -04:00
Ryan Foster 2ea39b11e7 CI: Update deps to 2024-05-08 release
Notable changes:
 * deps.ffmpeg: Update libpng to 1.6.43
 * deps.ffmpeg: Update opus to 1.5.2
 * deps.ffmpeg: Update libvpx to v1.14.0
 * deps.ffmpeg: Update SVT-AV1 to 2.0.0
 * deps.ffmpeg: Update aom to 3.9.0
 * deps.ffmpeg: Update libdatachannel to v0.21.0
 * deps.ffmpeg: Update AMF to 1.4.33
 * deps.ffmpeg: Update FFmpeg to 7.0
 * deps.macos: Update LuaJIT to 2.1 5790d25397
 * deps.macos: Update libpng to 1.6.43
 * deps.macos: Update Asio to 1.30.2
 * deps.macos: Replace ntv2 with libajantv2
 * deps.macos: Update Sparkle to 2.6.2
 * deps.windows: Update curl to 8.7.1
 * deps.windows: Update LuaJIT to 2.1 5790d25397
 * deps.windows: Update Asio to 1.30.2
 * deps.windows: Update Zstandard to 1.5.6
 * deps.windows: Update VPL to v2.10.2
 * deps.windows: Replace ntv2 with libajantv2
 * deps.windows: Add WIL headers
 * deps.qt: Update Qt6 to 6.6.3 for Windows
 * deps.qt: Update Qt6 to 6.6.3 for macOS
2024-05-10 16:07:36 -04:00
tytan652 dfef65c30f linux-pipewire: Unify ScreenCast sources as Screen Capture
Allow to select both main type of ScreenCast (monitor, window)
with only one source type rather than adding a source type per
ScreenCast type.

This change is made as a new Screen Capture source type which
obsoletes the use of the previous Screen Capture (monitor-only)
and Window Capture.
2024-05-09 14:55:18 -03:00
pkv 5b2e2a9c68 libobs/media-io: Fix media-remux channel layout for 5 channels
FFmpeg has 5.0 as default layout for 5 channels.
But obs-studio uses 4.1. This is a fix when remuxing.

Signed-off-by: pkv <pkv@obsproject.com>
2024-05-09 10:27:20 -04:00
pkv 06e2b31001 obs-ffmpeg: Fix 7.1 ALAC encoding
Commit [1] added ALAC & PCM support.
But 7.1 ALAC encoding fails.
This fixes the issue by assigning the correct 7.1 layout supported by
FFmpeg ALAC encoder (7.1(wide)).

[1] 3ae98511d0

Signed-off-by: pkv <pkv@obsproject.com>
2024-05-09 10:27:20 -04:00
MrMahgu 130be55973 libobs-winrt: Remove interop code now provided by Windows SDK
Remove the custom declarations of the external functions
CreateDirect3D11DeviceFromDXGIDevice and
CreateDirect3D11SurfaceFromDXGISurface, as well as the
IDirect3DDxgiInterfaceAccess interface.
2024-05-09 10:01:36 -04:00
tytan652 5f1d60b1a0 build-aux: Disable DeckLink in the Flatpak
Since the Flatpak became part of the repo, nothing has changed on
BlackMagic side.

DeckLink libraries are still not redistributable and without stable
download link so even extra-data is not usable.

This makes enabling DeckLink feature in the Flatpak impossible without
involving customization on the end-user side which is not how Flatpak is
designed for.
2024-05-08 18:04:14 -04:00
tt2468 5b51d202b5 obs-webrtc: Remove duplicate initialize calls
`obs_output_initialize_encoders()` and can_begin_data_capture are
already being called in the `Start()` function, so these duplicate
calls serve no function.

I'm assuming they were introduced accidentally during a previous
refactor.
2024-05-07 22:40:16 -07:00
Ruwen Hahn e92accf136 rtmp-services: Populate Twitch specific multitrack video settings 2024-05-07 21:56:53 -04:00
Ruwen Hahn d0b35261af rtmp-services: Add Multitrack Video disclaimer 2024-05-07 21:56:53 -04:00
Ruwen Hahn 103ef76e5e rtmp-services: Allow loading Multitrack Video config from JSON
Add support for loading Multitrack Video configuration data from
services.json.
2024-05-07 21:56:53 -04:00
Ruwen Hahn 1959f6852e rtmp-services: Always copy service info to settings 2024-05-07 21:56:53 -04:00
Ruwen Hahn 4029ff2ac1 rtmp-services: Extract common json->settings logic 2024-05-07 21:56:53 -04:00