0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
Commit Graph

10203 Commits

Author SHA1 Message Date
jp9000
ab84214356 libobs: Add obs_in_task_thread() function
Allows determining which thread the caller is currently in, if any
2021-12-19 11:53:19 -08:00
jp9000
cf492ca271 libobs: Add ability to queue audio task
This is mostly framework for allowing the ability to wait for certain
threads
2021-12-19 11:53:14 -08:00
jp9000
e4f0c21252 UI: Process deleteLater() tasks in OBSBasic::ClearSceneData
Causes QObject::deleteLater() events to be processed immediately in
OBSBasic::ClearSceneData() to ensure no lingering source or scene item
references remain
2021-12-19 11:25:57 -08:00
jp9000
5a36bd5c9a libobs/util: Add task queue helper
Adds a cool little task queue thing so a dedicated task thread can be
spawned
2021-12-19 11:25:57 -08:00
jp9000
408ce92146 Revert "libobs: Do not release while traversing sources for tick"
This reverts commit 080090c40e.
2021-12-19 11:25:57 -08:00
tt2468
d07bd7dff2 libobs: Hold source ref during source_remove signal
Holds an active reference to a source during signaling of the
`source_remove` signal, to prevent receivers from being given an
already-destroyed source.

- Call obs_source_remove(source)
- Receiver 1 gets signal, calls `obs_source_release(source)`
- Receiver 2 gets signal, calls `obs_source_release(source)`,
refs == -1, source destroyed
- Receiver 3 gets signal, source already destroyed, is forced to ignore
signal due to invalid source

This is a theoretical situation which is currently possible in
obs-websocket.
2021-12-19 11:25:43 -08:00
PatTheMav
0072629ceb CI: Fix build issues introduced by updates obs-deps 2021-12-19 10:47:40 -06:00
Matt Gajownik
96ee97e997 obs-vst: Avoid using empty editorWidget for deleteLater() 2021-12-19 10:55:59 +11:00
hellowanda
a01a01f752 win-virtualcam: Make sure virtualcam output thread safe 2021-12-18 07:14:47 -08:00
tt2468
647fb1376d libobs: Add preprocessor directive for AutoRelease types
Since these helpers come from obs-websocket, obs-websocket needs a way
to disable its own helpers if OBS is new enough to include them
already.
2021-12-18 16:42:51 +11:00
Matt Gajownik
e35b8d5888 CI: Update Windows CEF version to 4638 (Chromium 95) 2021-12-17 12:24:01 -08:00
Matt Gajownik
9c12a9ac98 CI: Update Linux CEF version to 4638 (Chromium 95) 2021-12-17 12:24:01 -08:00
Matt Gajownik
0c26becd80 CI: Update macOS CEF version to 4638 (Chromium 95) 2021-12-17 12:24:01 -08:00
Warchamp7
f5947d9b9b UI: Update the filters window to be resizeable
Updates the filters window to use a QSplitter layout for the properties area.

The handle is disabled for audio filter windows. The handle and property area are hidden when there are no filters.
2021-12-17 06:52:35 -08:00
Mike
02f3495b72 UI: Add checks for overwrite setting to replay buffer 2021-12-17 06:49:44 -08:00
liu.haibin
1883b774e8 obs-outputs: Reset dbr bitrate before end_data_capture_thread start 2021-12-17 04:31:16 -08:00
gxalpha
d121c92fbb UI: Add undo/redo for "Add existing source"
Adds an undo/redo action for the "Add existing source", which previously
was missing.
2021-12-17 04:30:36 -08:00
Tommy Vercetti
c83b758f4d UI: Remove Qt Windows Extras for Qt 6 and later
Co-Authored-By: Matt Gajownik <matt@wizardcm.com>
2021-12-17 01:35:40 -08:00
Jim
91a9688d9f
Merge pull request #5501 from RytoEX/fix-ffmpeg-deprecations
Fix FFmpeg deprecations up to FFmpeg 4.4 and current FFmpeg git
2021-12-17 01:16:35 -08:00
Translation Updater
062de2c998 Update translations from Crowdin 2021-12-17 08:01:29 +00:00
wangshaohui
81d70b5d1b win-capture: Should not init module if HWND is invisible 2021-12-16 23:39:55 -08:00
wangshaohui
90f11b3eae UI: Fix a stack overlow caused by using OBSScene 2021-12-16 23:38:59 -08:00
Kurt Kartaltepe
0729007f19 libobs: Add Wayland hotkey infrastructure
Users on Wayland are displeased that they cannot see their hotkey
bindings. This enables key reporting like X11, and has the infrastructure
in place in case Wayland ever decides to allow for capturing input.
2021-12-16 10:54:29 -03:00
Kurt Kartaltepe
21fdd83b7e libobs: Fix Numpad Minus naming in UI
OBS_KEY_NUMMINUS was not included in the key to string function so it
was reported as a regular minus.
2021-12-16 10:54:29 -03:00
jp9000
080090c40e libobs: Do not release while traversing sources for tick
obs_source_release should not be called while iterating through the
global sources linked list, otherwise the linked list will be
compromised. Annoying.

