Commit graph

13,498 commits

Author SHA1 Message Date
gxalpha
52b9552dfd cmake: Explicitly fail if macOS SDK is too old
Adds a check to explicitly make sure that the macOS SDK being used is
recent enough to build OBS. OBS code currently has ifdefs for older SDKs
in some but not all places and relies on some frameworks existing that
do not exist on older versions, this should clarify what we require.
This commit sets the minimum SDK to 13.1 as this is what our wiki
currently specifies. This can be increased in the future if required.

(cherry picked from commit 8dd20dfd33)
2023-10-26 16:24:51 -04:00
Ryan Foster
877e7dee13 CI: Update deps to 2023-10-17 release
Notable changes:
 * deps.windows: Update curl to 8.4.0

(cherry picked from commit 6b90f9f701)
2023-10-26 16:24:51 -04:00
Rodney
9f6f9109d9 UI: Add missing NULL check for skipUpdateVer
(cherry picked from commit 5ebd3ee6d3)
2023-10-26 16:24:51 -04:00
Ryan Foster
4d1b214cca obs-websocket: Update version to 5.3.3
(cherry picked from commit 8fbd61f775)
2023-10-26 16:24:51 -04:00
derrod
5e06703171 libobs-d3d11: Log VRAM in GiB
(cherry picked from commit 433912f04a)
2023-10-26 16:24:51 -04:00
Norihiro Kamae
a78c88dd8a frontend-tools: Remove unused startAtLaunch variable
(cherry picked from commit 20b8deba2d)
2023-10-26 16:24:51 -04:00
Sludge
9fc741821c input-v4l2: always use linear alpha blending
(cherry picked from commit 1cd8b6aaba)
2023-10-26 16:24:51 -04:00
Rodney
9e1e4981de libobs: Fix rendering stats not being logged on output stop
(cherry picked from commit 3869cb83bc)
2023-10-26 16:24:51 -04:00
gxalpha
5c9cf1fba1 UI: Convert QTStr macro to inline function
Using inline functions improves IDE integration and avoids potential
pitfalls of that using macros has.

(cherry picked from commit 44f3f79296)
2023-10-26 16:24:51 -04:00
Ryan Foster
208e0ccf4f CI: Update CEF builds
Our previously applied Chromium patch had an error. We have rebuilt
them. Use the rebuilt CEF builds.

(cherry picked from commit b131bdadca)
2023-10-26 16:24:51 -04:00
tytan652
c700f8eae4 build-aux: Update Flatpak CEF build
Our previously applied Chromium patch had an error. We have rebuilt
them. Use the rebuilt CEF Linux build.

(cherry picked from commit b09cccb872)
2023-10-26 16:24:51 -04:00
gxalpha
330e8186cf mac-virtualcam: Log when extension replacement is requested
(cherry picked from commit c41633d998)
2023-10-26 16:24:51 -04:00
Service Checker
82cbb03a5f rtmp-services: Remove defunct servers/services
(cherry picked from commit c96111ab04)
2023-10-26 16:24:51 -04:00
Paul Hindt
6a09698cdc UI: Fix compile error due to use of strlen in constexpr
(cherry picked from commit d8f533538f)
2023-10-26 16:24:51 -04:00
derrod
f28ecf88ff CI: Fix Steam upload (again)
(cherry picked from commit e49b31f536)
2023-10-26 16:24:51 -04:00
Translation Updater
5dfc8d49f0 Update translations from Crowdin
(cherry picked from commit 0d450a34a0)
2023-10-26 16:24:51 -04:00
gxalpha
e85b257562 mac-virtualcam: Check result of finished extension installation 30.0.0-rc1
Adds a switch to distinguish between the possible results that could
occur. While we expect to received RequestCompleted for our camera
extension (RequestWillCompleteAfterReboot is usually more of a network
extension thing), we can't be sure that this always is what we receive
unless we check it.
2023-10-09 18:28:02 -06:00
gxalpha
1781289f22 mac-virtualcam: Treat extension installation cancellation as error
OSSystemExtensionErrorRequestCanceled is called when the activation
delegate returns OSSystemExtensionReplacementActionCancel on request
actionForReplacingExtension withExtension. As per the previous (parent)
commit we no longer request cancellation, so we can be sure that
receiving a "cancelled" error is an actual error and not something that
is supposed to happen.
This commit also removes the "error" from the log prefix, as the message
sent may also be a warning instead, and the LOG_LEVEL conveys the
severity of the log line anyways.
2023-10-09 17:24:38 -06:00
gxalpha
61a4922364 mac-virtualcam: Always replace camera extension when requested
Current code assumes that a newer version of the extension is always
better. However that's not true - when the user installs an old version
of OBS, we should also install the old version of the camera extension
to have a version compatible with the installed OBS.
For normal users this method is only called when the versions in the
Info.plist do not match. In system extensions developer mode it's called
every time an installation is requested (meaning on every start), which
is probably desired as well; and by never returning
"ReplacementActionCancel" we can now always treat "ErrorRequestCanceled"
as an error and not something that we requested to happen.
2023-10-09 17:24:38 -06:00
tytan652
7976ffeb40 build-aux: Update Flatpak CEF build
Update CEF build to patch two CVEs:
 * CVE-2023-4863
 * CVE-2023-5217
