0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 04:42:18 +02:00
Commit Graph

13563 Commits

Author SHA1 Message Date
derrod
845a4a6f64 libobs: Remove superfluous NULL checks 2023-11-17 11:04:33 -05:00
derrod
40e4f789c8 cmake: Enable /GL and /LTCG for non-Debug configurations 2023-11-17 11:04:33 -05:00
PatTheMav
7ae1c35fcb obs-filters: Remove LTCG linker flag for SpeexDSP builds on Windows
Flag was added in CMake 2.0 update and is incompatible with incremental
linking enabled by default for Debug configuration (MSVC default).

The original error that necessitates adding LTCG is not present with
current obs-deps anymore, so remove it instead and disable the
hard-coded default library directive in Debug configuration.
2023-11-16 23:24:41 +01:00
Norihiro Kamae
9391ab305e 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.
2023-11-16 16:27:23 -05:00
tt2468
3e6797ca5b 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.
2023-11-13 22:37:42 -08:00
Kurt Kartaltepe
ea1d022c20 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
2023-11-12 13:32:24 -03:00
jpark37
35f8481498 obs-filters: Add maxRGB tonemapper for SDR
Preserves saturation better than our Reinhard.
2023-11-11 17:50:34 -06:00
PatTheMav
95cab7178e obs-scripting: Add Python 3.11 support for Windows and macOS 2023-11-11 17:45:55 -06:00
tt2468
54d692ada0 rtmp-services: Update IRLToolkit service
- Adds Dallas and Miami ingests
- Rotterdam PoP was moved to Amsterdam
- Use RTMPS for all servers
2023-11-12 00:36:00 +01:00
PatTheMav
e075e7057c cmake: Force PDB generation on Windows for MSVC builds in all configs
CMake 3.25 changed the way PDB generation is handled by only enabling
it for Debug and RelWithDebInfo builds, which prohibits generation of
fully optimized builds with associated symbols (which is MSVC's
default).