Basically the same fix as obsproject/obs-studio#5600, but should be
slightly more optimal and a bit more explicit.
2021-12-15 11:57:52 -08:00
Matt Gajownik
24faaf085d CI: Update Crowdin Sync workflow to 0.1.2
See https://github.com/obsproject/crowdin-synchronization/pull/7
2021-12-15 22:09:53 +11:00
jp9000
b2c09d3523 libobs: Fix potentially unsafe linked list traversal
Fixes an issue pointed out in obsproject/obs-browser#333 where a source
may destroy the next source in obs_source_video_tick(), thus
invalidating the next source in the linked list. Get the next source in
the list *after* calling obs_source_video_tick() rather than before.

Closes obsproject/obs-studio#5600
2021-12-14 10:34:53 -08:00
jp9000
1f20e0ca93 obs-browser: Fix deadlock 2021-12-14 10:34:53 -08:00
Jim
83f08725e4
Merge pull request #5580 from VodBox/add-cpp-templates
libobs: Add AutoRelease OBSRef wrappers for OBS types
2021-12-13 21:31:27 -08:00
Richard Stanway
ea1ae59149 UI: More user-friendly error when using a bad output path 2021-12-13 22:32:09 +01:00
Georges Basile Stavracas Neto
b0e82b9233 CI: Run Flatpak jobs on release branches too
We'll soon be moving to branching before releases, which
is a case that the current Flatpak worflow did not account
for.