2023-10-09 18:58:05 -04:00
Ryan Foster
05c868d39a CI: Update CEF builds
Update CEF builds to patch two CVEs:
 * CVE-2023-4863
 * CVE-2023-5217
2023-10-09 18:34:06 -04:00
PatTheMav
cc387d7b66 cmake: Use dependency hashes to track revisions
Store and read dependency hashes to determine if a dependency needs to
have its extracted copy replaced (e.g., a dependency that had its
revision changed but not its version changed).
2023-10-09 16:49:29 -04:00
Ryan Foster
be0a9c4d69 CI: Update deps to 2023-10-09 release
Notable changes:
 * deps.ffmpeg: Update libvpx to v1.31.1
2023-10-09 16:00:16 -04:00
田七不甜
c56017beb0 win-capture: Add 9 window class auto switch to WGC mode
Add "GAMINGSERVICESUI_HOSTING_WINDOW_CLASS", "screenClass",
"PodiumParent", "OMain", "Framework::CFrame", "rctrl_renwnd32",
"MSWinPub", "OfficeApp-Frame" and "SDL_app".
2023-10-09 14:50:05 -04:00
田七不甜
3a1a0ebeba win-capture: Add and tweak apps in compatibility.json
Add:
Counter-Strike 2, UWP applications, Gaming Services applications,
Microsoft 365(Excel, PowerPoint, Word, Access, OneNote, Outlook,
Publisher and 365 software), Adobe After Effects,
Adobe Character Animator, Adobe Photoshop, Adobe Premiere Pro, Steam,
Epic Games Launcher, Ubisoft Connect, Tencent GUI applications, WeChat
and YY.

Tweak:
Change "Electron" name to "Chromium";
Change "%name% cannot be captured via Game Capture." to
"%name% cannot be captured using Game Capture.".

Remove:
Chrome and Edge (reason is based on Chromium).
2023-10-09 14:50:05 -04:00
田七不甜
518003aab8 .editorconfig: Add win-capture json 2023-10-09 14:50:05 -04:00
Kurt Kartaltepe
9b98686c31 cmake: Depend entirely on pkg-config if found for VPL
Released versions of VPL have a pkg-config that orders dependencies
before the main VPL library. This causes our library searching with
pkg-config hints to instead search for the first dependency of VPL.

Instead just import the pkg-config definition directly and use it. This
is a bit more correct as all the dependencies will be correctly linked.

Also install the library since the debian package doesnt seem to depend
on the library itself...

fixes #9573
2023-10-09 11:53:59 -04:00
PatTheMav
773e45bfa9 CI: Add support for dependency revisions to Linux CI builds 2023-10-09 11:01:18 -04:00
PatTheMav
6fb510c918 Revert "CI: Add xclogparser to macOS builds to generate issue report"
This reverts commit c19d9c1365.
2023-10-09 10:31:54 -04:00
PatTheMav
c51c1175fb Revert "CI: Add build annotation step to macOS arm64 builds"
This reverts commit a8ad8bace7.
2023-10-09 10:31:54 -04:00
PatTheMav
aed040ff58 Revert "CI: Fix condition for annotations in nightly runs"
This reverts commit af2136d51c.
2023-10-09 10:31:54 -04:00
gxalpha
baa78b36ef UI: Enable "Paste Filters" after copying from scenes or mixer
Fixes an issue where if no filters had previously been copied and the
user copies a filter from either the scene tree or the audio mixer, the
"Paste Filters" action would not be available until the Edit menu
reloads (e.g., by selecting another source in the source tree).
2023-10-08 10:59:00 -06:00
derrod
36ea03dfa6 win-wasapi: Remove 'BETA' from Application Audio Capture name 2023-10-08 10:49:43 -06:00
derrod
c2ec1fb49e win-wasapi: Handle flags set by GetBuffer 2023-10-08 02:00:58 +02:00
derrod
82f51f24ea win-wasapi: Use provided timestamp for application audio capture 2023-10-08 02:00:58 +02:00
derrod
731da1be6b libobs: Fix hotkeys when reordering sceneitems into/out of groups 2023-10-08 02:00:46 +02:00
derrod
763dddbbaf libobs: Distinguish sceneitem hotkeys by id 2023-10-08 02:00:46 +02:00
derrod
4bb2365a62 libobs: Specify scene item IDs on creation 2023-10-08 02:00:46 +02:00
PatTheMav
2226292adc UI: Initialize YouTubeAppDock synchronously to fix Qt runloop issues
The YouTubeAppDock uses its own cookie manager and thus requires a
running CEF instance before creating the dock. Unfortunately creation
of the dock itself and launching the associated browser instance are
coupled in the code.

