- 14 2月, 2021 2 次提交
-
-
DMA-BUF is a widespread Linux buffer sharing mechanism. It is what's commonly used zero-copy screen sharing by Wayland compositors. Add a new 'device_texture_create_from_dmabuf' vfunc to gs_exports, and stub implementations to libobs-opengl. Add a new public method gs_texture_create_from_dmabuf() that calls this vfunc.
-
由 Oliver Lietz 提交于
Closes obsproject/obs-studio#4086
-
- 13 2月, 2021 1 次提交
-
-
由 Nirusu 提交于
In #3988, @RytoEx mentioned that the recent Qt upgrade to 5.15.2 introduced a regression in which Qt begins returning DPI/scaling aware resolutions for each screen. While this was fixed for new profiles, this was not reflected in the choice for the Canvas (Base) Resolution in the Settings screen yet. This commits fixes this issue, and calculates the correct physical screen size again, respecting per-screen DPI scaling.
-
- 12 2月, 2021 3 次提交
-
-
The Chromium sandbox is conflicting with the Flatpak sandbox in a non-trivial, non-workaroundable way. Until Chromium / CEF provides a way to unconditionally disable the entire sandbox, let's not degrade the Flatpak experience.
-
由 Jim 提交于
EGL/Wayland (Wayland, pt 3)
-
由 jp9000 提交于
This reverts commit 36ab7b97. The fact that a transition is a composition of two scenes was not factored into the merging of this PR. Thus, it would apply to the underlying scenes when transitioning, making the effectiveness of this feature cause inconsistent rendering of the underlying scenes when transitions are activated versus when they're not.
-
- 09 2月, 2021 14 次提交
-
-
This is a workaround for QWaylandWindow never becoming exposed, or receiving the QEvent::Expose [1]. [1] https://bugreports.qt.io/browse/QTBUG-86176
-
This will be used by a new event filter, added only when running as a Wayland client, to force creating the obs_display instance even when not exposed.
-
This is a dangerous operation on Wayland, and is crashing not only OBS Studio but also the whole compositor. Let's disable it for now when running as a native Wayland client. Some compositors (GNOME Shell, Plasma) still allow setting this option on the window menu.
-
The sizeChanged callback is connected to the screenChanged signal, and evidently the naming doesn't match. Rename the callback to match the signal name.
-
Right after showing the OBSQTDisplay widget, it may happen that a wl_surface is not yet created and attached to the window. When this happens, creating the OBS display results in a crash. Make QTToGSWindow return a boolean, indicating success or failure, and don't create the OBS display on failure.
-
When a window is made invisible, then visible again, the obs_display is reused. Turns out, QT destroys the wl_surface associated with the previewer on Wayland. However, the EGL surface created on top of this wl_surface is not, and any attempt to attach a new buffer to it will crash OBS. Destroy the obs_display when becoming invisible, and when running as a Wayland client. Also nullify the display variable on destruction, to avoid subclasses double-freeing the obs display.
-
On Wayland, we want to query the window's underlying platform for the Wayland surface, instead of foolishly retrieving the X11 display. Pass QWindow instead of WId directly, and set the surface as the platform data on Wayland systems.
-
Introduce a new Wayland/EGL renderer.
-
We need to ensure we're running all X11 code on the same display.
-
Introduce the OBS_NIX_PLATFORM_WAYLAND enum value, and try to detect it when OBS Studio runs by looking into the platform name.
-
由 Clayton Groeneveld 提交于
This adds a menu item in the transitions config menu to access filters for stinger transitions.
-
由 poccariswet 提交于
-
由 Jim 提交于
decklink-ui: fix double free of settings
-
由 Fred Emmott 提交于
This leads to a crash when the output is stopped, either by clicking the stop button or when exiting OBS studio. This crash is: - intermittent in release builds - reliable for me in debug builds It is held by an `OBSData`, which, if not null, will automatically call `obs_data_release()` on scope exit.
-
- 08 2月, 2021 3 次提交
-
-
由 Jim 提交于
obs-transitions: Track Matte support for Stinger Transitions
-
由 Andrés Barreiro 提交于
-
由 Hernán 提交于
-
- 07 2月, 2021 4 次提交
-
-
由 Stéphane Lepin 提交于
-
由 Stéphane Lepin 提交于
-
由 Stéphane Lepin 提交于
This adds the ability to use a secondary black-and-white video as a mask between source A and B of the transition. The greyscale value of each pixel is used as the "slider" value in a linear interpolation between the corresponding pixels in source A and source B. The track matte can either be in the same file as the stinger itself (next to the stinger or under the stinger, doubling the width or height of the stinger depending of the selected layout) or a in a separate dedicated file. The same file/separate file behavior is controlled by the "Matte Layout" option in the stinger settings.
-
由 jp9000 提交于
Fixes a bug where the notify object existed after source deletion
-
- 06 2月, 2021 1 次提交
-
-
由 jp9000 提交于
Probably long time coming, but when the user changes their default audio device in Windows sound settings, OBS will now detect it and change the audio device automatically to the new device if it was set to use the "Default" device.
-
- 05 2月, 2021 1 次提交
-
-
由 jpark37 提交于
Use _ARM_BARRIER_ISH for ARM path. Remove useless conversion in os_atomic_load_bool.
-
- 04 2月, 2021 7 次提交
-
-
由 jpark37 提交于
Use native instructions on ARM64 (dmb is slow). Use magic number for 32-bit ARM since _ARM64_BARRIER_ISH is for ARM64.
-
Makes the crashlog a little nicer to read.
-
由 tt2468 提交于
-
由 tt2468 提交于
-
由 jpark37 提交于
Use function that updates previous value automatically. Also load initial value seq_cst to be safe.
-
由 jpark37 提交于
-
由 jpark37 提交于
Add exchange functions to alias the poorly named set functions. Add store without reading previous. Faster on non-x86 processors. Add compare-exchange that updates previous to avoid redundant fetch. On Windows, load bool without conversion from char. On Windows, load using mov with compiler barrier. Still seq_cst. On POSIX, use GCC __atomic builtins.
-
- 03 2月, 2021 2 次提交
-
-
由 Hector Martin 提交于
df4eb821 fixed a bug that caused source audio timestamps to perpetually lag. However, there is a deeper issue where after we reach max buffering, lagging sources make OBS's entire audio pipeline fall over. These may be corrected by later code, but still cause global audio glitches at best. Persistent problems, as prior to df4eb821, cause audio to fail entirely. The root cause is that OBS's audio mixing tree cannot deal with timestamps prior to the current audio tick. Intermediate mixing stages assume that the lowest incoming timestamp is the base of the current tick, and mix accordingly. This propagates lagged timestamps up the tree, where at the top level mix_audio will drop the source entirely - which at this point is a transition covering all inputs, thus glitching audio globally. Where extra buffering can cover the slip, the entire mix gets retried and the error corrected, but when the global buffer duration is maxed out, it makes it to the output. The solution is to catch laggy sources immediately after rendering, and drop audio to bring them back in sync, or mark them pending if not enough audio is available. This ensures later mixing stages are not fed with out of sync timestamps. This improves the ignore_audio code to only drop as much audio as needed to bring the source back in sync, and moves its call to immediately after source audio rendering.
-
由 Hector Martin 提交于
This is a safety against sources which somehow end up with audio_pending=false but ts=0. Other codepaths guard against this too.
-
- 02 2月, 2021 2 次提交
-
-
由 Doug Kelly 提交于
This adds additional capture presets, including 3840x2160 and 1920x1080, in addition to the preset "High." These are guarded with a runtime check using the @Available() keyword for macOS 10.15+.
-
由 jp9000 提交于
-