Commit Graph
4458 Commits
Author SHA1 Message Date
Translation UpdaterandRyan Foster 0820baaf50 Update translations from Crowdin
(cherry picked from commit f674d17168)
2023-12-05 18:53:38 -05:00
Ryan Foster 06c61049a4 obs-websocket: Update version to 5.3.4
Fix a crash on shutdown.

(cherry picked from commit 689daf57dc)
2023-12-05 18:51:51 -05:00
Ryan Foster b9efc5f4af obs-browser: Update version to 2.22.2
ea9a3fb - Don't allow browser docks to arbitrarily close OBS
7a372e0 - Fix handling frontend JS events
2023-12-05 18:51:39 -05:00
prgmitchellandderrod 00f114676e win-wasapi: Ignore timestamp errors
Only log packets with timestamp errors rather than resetting the device.

(cherry picked from commit 0f498133a4)
2023-12-04 22:51:11 +01:00
Kurt KartaltepeandRyan Foster e687f89bb0 linux-pipewire: Ensure number of dmabufs is zero initialized
We use a size_t that can be 64bit while EGL uses 32bit for the
underlying value. Writes from our graphics function can leave high bits
uninitialized and cause iteration of the format list to overlfow.

fixes #9844

(cherry picked from commit ea1d022c20)
2023-12-04 15:17:54 -05:00
tt2468andRyan Foster fe219ee7c3 rtmp-services: Update IRLToolkit service
- Adds Dallas and Miami ingests
- Rotterdam PoP was moved to Amsterdam
- Use RTMPS for all servers

(cherry picked from commit 54d692ada0)
2023-12-04 15:17:54 -05:00
jcmandRyan Foster 175aa3461c mac-capture: Add handling for nil target window
(cherry picked from commit a89719a2d2)
2023-12-04 15:17:54 -05:00
Lain 6002a6f8fe win-capture: Update graphics hook version
Ensures that the newer hook version is copied when installed
2023-11-09 00:15:18 -06:00
Seth WilliamsandLain 16e3faf0d0 win-capture: Fix Vulkan race condition
This race condition is caused when one thread creates a swap chain,
which calls OBS_CreateSwapchainKHR, at the same time another thread
calls OBS_CreateImageView.

OBS_CreateSwapchainKHR allocates swap data, publishes this into the
data->swaps linked list, then initializes it. Meanwhile,
OBS_CreateImageView is iterating the swaps linked list, to see if the
image matches any swap chain images. Due to the order in
OBS_CreateSwapchainKHR, there's no guarantee this data is initialized
so it often ends up running out of bounds on the swap_images array.

The fix is simply to defer the swap data publish to after init.

(cherry picked from commit aa1f2dea84)
2023-11-08 22:35:58 -06:00
jpark37andLain d5a0a7450d libobs,obs-filters: Use common straight alpha math
This pattern uses fewer instructions and also avoids using max, which
does not work on infinity.

Also remove unreferenced techniques from scale filters.

(cherry picked from commit e79e28598b)
2023-11-08 22:35:58 -06:00
TDV AlinsaandLain 9ef45e5508 obs-webrtc: Allow non-CBR rate control with WHIP
Nothing about WHIP requires CBR (and many things that use it use VBR),
and there's no specific upstream service to care about it (WHIP is a
protocol, not a service, despite being exposed as a "service" in OBS),
so let's stop forcing it to be CBR and allow the user to choose other
rate control methods.
2023-11-05 13:11:09 -06:00
Kurt KartaltepeandRyan Foster 18dd416ee4 linux-pipwire: Pass obs_pw_stream to renegotiation callback
We were passing the core pipewire pointer where renegotiation expected
the stream pointer. Somehow this worked, probably because the two are
very close.

fixes #9733

(cherry picked from commit 658657de35)
2023-10-28 18:03:54 -04:00
Ryan Foster 59ff2b0cb2 Revert "win-wasapi: Remove 'BETA' from Application Audio Capture name"
This reverts commit 36ea03dfa6.

