Commit Graph
12290 Commits
Author SHA1 Message Date
gxalpha b0ebcff4e8 CI: Stop pinning Xcode to 14.1
This was needed to get the macOS 13 SDK when Xcode 14.0 was the default.
It no longer is (at the time of writing the default is 14.2), so we can
(and probably should) stop pinning to the older 14.1
2023-02-26 03:09:25 +01:00
tytan652 6734c9cbc8 UI: Stop virtual camera if active while exiting
Avoid potential memory leaks and crashes.
2023-02-25 16:06:59 -08:00
tytan652 0f560a9136 UI: Fix scene/source in virtual camera config if renamed 2023-02-25 16:06:59 -08:00
tytan652 501a3e926d UI: Refactor Virtual Camera source selector dialog 2023-02-25 16:06:59 -08:00
Ryan Foster dc5813c947 libobs-d3d11: Log D3D11 adapter memory correctly
DXGI_ADAPTER_DESC's DedicatedVideoMemory and SharedSystemMemory are
unsigned long long int, but we were logging them as unsigned int. For
GPUs with memory values higher than 4294967295, the logged value would
roll over. Use %PRIu64 (%llu on VS2022) instead of %u in the log call.
2023-02-25 15:42:01 -08:00
CodeYan01 d2dd917721 docs: Fix layout and typos 2023-02-26 10:31:02 +11:00
derrod e5690a1f65 UI: Use unordered_map for hotkey duplicate detection 2023-02-25 15:28:35 -08:00
derrod af4012e1b1 UI: Set QT_NO_SUBTRACTOPAQUESIBLINGS env var
This speeds up drawing the hotkey list *significantly* and doesn't seem
to break anything else. But it is kind of a hack.
2023-02-25 15:25:31 -08:00
derrod c3543273e4 UI: Defer creation of hotkey dupe icon until needed 2023-02-25 15:21:29 -08:00
Kurt Kartaltepe bc9eee922e libobs: Fix pulseaudio monitoring, once and for all
This makes multiple changes to resolve issues with monitoring. We have
added a number of things over time to resolve various issues due to our
misunderstanding of the pulse api and the explicitly wrong pulse api
documentation.

First is removing the prior stream write tracking. Write tracking
was incorrect as pulse sends you the total number of bytes it wants
written at that time and not a incremental, but also this write tracking
is unhelpful since we can just let begin_write signal when we should
stop writing.

Second removing underflow tracking, this sort of worked to detect high
latency sources like vlc which buffer ~1s of data before writing audio
data. It worked because it would grow the buffer in PA until we could
write enough data into it, but it didn't allow us to leverage that
larger buffer because we never paused the PA stream.

To solve the buffering/high latency issue instead start the PA stream
corked and only uncork it once we have enough data to reach the targeted
latency. We also check how much data we recieve from the source and if
it appears to be high latency providing us with much more data than our
target latency we increase the latency to match the source. Fixing the
VLC source issue and resulting in a smooth start to audio instead of
underruns while we play and increase latency.

Finally add some handling for pulses incorrectly documented API. Notably
that begin_write may request more or less data from you so handle both
cases. And stop attempting to use attr.maxlength which is not updated
after set_buffer_attr calls and was always -1, and tlength is just more
appropriate.

old mantis resulting in some changes, still fixed. https://obsproject.com/mantis/view.php?id=1076
fixes #7574
2023-02-25 15:13:08 -08:00
derrod 11e5afa2b2 UI: Support platform-specific WhatsNew entries 2023-02-25 15:08:27 -08:00
columbarius 8abc3528cf linux-pipewire: Read buffer transformation from PipeWire
PipeWire allows since 0.3.62 [1] to attach metadata to a buffer
describing a transformation of the buffercontent. Clients should then
undo that transformation to import it correctly.

We can enable this feature using macro guards and runtime server version
checks on supported systems.

[1] https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1423
2023-02-25 11:49:51 -03:00
tytan652 2a2d8fc1bb UI: Remove mf_aac references 2023-02-24 14:34:34 +01:00
gxalpha 5d0a1c0010 UI: Don't load global plugins in portable mode
Portable mode is meant to be separated from the rest of the system, and
as such it doesn't make sense to load globally installed plugins there.

