13551 Commits
Author SHA1 Message Date
Lain fc59b60e17 libobs: Update version to 30.0.1 30.0.1 2023-12-09 14:21:20 -06:00
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
tt2468andRyan Foster 51fe2ec920 libobs: Fix PTS incrementation when FPS divisor is enabled
When using a PTS divisor, OBS would still increment the PTS by only the
original `fps_den` value, not considering that PTS values should be
multiplied by the divisor.

For example, `60/1` increases like `0,1,2,3`. `60000/1001` increases
like `0,1001,2002,3003`.

Without this fix, `60/1` main OBS framerate with a divisor of `2`
produces `0,1,2,3`, while the correct pattern would be `0,2,4,6`

(cherry picked from commit 05d52ee3a7)
2023-12-04 15:17:54 -05:00
derrodandRyan Foster 08052b340e updater: Clear shader cache after updating
(cherry picked from commit cfd8d4c993)
2023-12-04 15:17:54 -05:00
Richard StanwayandRyan Foster 1c629a6690 libobs-d3d11: Add checksum to shader cache
A few reports came in of cache files with the correct size but full of
null bytes, presumably from a system crash and an SSD lying about buffer
flushes. This commit adds a checksum at the end of the compiled bytecode
so we don't try to use invalid data.

Co-Authored-By: derrod <dennis@obsproject.com>
(cherry picked from commit 1641812580)
2023-12-04 15:17:54 -05:00
PatTheMavandRyan Foster 7cc08ec1d0 cmake: Align Product Name and Bundle Name on macOS
(cherry picked from commit 9f66c23825)
2023-12-04 15:17:54 -05:00
PatTheMavandRyan Foster f0c343ec24 libobs: Use macOS specific APIs to report free disk space
(cherry picked from commit 4a765d3bf0)
2023-12-04 15:17:54 -05:00
derrodandRyan Foster 28d9f92f82 UI: Disable safe mode when --multi is used
(cherry picked from commit ba25bc65c9)
2023-12-04 15:17:54 -05:00
Norihiro KamaeandRyan Foster 929520afde libobs: Fix memory leak when migrating from legacy scene item data
Before the commit 763dddbbaf, hotkeys to show and hide scene items are
distinguished by source name instead of ID. When migrating from the
legacy data structure, the pointer to the data was not released.

(cherry picked from commit 9391ab305e)
2023-12-04 15:17:54 -05:00
tt2468andRyan Foster dcda5b1022 libobs: Fix crash in obs_sceneitem_remove() when already removed
An already-removed item has a NULL `item->parent`, meaning that calling
`full_lock(scene)` results in undefined behavior. This makes the method
return earlier if the specified item is removed instead of attempting
to lock the scene.

No thread safety is changed, because it wasn't thread-safe to begin
with.

(cherry picked from commit 3e6797ca5b)
2023-12-04 15:17:54 -05: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
derrodandLain c523f11bcd UI: cancel session end request on commitDataRequest() signal 2023-12-02 17:29:44 -06:00
tytan652andLain 34ef67e212 CI: Validate Flatpak with flatpak-builder-lint
Validate the Flatpak manifest before building it; then, validate
the build directory; and when publishing, validate the repository
as well.

Using flatpak-builder-lint in the org.flatpak.Builder Flatpak in a
docker container seems to not work.

So the linter repo is cloned and Poetry is used to run it inside an
custom action.

"--exceptions" is required to allow the manifest to pass since
OBS Studio has one for "--talk-name=org.freedesktop.Flatpak".

Co-authored-by: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
(cherry picked from commit 9f8655921f)
30.0.0
2023-11-10 02:29:58 -06:00
Georges Basile Stavracas NetoandLain afe636b380 CI: Set build-log-url when publishing
This is about to become a Flathub rule, let's pass that.

(cherry picked from commit e03915ee94)
2023-11-10 02:29:58 -06:00
Georges Basile Stavracas NetoandLain e18d341193 CI: Bump flatpak-github-actions commit hash
Use more recent commits. Use a specific commit hash instead of v6.3
to include a fix for the order of arguments in some cases.

(cherry picked from commit 5f264272e5)
2023-11-10 02:29:58 -06: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
tytan652andLain 43acaae2ff build-aux: Remove StatusNotifierItem Flatpak permission
Since Qt 6.2, "org.kde.StatusNotifierItem-2-2" is no longer needed to
make the tray feature work

(cherry picked from commit e14b0e99bb)
2023-11-08 22:35:58 -06:00
田七不甜andLain fa2719b0b1 UI: Fix UseStreamKeyAdv not display stream key and not hide button
(cherry picked from commit 5f512d5f25)
2023-11-08 22:35:58 -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
Ryan FosterandLain 0b56e8a323 UI: Fix typo in Virtual Camera logging functions
cvam -> vcam