(cherry picked from commit ed2ade250f)
2023-10-28 18:03:54 -04:00
Ryan Foster e2ebcaf549 obs-qsv11: Migrate target usage settings
Calling update_targetusage in update_params only updates the setting
when an encoder session is initialized. Calling update_targetusage in
rate_control_modified, like update_latency and update_enhancements, will
update the setting when the Settings window is loaded. This will cause
the updated setting to be reflected in the UI.

(cherry picked from commit 20ffdda89a)
2023-10-28 16:14:25 -04:00
gxalphaandRyan Foster 5c6a0536a3 plugins: Remove old macOS version ifdefs
8dd20dfd33 introduced an explicit check
for the available macOS SDK, meaning that we can be sure that the macOS
13.1 SDK is available. As such, we do not require ifdef guards for the
availability of functions that are older than 13.1.

(cherry picked from commit ba4467199c)
2023-10-28 16:14:25 -04:00
prgmitchellandRyan Foster 92b4ccb6d1 win-wasapi: Log source name on initialization
Log the source name when a WASAPI device is initialized.

(cherry picked from commit d017cb6718)
2023-10-28 16:14:25 -04:00
jcmandRyan Foster 5d73fe6149 mac-virtualcam: Correct device timer firing rate
(cherry picked from commit 311fb69175)
2023-10-28 16:14:25 -04:00
Service CheckerandRyan Foster 521047fd39 rtmp-services: Remove defunct servers/services
(cherry picked from commit 48e239b74d)
2023-10-28 16:14:25 -04:00
Kurt KartaltepeandRyan Foster 9f79146a12 linux-pipewire: Load glad symbols on start
After the cmake 3.0 rebuild glad was transitioned to a static library.
This lead to the glad symbols being uninitialized and crashes when they
are used in some cases.

(cherry picked from commit 5cf0f06669)
2023-10-26 16:24:51 -04:00
Kurt KartaltepeandRyan Foster f97d72c412 linux-pipewire: Use the format properties for swap r/b
We refactored this data to be part of the format properties instead of
an out parameter. But forgot to start using this field instead.

(cherry picked from commit 454fc559a2)
2023-10-26 16:24:51 -04:00
Kurt KartaltepeandRyan Foster 2aaf499e2e linux-pipewire: Add locks to unsafe pipewire functions
These functions log that they should be used with the thread lock held,
so lets hold the lock before calling them.

(cherry picked from commit f0697980c3)
2023-10-26 16:24:51 -04:00
Ryan Foster 622d7d8f52 obs-qsv11: Log more QSV settings
QSV logging was missing many of its settings. Let's fix that.

(cherry picked from commit b29a44a67d)
2023-10-26 16:24:51 -04:00
gxalphaandRyan Foster d4816e2473 mac-avcapture: Replace kCMIOObjectPropertyElementMaster with Main
(cherry picked from commit 856059b37c)
2023-10-26 16:24:51 -04:00
gxalphaandRyan Foster a27ed95cab mac-capture: Replace kAudioObjectPropertyElementMaster with Main
(cherry picked from commit 3d2df1c6d7)
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
SludgeandRyan Foster 9fc741821c input-v4l2: always use linear alpha blending
(cherry picked from commit 1cd8b6aaba)
2023-10-26 16:24:51 -04:00
gxalphaandRyan Foster 330e8186cf mac-virtualcam: Log when extension replacement is requested
(cherry picked from commit c41633d998)
2023-10-26 16:24:51 -04:00
Service CheckerandRyan Foster 82cbb03a5f rtmp-services: Remove defunct servers/services
(cherry picked from commit c96111ab04)
2023-10-26 16:24:51 -04:00
Translation UpdaterandRyan Foster 5dfc8d49f0 Update translations from Crowdin
(cherry picked from commit 0d450a34a0)
2023-10-26 16:24:51 -04:00
gxalphaandLain e85b257562 mac-virtualcam: Check result of finished extension installation
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
gxalphaandLain 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
gxalphaandLain 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
田七不甜andRyan Foster 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
田七不甜andRyan Foster 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
derrodandLain 36ea03dfa6 win-wasapi: Remove 'BETA' from Application Audio Capture name 2023-10-08 10:49:43 -06:00
derrodandRodney c2ec1fb49e win-wasapi: Handle flags set by GetBuffer 2023-10-08 02:00:58 +02:00
derrodandRodney 82f51f24ea win-wasapi: Use provided timestamp for application audio capture 2023-10-08 02:00:58 +02:00
Kurt KartaltepeandRodney 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
artemmdevandRodney 5f8eff7ec1 rtmp-services: Update OnlyFans streaming service 2023-10-08 02:00:01 +02:00
derrodandRyan Foster 5dde70ccff obs-ffmpeg: Readd OBS_ENCODER_CAP_DYN_BITRATE to AMF texture encoders 2023-10-05 16:55:21 -04:00
jpark37andRyan Foster 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 0866688953 obs-qsv11: Use translatable strings for target usage
For Target Usage, instead of doing string comparisons against long
descriptive strings, use translatable strings for descriptive UI text
and simple designations for values used for comparisons and storage.
This is similar to what we do for NVENC Presets.
2023-10-04 16:22:24 -04:00
Ryan Foster 9b1d6032e3 obs-qsv11: Remove D3D9 fallback
On Windows 10 and up, D3D11 should never fail, so the D3D9 code should
no longer be possible to hit. As far as I can tell, this code was mostly
for Windows 7/8/8.1 and it was part of the initial implementation. It
should no longer be needed.
2023-10-04 15:24:56 -04:00
Ryan Foster 53dee8f990 obs-qsv11: Remove D3D9 allocator
On Windows 10 and up, D3D11 should never fail, so the D3D9 code should
no longer be possible to hit and should no longer be needed.