If configuring with CMake 3.25 or above, enable this globally for builds
using MSVC and fall back to embedded debug information for anything else
(which would probably be clang-cl).
2023-11-11 17:17:20 -06:00
jcm
a89719a2d2 mac-capture: Add handling for nil target window 2023-11-11 17:06:25 -06:00
Norihiro Kamae
40562ff47e libobs: Expose obs_data_set_autoselect_array 2023-11-10 02:10:43 -06:00
tytan652
14eb93df88 CI: Validate Flatpak repository in push workflow
Avoid to encounter some errors only while publishing.
2023-11-09 18:50:17 -03:00
tytan652
fc79e813ea CI: Allow to silence errors related to publish
This option allows to validate the Flatpak repo on pushes workflow.
2023-11-09 18:50:17 -03:00
tytan652
9f8655921f 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>
2023-11-09 18:50:17 -03:00
Georges Basile Stavracas Neto
e03915ee94 CI: Set build-log-url when publishing
This is about to become a Flathub rule, let's pass that.
2023-11-09 18:50:17 -03:00
Georges Basile Stavracas Neto
5f264272e5 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.
2023-11-09 18:50:17 -03:00
Lain
6b5404899a win-capture: Update graphics hook version
Ensures that the newer hook version is copied when installed
2023-11-09 00:13:25 -06:00
tytan652
e14b0e99bb 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
2023-11-08 11:35:15 +02:00
田七不甜
5f512d5f25 UI: Fix UseStreamKeyAdv not display stream key and not hide button 2023-11-08 00:13:20 -06:00
Seth Williams
aa1f2dea84 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.
2023-11-07 23:48:34 -06:00
Ryan Foster
c0ee1e718d UI: Fix typo in Virtual Camera logging functions
cvam -> vcam
2023-11-07 19:09:25 -05:00
Ryan Foster
e9e3df4c5d 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.
2023-11-07 18:28:03 -05:00
Kevin Wang
1a86ff5511 obs-browser: Add support for more events 2023-11-07 01:49:51 -06:00
tt2468
1d5d4b29e7 win-wasapi: Handle changes to the default monitoring device
Splits the WASAPINotify class out of win-wasapi.cpp and makes it a
shared object in the plugin, then also creates a callback to reset
audio monitoring if the default output device changes.
2023-11-07 01:32:12 -06:00
tt2468
3b0ca4527a libobs: Add obs_reset_audio_monitoring()
Reloads all audio monitoring devices
2023-11-07 01:32:12 -06:00
Penwywern
a49b35c3de UI: Log Virtual Camera output type 2023-11-07 00:39:01 -06:00
Igor Bochkariov
b081adf72e 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.
2023-11-04 23:31:07 -05:00
gxalpha
6ed2e13974 mac-videotoolbox: Remove CRF 0 second keyint override
The previous commit sets the default configuration to 2 seconds, meaning
that the 0 second default interval no longer happens per default. If
someone explicitly sets the interval to 0 seconds ("auto"), we should
allow them to do that.
2023-11-04 18:47:52 -05:00
gxalpha
5cd30d6a86 mac-videotoolbox: Set default keyframe interval to 2 seconds
0 seconds means "auto" according to the documentation, but this appears
to be broken in many configurations (more than just CRF mode on Apple
Silicon). With some encoders it means that the encoder sets a keyframes
every 31st frame, other times it just doesn't set any keyframes at all
after the first one, only rarely does the "auto" interval actually
appear to work.
Lets just set the default to 2 seconds and be happy. In theory this is
the maximum keyframe interval and encoders are allowed to set more if
they so wish, but they never appear to do so.
2023-11-04 18:47:52 -05:00
PatTheMav
24073568e5 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.
2023-11-04 18:26:50 -05:00
tytan652
bee71b32d2 cmake: Allow finding the CEF wrapper without a build folder on Linux 2023-11-04 18:19:28 -05:00
tytan652
122a5db0b3 obs-ffmpeg: Remove unused variable in VA-API utils 2023-11-04 18:17:43 -05:00
jpark37
e79e28598b 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.
2023-11-04 18:12:22 -05:00
Zulleyy3 Zulleyy3
c76760bc1c 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
2023-11-04 18:06:44 -05:00
David Rosca
722ca8447e libobs: Add AV1 parsing functions
One notable difference from the AVC/HEVC code is that it also inserts
the METADATA and SEQUENCE_HEADER OBUs into new_packet, otherwise the
resulting video file wouldn't play.
2023-11-04 01:16:25 -05:00
PatTheMav
5127c22773 libobs: Add more files to list of public headers 2023-11-02 11:50:30 -04:00
Lev Leontev
df990192b2 docs: Fix obs_sceneitem_get_group signature 2023-10-28 18:28:54 -05:00
TDV Alinsa
e6b3ae738f 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-10-28 18:15:03 -05:00
David Rosca
83e7cfb9c3 obs-ffmpeg: Add B-frames option for VA-API
The option is already there, but it wasn't available from UI.
Only show it when B-frames are supported.
2023-10-28 18:08:29 -05:00
Kurt Kartaltepe
658657de35 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
2023-10-28 18:26:29 -03:00
Ryan Foster
ed2ade250f Revert "win-wasapi: Remove 'BETA' from Application Audio Capture name"
This reverts commit 36ea03dfa6.
2023-10-28 16:41:47 -04:00
Ryan Foster
20ffdda89a 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.
2023-10-28 15:45:53 -04:00
gxalpha
60c77aa915 UI: Replace SourceTreeSubItemCheckBox class with Qt property 2023-10-28 10:22:38 -03:00
gxalpha
ba4467199c 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.
2023-10-27 16:00:42 -04:00
prgmitchell
d017cb6718 win-wasapi: Log source name on initialization
Log the source name when a WASAPI device is initialized.
2023-10-27 14:37:46 -04:00
Penwywern
1a88cdb00d UI: Fix AMF AV1 simple recording presets 2023-10-27 14:10:20 -04:00
jcm
311fb69175 mac-virtualcam: Correct device timer firing rate 2023-10-27 10:08:19 -04:00
Service Checker
48e239b74d rtmp-services: Remove defunct servers/services 2023-10-26 17:48:23 -07:00
PatTheMav
ff2a7063c2 libobs: Export SIMDe headers unconditionally for plugin development 2023-10-26 18:20:53 -04:00