(cherry picked from commit c0ee1e718d)
2023-11-08 22:35:58 -06:00
Ryan FosterandLain 32ab1e3764 CI: Update deps to 2023-11-03 release
Notable changes:
 * deps.windows: Fix building against deps on Windows in Debug

Building OBS Studio (specifically obs-websocket) on Windows in Debug
against qrcodegencpp would fail due to workflow and caching issues
causing the previous release package to not contain all components.

(cherry picked from commit e9e3df4c5d)
2023-11-08 22:35:58 -06:00
PenwywernandLain 2701144d30 UI: Log Virtual Camera output type
(cherry picked from commit a49b35c3de)
2023-11-08 22:35:58 -06:00
Igor BochkariovandLain 8805e31d25 libobs: Fix crash when plugins delete properties in callback
If a plugin removes a property when processing 'modified'
property callback, OBS WILL CRASH.

Example of offending plugin: obs-source-record

This commit moves callback processing to after iterating over
properties, thus removing the chance to crash OBS.

(cherry picked from commit b081adf72e)
2023-11-08 22:35:58 -06:00
PatTheMavandLain 0758c2b33e obs-scripting: Fix Sparkle delta updates by disabling bytecode caching
Python automatically creates bytecode caches which end up inside the
application bundle of OBS Studio on macOS. These directories will lead
to a hash mismatch when Sparkle attempts to apply a delta update (to
ensure that the patch can be applied).

As the added directories will make the hash check fail, having a valid
Python framework configured in OBS Studio (even without any script
added) will thus prevent Sparkle from using delta updates.

(cherry picked from commit 24073568e5)
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
Zulleyy3 Zulleyy3andLain 0427bbf265 UI: Fix transform of sources in groups
Group resize is not deferred until adjustments are completed by a
mouseReleaseEvent in certain cases, resulting in unexpected movement of
sources that are part of a group as they are resized or stretched
beyond group bounds.

The bug can be described/reproduced as follow:

1. The user selects within a group in the sources dock
2. The user moves their mouse over the selected source such that the
   cursor would change.
   - This results in a cursor update and a call to GetStrechHandle()
   - as the source is part of a group, stretchGroup will be set to the
    group of the source

3. The user clicks on the canvas without touching a stretch/rotation
   handle
   - A mouseReleaseEvent is fired
   - obs_sceneitem_defer_group_resize_end is called on the group as
     stretchGroup is still defined from earlier
   - the defer_group_resize member of the group will become negative
   - The deferal check in resize_group (obs-scene.c) will always pass
     now
4. When scaling or rotating the source close to the group bounds, the
   group bounds will now dynamically update causing the source in to fly
   off the canvas.

Resolves: https://github.com/obsproject/obs-studio/issues/9754
(cherry picked from commit c76760bc1c)
2023-11-08 22:35:58 -06:00
PatTheMavandLain 424cd1701e libobs: Add more files to list of public headers
(cherry picked from commit 5127c22773)
2023-11-08 22:35:58 -06:00
Lev LeontevandLain 8eba188708 docs: Fix obs_sceneitem_get_group signature
(cherry picked from commit df990192b2)
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)
30.0.0-rc2
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
PenwywernandRyan Foster a728de8444 UI: Fix AMF AV1 simple recording presets
(cherry picked from commit 1a88cdb00d)
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
PatTheMavandRyan Foster e14b29e875 libobs: Export SIMDe headers unconditionally for plugin development
(cherry picked from commit ff2a7063c2)
2023-10-28 16:14:25 -04:00
Ryan Foster bfa58eb121 CI: Update deps to 2023-10-26 release
Notable changes:
 * deps.qt: Backport patch for CVE-2023-43114
 * deps.qt: Backport patch for QTBUG-117779
 * deps.qt: Backport patch for QTBUG-118117

(cherry picked from commit de46cf8db7)
2023-10-28 16:14:25 -04:00
Ryan Foster b1aff52ef9 UI: Remove iCCP data from PNGs
Loading these PNGs in libpng 1.6+ results in the warning:
libpng warning: iCCP: known incorrect sRGB profile

This is probably caused by saving an ICC Profile with the program used
to make the image, and that ICC Profile is considered invalid by libpng.

Removing the iCCP data resolves this.

(cherry picked from commit b4c36c0530)
2023-10-28 16:14:25 -04:00
jpark37andRyan Foster 16137fb346 decklink-output-ui: Decouple DeckLink output state
Didn't realize OBS could output both program and preview views at the
same time with multiple devices.

Also remove render callbacks earlier on stop to avoid use-after-free.

(cherry picked from commit 6aaf0358ca)
2023-10-26 16:24:51 -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