Adapt it to also run on release/** branches.
2021-12-13 09:16:28 -08:00
Kurt Kartaltepe
5daf3b1ad1 libobs-opengl: Ensure proper draw buffer
This commit ensures that we set the appropriate draw buffer when making
a context current. Mesa drivers enforce opengl ES semantics where the
targets passed to eglMakeCurrent are bound, but nvidia instead ignores
these parameters after the 1st eglMakeCurrent. In obs we make current
with EGL_NO_SURFACE so our draw targets end up as EGL_NONE on nvidia
and previews fail to render.

This also allows us to fail back ignoring NATIVE_RENDERABLE
requirements. Nvidia driver does not report support for this attribute
on any context and after resolving the draw target issues previews
render correctly on nvidia and intel drivers.
2021-12-13 11:37:28 -03:00
Translation Updater
261345f9ef Update translations from Crowdin 2021-12-12 02:38:59 +00:00
Matt Gajownik
d1478271a4 obs-browser: Fix build issues on Qt 5.9 (Ubuntu 18.04) 2021-12-12 11:56:34 +11:00
Matt Gajownik
1483aa9f7d obs-browser: Update version to 2.17.1
New features:
 - Expose Scene controls to sources
 - Pass on JS function arguments to BrowserClient
 - Add Browser Source Refresh Hotkey
 - Render JavaScript dialogs using Qt
 - Improve performance of CEF 4638 browser sources
 - Set window title for web popups using X11
 - Add TypeScript definitions information

Bug fixes/cleanup:
 - Don't call WasHidden on browser panels
 - Use mutex when accessing BrowserSource::cefBrowser
 - Correct JSDoc definitions
 - Remove old CEF ifdefs
2021-12-12 11:40:29 +11:00
Matt Gajownik
748279bd86 obs-vst: Update submodule with a variety of bugfixes
- Cleanup EditorWidget.h
 - Modify log in obs-vst, fix compile error
 - Update effect name even effect is unavailable
 - Fix crash caused by unsupported interface
 - Use deleteLater on editorWidget to prevent crash
 - Check result after creating vst plugin
 - Fix button states on properties refresh
 - Replace QMacCocoaViewContainer with QWidget::createWindowContainer
 - Modify incorrect code about mallocing memory
2021-12-12 11:37:46 +11:00
Matt Gajownik
9c01b1ecc8 libdshowcapture: Add FindPin, RGB24, & use CMake instead of pragma
This updates the libdshowcapture submodule to the latest commit.
This also changes win-dshow CMakeList to ensure compatibility.

Full commit list:
 - Add support of RGB24 format
 - CMake: Add Win32 libs instead of pragma directives.
 - Implement FindPin
 - Simplify error handling
 - Fix log level of DebugHR
 - Use default constructor instead of empty function
 - Use std::move instead of copy where appropriate
 - Mark some strings as const
2021-12-12 11:35:48 +11:00
Tatsuyuki Ishi
316f858c68 linux-capture: Fix capturing on software rasterization setups
The GLX_EXT_texture_from_pixmap spec says:

The contents of the texture after the drawable has been bound are defined
as the result of all rendering that has completed before the call to
glXBindTexImageEXT.  In other words, the results of any operation which
has caused damage on the drawable prior to the glXBindTexImageEXT call
will be represented in the texture.

Rendering to the drawable while it is bound to a texture will leave the
contents of the texture in an undefined state.  However, no
synchronization between rendering and texturing is done by GLX.  It is
the application's responsibility to implement any synchronization
required.

In practice, on most systems with a GPU this kept a directly binding to
the framebuffer, which made it work with the previous code. However,
on software rasterization setups using llvmpipe, a blit was done inside
the call to glXBindTexImageEXT. This was the cause of a notoriously
ignored bug where the captured image would "freeze" until the source
was reconfigured.
2021-12-12 11:13:24 +11:00
Carlo Castoldi
4623a6b4bc obs-ffmpeg: Set DRI devices and their name persistently
retrieving the DRI devices from /dev/dri/by-path/ instead of
/dev/dri/renderDXXX. This enable us to use lspci to get the device
name as well.
2021-12-12 11:12:36 +11:00
tt2468
c9b327d0f0 vlc-video: Emit media ended signal regardless of loop setting
Makes the signal's behavior on-par with `obs_source_media_started`.
`obs_source_media_started` is emitted every time a file in the playlist
is played, and so therefore should `obs_source_media_ended`. In this
scenario, the loop setting is actually irrelevant to the behavior that
this signal should have.
2021-12-11 15:25:40 -08:00
Kurt Kartaltepe
26f4d85398 linux-capture: Deinit pipewire only if we init'ed
If you don't have a xdg-desktop-portal backend then pipewire wont init,
however on exit we unconditionally deinit which can crash in pipewire
which does not handle this gracefully.
2021-12-12 10:05:02 +11:00
derrod
2c7b14bc37 UI: Add UUID to Twitch panel URLs
Some Twitch dashboard panels now require a UUID, it is not used for
anything but local storage right now, and according to Twitch we can
generate it ourselves (or even use a static string). To be safe we can
just use QUuid to generate a "real" UUID and then store it locally until
the user disconnects the account.
2021-12-11 14:39:19 -08:00
Ek Palmer
2e1c5fc801 rtmp-services: Add Fantasy.Club 2021-12-11 13:56:40 -08:00
Exeldro
5df4ffa881 docs: add missing source output flags 2021-12-10 01:10:59 -08:00
jp9000
96631d580a libobs/util: Fix end_pos when pushing empty circlebuf front
When pushing to the front of an empty circular buffer, it would not
update the end_pos, so end_pos would be left on 0, and it would break
when trying to push to the back after that. The reason why this bug was
never discovered until now is because breakage only happens when pushing
to the front of an empty buffer, then pushing to the back right after
that.
2021-12-09 20:18:42 -08:00
Georges Basile Stavracas Neto
ca72f890da UI: Set donation, bugtracker, and translate AppData fields
These are more fields that app stores such as GNOME Software
and Discover show. Nothing fancy, but the more information we
provide, the better it looks!
2021-12-09 17:03:36 -03:00
Richard Stanway
e7aa332d38 libobs: Disable function attributes for SWIG 2021-12-09 03:36:40 +01:00
Richard Stanway
10446c1a0b UI/updater: Explicitly set PSAPI_VERSION=2
If the user didn't set their minimum SDK level this would default to
PSAPI_VERSION=1 which requires psapi.lib (removed in 4614c057).
2021-12-09 02:51:08 +01:00
Richard Stanway
b37acbcbc1 libobs: Add OBS_NORETURN and use it for crash handler
Fixes some analyzers flagging code after a crashing path makes it
impossible to reach.
2021-12-09 02:42:37 +01:00
jp9000
b92e941b4f libobs: Add source cap to hint not to show properties
(This commit also modifies UI)

Adds a source capability flag to indicate that properties should not be
shown on creation
2021-12-07 20:54:37 -08:00