On Windows, there currently are only two major plugins that install
themselves there. Plugins installing themselves there is good, but it
currently also means that even portable instances load them which can
make testing and debugging in a clean environment annoying.
2023-02-24 14:11:21 +01:00
gxalpha d405193aeb UI: Only set portable mode variable if supported
Previously, all the functions of portable mode wouldn't work if compiled
without it, but the log still show it as enabled if the argument was
set. This could lead to confusion.
Additionally, we don't even show the option in the help string (--help),
so it should just be a no-op.
2023-02-24 14:11:21 +01:00
Georges Basile Stavracas Neto a1a98f9cfd plugins: Drop win-ivcam
Apparently this was a prototype from Intel that never really
properly launched. Remove the plugin.
2023-02-24 14:04:29 +01:00
Georges Basile Stavracas Neto 4ab9cd1005 plugins: Drop win-mf
The win-mf plugin is deprecated, and disabled by default. Let's drop
it entirely.
2023-02-24 13:22:52 +01:00
PatTheMav 76732846d7 libobs: Fix non-exhaustive switch statements
New video formats introduced for ProRes 4444 encoding have not been
implemented in function calls used for video decoding, which makes the
switch statements non-exhaustive.

This does not functionally change the status quo (decoding ProRes 4444
files could still be broken because libobs does not explicitly handle
the colour format).
2023-02-23 20:32:52 +01:00
PatTheMav 112ca44158 CI: Remove deprecated dependency installations via Homebrew
Swig and Freetype are provided via obs-deps instead.
2023-02-22 23:06:52 +01:00
PatTheMav 63e0e49798 CI: Remove unit tests from macOS build scripts 2023-02-22 23:06:52 +01:00
PatTheMav 8061652051 mac-videotoolbox: Refactor implementation
Existing code made use of macros which broke parsing in Xcode and
complicated debugging as crucial code was executed within macros and
not actual source code.

Use of mutable CoreFramework data structures (which were never mutated)
is replaced by use of faster non-mutable variants.

When an allocator needs to be used, `kCFAllocatorDefault` is specified
explicitly.

VideoToolbox session properties are also set in bulk instead of
multiple consecutive calls.

Also simplifies detection of Apple Silicon hosts to make code more
readable.
2023-02-21 21:29:12 +01:00
jpark37 09c2a321ce mac-videotoolbox: Add ProRes 4444 (XQ) support
Also leverage P216/P416 pixel formats to retain precision.
2023-02-21 18:48:44 +01:00
jpark37 463bf0dff5 libobs,UI: Add P216/P416 pixel formats
Will be useful for ProRes.
2023-02-21 18:48:44 +01:00
jpark37 0efaf88caf libobs: Add PQ/HLG support for I210/I412 formats
Seen when playing back ProRes files.
2023-02-21 18:48:44 +01:00
gxalpha 433c85bcd7 mac-capture: Fix various SCK memory leaks
Detected by clang analyzer.
2023-02-21 17:40:56 +01:00
derrod e2b80c04e8 CONTRIBUTING: Add language and PR/Issue template notes 2023-02-21 00:44:36 +01:00
derrod 7a02fa8cc8 CONTRIBUTING: Add AI/Machine Learning policy 2023-02-21 00:44:36 +01:00
gxalpha 4bcd86b395 UI: Disable replay buffer checkbox when using custom FFmpeg 2023-02-20 23:46:59 +01:00
derrod 644b73eb46 UI: Add confirmation dialog for resetting properties 2023-02-20 23:46:01 +01:00
gxalpha 8d4a0b3645 UI: Use valueChanged() signal for T-Bar everywhere
The sliderMoved signal doesn't trigger when clicking on the slider, only
the valueChanged signal. According to QTBUG-72995 this is intentional,
since the documentation states that sliderDown also needs to be true for
the sliderMoved signal to be triggered. As for why sliderDown isn't true
when clicking, or why that would even be necessary for a signal that
should trigger when the slider is moved (and it very clearly moves)
remains a mystery.