Revert "obs-qsv11: Use d3d9 allocator on Win7"

This reverts commit b276b1633e.
2023-10-04 15:24:56 -04:00
Kurt KartaltepeandRyan Foster 9d4b916248 obs-qsv11: Redo session data releasing for Linux
This reverts the changes to Windows where Release() was called every
time, since we need share a single DX context across multiple encoders.

Instead introduce a ReleaseSessionData() function and some platform
specific session data that will be passed to it. We use this to track
the VA-API display and fd to release them at the right time. Leaking
displays will also lead to cache pollution in the intel-media-driver
crashing users so we cannot do that.

fixes #9611
2023-09-29 11:56:53 -04:00
gxalphaandRyan Foster 23bfb625ce mac-capture: Don't crash when migrating unknown display IDs
The current code assumes that a display UUID can be created with the
stored ID, but that's not always the case, e.g. when the user doesn't
have the display connected. As such, we need to null check this, and
fall back to the invalid ID (0) when the ID cannot be migrated.

The current code also only migrates on source creation, which yields
weird behaviour where if the user opens properties and then cancels it
would still show the first display, but only for the session. This is
why the code was factored out of the creation function and now is always
used when an ID needs to be acquired from OBS Data settings, including
when the source is updated.
2023-09-28 14:25:55 -04:00
Matt Gajownik 857c42aaba obs-browser: Fix invalid comparison of integer types 2023-09-28 23:00:48 +10:00
Matt Gajownik 22cef2b8c4 obs-browser: Update version to 2.22.1
fc57db4 - More consistently return JSON types in browser client
8407dcc - Use CefParseJSON instead of V8 context for JS responses
2023-09-28 21:04:29 +10:00
PatTheMavandRyan Foster b3949e6aef cmake: Update qrcodegen finder to match target names of CMake package
qrcodegen is built on obs-deps for macOS and Windows, with the
generated CMake package calling the dependency qrcodegen (not
libqrcoden) and associated target qrcodegen::qrcodegen.

This change updates the finder (required for Linux) to create the same
targets so consumers do not need to differentiate between different
variations of the same dependency on Linux.

Also updates obs-websocket to 5.3.1 to bring in associated CMake
changes.
2023-09-27 18:05:02 -04:00
Sean DuBoisandRyan Foster 2308414bcc obs-webrtc: Move libdatachannel code to C++ from C
libdatachannel is now built with MSVC instead of MinGW so we are able to
use C++ API instead.

The C++ is preferred by upstream and what the project is written in. The
C API provides a subset of features and has a performance penalty.
2023-09-19 15:03:11 -04:00