The UI code to restore browser dock states runs _after_ this code and
unfortunately this is also the only way to ensure that if the user
has closed the YouTubeAppDock before that it stays closed on app
launch (the dock needs to exist in the Widget hierarchy for its state
to be restored).

Alas, outside of Windows, InitBrowserPanelSafeBlock uses a separate
local QEventLoop to block the main thread while still allowing UI
events to be processed to launch a CEF instance.

By this point in the code execution, the primary event loop has not
been started yet, so the event loop launched by
InitBrowserPanelSafeBlock temporarily becomes the main application
event loop, which initializes all Widgets, finds no active window
state for the widgets, and thus treats them as "visible", calls the
showEvent method on every browser dock, which thus loads the associated
websites.

The dock state is restored after all that, which leads to each browser
dock being "shown" (even though the main QApplication hasn't even
started yet), the associated sites are running (including audio and
video output) but then hidden again, which leads to surprising audio
output seemingly coming from "nowhere".

All browser docks call the browser initialization methods synchronously,
which has the benefit of not spinning up a premature event loop, and does
not trigger Qt view state changes before all Widgets have been
initialized. Having the YouTubeAppDock behave the same does thus not
negatively impact UX.
2023-10-08 02:00:38 +02:00
Kurt Kartaltepe
728cd56583 linux-v4l2: Expand packed values to 4 bytes
These days you might capture card a 175Hz monitor with a framerate
defined as 10000000/57143 that doesnt fit in a short. And reporting a
negative FPS in that case isnt very helpful.
2023-10-08 02:00:28 +02:00
artemmdev
5f8eff7ec1 rtmp-services: Update OnlyFans streaming service 2023-10-08 02:00:01 +02:00
Lain
64e26b2969 libobs: Use same ver. in obs-config.h for betas/RCs 2023-10-06 18:23:49 -06:00
derrod
e4587ae9bd UI: Cleanup remaining uses of old version macros 2023-10-06 17:21:51 -06:00
derrod
9f37258298 UI: Refactor Windows update check to always use LIBOBS_API_VER 2023-10-06 17:21:51 -06:00
derrod
d78a05e124 cmake: Fix OBS_COMMIT not being set (Windows only) 2023-10-06 17:21:51 -06:00
derrod
e11ffeccb0 cmake/libobs: Only set beta/rc increment 2023-10-06 17:21:51 -06:00
Exeldro
82864559f2 libobs: Fix errors for gs_effect_create 2023-10-06 10:51:15 -06:00
derrod
5dde70ccff obs-ffmpeg: Readd OBS_ENCODER_CAP_DYN_BITRATE to AMF texture encoders 2023-10-05 16:55:21 -04:00
jpark37
e11e2133e2 libobs,obs-filters: Fix NAN when tonemapping
Can happen when colors are wider than Rec. 2020.
2023-10-04 19:33:54 -04:00
Ryan Foster
02478d4939 UI: Use std::shared_ptr instead of QSharedPointer
Also use std::weak_ptr instead of QWeakPointer as needed.

Qt has been porting QSharedPointer and QWeakPointer to std::shared_ptr
and std::weak_ptr respectively. QSharedPointer is apparently 2x slower
than std::shared_ptr.

References:
 * https://bugreports.qt.io/browse/QTBUG-109570
 * https://codereview.qt-project.org/c/qt/qtbase/+/359678
 * https://codereview.qt-project.org/c/qt/qtgrpc/+/447780
 * https://codereview.qt-project.org/c/qt/qtbase/+/450134
 * https://codereview.qt-project.org/c/qt/qttools/+/450776
 * https://codereview.qt-project.org/c/qt/qttools/+/450777
 * https://codereview.qt-project.org/q/QSharedPointer
2023-10-04 18:36:20 -04:00