Also gets rid of the wrong usage of the on_foo_bar slot declaration,
which should only be used for signals where the sender is part of a UI
file and it gets connected automatically. While it of course is possible
to connect it manually, this is against convention and can cause
confusion. In this case it was particularly wrong since even if tBar was
part of a UI file (which it isn't), the method should have been called
on_tBar_valueChanged instead of on_tbar_position_valueChanged.
2023-02-20 19:10:32 +01:00
shiina424 a44700871b UI: Fix window text when disabled in dark theme 2023-02-20 12:15:04 -05:00
derrod 2b33fb3ad2 UI: Massive improve hotkey search performance 2023-02-19 15:41:54 -08:00
gxalpha 19a0afe526 UI: Don't double-delete children of deleted widgets
These widgets are all children of updateSettingsGroupBox, meaning they
get deleted when updateSettingsGroupBox gets deleted. This means that
the first two calls are unnecessary and the third one segfaults as
updateChannelLabel is gone already.
Just delete the parent widget instead.
2023-02-19 20:39:47 +01:00
bin 27981b15e9 UI: Fix compile error when obs-browser disabled 2023-02-19 20:39:23 +01:00
gxalpha e438037960 UI: Use native color dialog on macOS 2023-02-19 04:10:51 +01:00
tytan652 9e6a482c66 UI: Fix button callback in OBSPropertiesView created with an id
Before calling the button callback, two values are null-checked but when
the property is created with an id (const char*). Those values are null
which prevent the callback from being called.
2023-02-18 17:47:19 -08:00
derrod 9d71d2f7fd cmake: Remove ENABLE_SPARKLE_UPDATER option
Since public key and appcast are now options we simply rely on those to
decide whether or not to enable Sparkle.
2023-02-19 01:35:56 +01:00
derrod 12a27d8b99 UI: Add update channels (macOS) 2023-02-19 01:35:56 +01:00
derrod 634fd3231c CI/cmake: Update Sparkle to 2.3.2 2023-02-19 01:35:56 +01:00
derrod 0972da9e1a UI: Merge win-update and nix-update 2023-02-19 01:35:56 +01:00
tytan652 64176daaf4 UI: Force Wayland usage on Ubuntu GNOME
XDG_CURRENT_DESKTOP is set to "ubuntu:GNOME" on Ubuntu custom version of
GNOME.
2023-02-18 16:20:39 -08:00
PatTheMav 8c8a44b26a mac-virtualcam: Fix compiler warnings
CMake build framework 3.0 introduces more strict typing checks, which
require additional code fixes to silence.

* Fixes warnings about implicit casts
* Fixes warnings about weak references used multiple times inside
  blocks
2023-02-18 15:22:33 -08:00
PatTheMav f98c2d2514 mac-capture: Fix compiler warnings
CMake build framework 3.0 introduces more strict typing checks, which
require additional code fixes to silence.

* Fixes warnings about multi-character assignments
* Fixes warnings about implicit casts
* Fixes warnings about shadowing variables
2023-02-18 15:22:33 -08:00
PatTheMav c5bb6218b6 mac-avcapture: Fix compiler warnings
CMake build framework 3.0 introduces more strict typing checks, which
require additional code fixes to silence.

* Fixes warnings about multi-character assignments
* Fixes warnings about implicit casts
2023-02-18 15:22:33 -08:00
PatTheMav 8b0843803e UI: Remove unused variables 2023-02-18 15:22:33 -08:00
PatTheMav 1bb06a8bdc rtmp-services: Fix missing newline at the end of files 2023-02-18 15:22:33 -08:00
PatTheMav f67c1bcceb obs-x264: Fix non-exhaustive switch statements 2023-02-18 15:22:33 -08:00
PatTheMav f4bbe080bf obs-vst: Fix missing newlines at the end of files 2023-02-18 15:22:33 -08:00
PatTheMav bb2a99cec8 obs-transitions: Fix non-exhaustive switch statements 2023-02-18 15:22:33 -08:00
PatTheMav 3175e699ea obs-filters: Fix non-exhaustive switch statements 2023-02-18 15:22:33 -08:00