9320 Commits

Author SHA1 Message Date
wangshaohui
81c4750fbf UI: Fix UI deadlock after dragging source
Fixes obsproject/obs-studio#2609
2021-03-30 05:49:00 -07:00
Vainock
3267f76c15 UI: Fix Horizontal Center Text
The horizontal center redo/undo works, but uses the vertical center string.
2021-03-30 05:25:13 -07:00
Kurt Kartaltepe
058f009746 cmake: Improve OBS_VERSION undefined failure
If someone tries to build without git they need to set
OBS_VERSION_OVERRIDE, this makes the error message occur before things
like string parsing on the OBS_VERSION which look like missing
parameters.
2021-03-30 04:56:18 -07:00
floele
44c38e71cc obs-ffmpeg/ffmpeg-mux: Fix hang without global_stream_key
If DEBUG_FFMPEG_MUX is enabled, when starting a recording without
configuring global_stream_key, obs-ffmpeg-mux will hang. Apply same
check to global_stream_key as in init_params() to prevent this.
2021-03-30 04:55:33 -07:00
Gol-D-Ace
cc4ffff6b0
Merge pull request #4411 from Vainock/master
UI: Fix locale key name
2021-03-30 13:40:52 +02:00
Vainock
da23113e41 UI: Fix locale key name 2021-03-30 13:35:36 +02:00
Ryan Foster
d445f9f9b6 UI: Remove ifdefs for Qt 5.9 and older
Among the systems we officially support, the oldest Qt version is Qt 5.9
on Ubuntu 18.04. We should be able to safely remove these ifdefs.
2021-03-30 03:52:04 -07:00
SCG82
7225d248c3 CI: Quote all bash variables containing paths 2021-03-30 03:51:00 -07:00
Eric Lindvall
3c76fc4ddb obs-ffmpeg: Enable macOS hardware decoding for media source
Reverts  c7395b05ece4b9e204aa90984c8e29bd3eb739d9
2021-03-30 03:45:06 -07:00
Exeldro
edc439b0a5 libobs: fix property group check 2021-03-30 03:44:23 -07:00
jpark37
abf6a97ca9 obs-x264: Set CRF value conditionally
Matches value seen when encoding with FFmpeg.
2021-03-30 03:17:38 -07:00
jpark37
dd552df15c obs-x264: Set sample aspect ratio to 1:1
Matches values seen when encoding with FFmpeg.
2021-03-30 03:17:38 -07:00
jpark37
a52562a98e obs-x264: Set timebase
Matches values seen when encoding with FFmpeg.
2021-03-30 03:17:38 -07:00
Jim
e92c1fe6bc
Merge pull request #4287 from GeorgesStavracas/gbsneto/pipewire
Wayland / PipeWire capture
2021-03-30 03:16:46 -07:00
Jim
5d87f3c00b
Merge pull request #3426 from Programatic/undo_redo
UI: Implement Undo/Redo System
2021-03-30 03:16:24 -07:00
Georges Basile Stavracas Neto
d0681b6db8 CI: Disable PipeWire on Ubuntu
Unfortunately, neither Ubuntu 20.04 nor 18.04 have a recent enough
PipeWire package. Disable the PipeWire bits of linux-capture there.
The Flatpak workflow is still able to build it, so keep it enabled
there.
2021-03-29 17:00:32 -03:00
Georges Basile Stavracas Neto
706192b551 flatpak: Expose PipeWire socket
So that it can be talked to from the sandbox.
2021-03-29 17:00:31 -03:00
Georges Basile Stavracas Neto
10a1a708fb linux-capture: Return different descriptions for different captures
Use the current description for X11 / GLX, and a new description for all
PipeWire-based captures (EGL/X11 and EGL/Wayland)
2021-03-29 17:00:31 -03:00
Georges Basile Stavracas Neto
c2f8b2058b linux-capture: Add PipeWire-based capture
Add a new Linux capture based on PipeWire [1] and the Desktop portal [2].

This new capture starts by asking the Desktop portal for a screencapture session.
There are quite a few D-Bus calls involved in this, but the key points are:

 1. A connection to org.freedesktop.portal.ScreenCast is estabilished, and the
    available cursor modes are updated.

 2. CreateSession() is called. This is the first step of the negotiation.

 3. SelectSources() is called. This is when a system dialog pops up asking the
    user to either select a monitor (desktop capture) or a window (window capture).

 4. Start() is called. This signals the compositor that it can setup a PipeWire
    stream, and start sending buffers.

The reply to this fourth call gives OBS Studio the PipeWire fd, and the id of the
PipeWire node where the buffers are being sent to. This allows creating a consumer
PipeWire stream, and receive the buffers.

Metadata cursor is always preferred, but on the lack of it, we ask the stream for
an embedded cursor (i.e. the cursor is drawn at the buffer, and OBS Studio has no
control over it.)

Window capturing is implemented as a crop operation on the buffer. Compositors
can send big buffers, and a crop rectangle, and this is used to paint a subregion
of the buffer in the scene.

The new capture is only loaded when running on EGL, since it depends on EGL to
call gs_texture_create_from_dmabuf().

[1] https://pipewire.org/
[2] https://github.com/flatpak/xdg-desktop-portal/
2021-03-29 17:00:31 -03:00
Georges Basile Stavracas Neto
a0464b0f8f linux-capture: Shuffle around CMake code
In preparation for the introduction of the new PipeWire-based capture,
use variables for include_directories() and target_link_libraries(),
and move them to the bottom of the file.
2021-03-29 17:00:31 -03:00
Georges Basile Stavracas Neto
afb7bfa941 build: Include gio-unix-2.0
This will be needed for fd-passing by the new capture, specifically for
g_dbus_proxy_call_with_unix_fd_list().
2021-03-29 17:00:31 -03:00
Kurt Kartaltepe
705a47b0e4 libobs, libobs-opengl: add drm format param
This adds the drmbuf format as a parameter separate from the obs texture
format that will be used. drmbuf's may have a variety of formats that we
need to pass correctly to get a usable texture which may correspond to
multi-platform texture formats.
2021-03-29 17:00:31 -03:00
Ford Smith
d0dfae6a3c docs: Update documentation about utility functions for undo/redo 2021-03-29 03:06:26 -04:00
Ford Smith
86eb7aeb69 UI: Undo/Redo Properties and Filters
Implements undo/redo for both properties and filters. Works by creating
a new callback that gets called to save undo/redo states after a timer
is fired. Also disabled undo/redo until the actions have completed to
prevent a user from being able to disrupt the stack by perfoming actions
before others have finished.
2021-03-29 03:06:26 -04:00
Ford Smith
999495ca8c UI: Undo/Redo context bar properties
Implements undo/redo for changing of properties done through the context
bar.
2021-03-29 03:06:26 -04:00
Ford Smith
a374c023a1 UI: Undo/Redo Scene Collections
Implements undo/redo for scene collections. This includes operations
including rename, delete, and addition.
2021-03-29 03:06:26 -04:00
Ford Smith
3c5e2ddc37 UI: Undo/Redo audio
Implements undo/redo for advanced audio properties.
2021-03-29 03:06:26 -04:00
Ford Smith
3a620c485e UI: Undo/Redo Transformations
Implements undo/redo for transformations of sources, both through
preview and the transformations properties.
2021-03-29 03:06:26 -04:00
Ford Smith
60d95cb5bd UI/libobs: Undo/Redo Sources and Scenes
Implements the Undo/Redo for scenes and sources, ranging from renaming,
deletion, addition. It also adds several elements to libobs that were
designed to facilitate undo/redo, and should not affect the rest of
libobs.
2021-03-29 03:06:26 -04:00
Ford Smith
eced5a320b UI: Initial Undo/Redo
Starting to develop Undo/Redo. This just implmements the undo/redo stack
and its api.
2021-03-29 03:06:26 -04:00
Nirusu
a52012e8c5 UI: Fix canvas resolution in auto-config
Fix the returned display resolution when scaling is enabled to determine
the correct canvas resolution in the auto-config utility, using the same
approach as in 2787e63. This fixes #4298.
2021-03-25 19:25:13 -07:00
Georges Basile Stavracas Neto
b98bad1f30 flatpak: Don't specify luajit commit
luajit developers ask people to use branches instead of tarballs, however,
Flatpak interprets having both 'commit' and 'branch' fields as 'use this
branch, and this commit should be at the top of the branch', which is not
really what we want.

Remove the specified commit from the Flatpak manifest.
2021-03-24 11:17:50 +11:00
Matt Gajownik
662648bd98 obs-browser: Update version to 2.14.1
Fixes building on Ubuntu 18.04.
2021-03-23 21:51:30 +11:00
jp9000
ad628eb2e0 obs-browser: Update version to 2.14.0 2021-03-22 22:59:04 -07:00
Richard Stanway
6424901120 win-dshow: Check return value of ReadFile 2021-03-23 03:15:07 +01:00
Richard Stanway
45643adb03 win-dshow: Check return values for memory allocation functions
Since some of these run inside the virtual cam module, we should be a
good guest and not crash the host process if we run out of memory.
2021-03-23 03:07:22 +01:00
Richard Stanway
670156db8b win-dshow: Fix incorrect variable used in condition 2021-03-23 02:49:44 +01:00
Richard Stanway
5c8587eab3 win-dshow: Don't call DisableThreadLibraryCalls in virtualcam
Per MSDN: Do not call this function from a DLL that is linked to the static C
run-time library (CRT). The static CRT requires DLL_THREAD_ATTACH and
DLL_THREAD_DETATCH notifications to function properly.
2021-03-23 02:49:44 +01:00
wangshaohui
f316762a2a win-dshow: Fix memory leak caused by using incorrect API 2021-03-22 13:59:22 -07:00
Ford Smith
eaf992119f libobs: Fix obs_data_item_numtype returning null in some cases 2021-03-22 15:45:59 -04:00
Ford Smith
7fc539c3c4 text-freetype2: Updated defaults
Adds several more settings to the defaults for the text objects.
2021-03-22 15:45:00 -04:00
Ford Smith
31e5d2e5e3 libobs: Implement obs_data_get_defaults
Implements obs_data_get_defaults and updates the documentation. This is
supposed to allow someone to access all the defaults of an object.
Should help in cases where the full data is needed, and not just the
currently set.
2021-03-22 15:44:56 -04:00
jp9000
535e7dfa15 obs-vst: Update to latest version 2021-03-22 12:42:54 -07:00
Lin
c83eaaa51c libobs-d3d11: Default to Intel IGPU on IGPU+DGPU systems
On systems that have both Intel iGPU and Intel dGPU at the same time,
default/prioritize running OBS the iGPU instead to improve performance.
The user can still choose the dGPU if they change the adapter index, but
the adapter index will now be the second value instead of the first
value. (-Jim)
2021-03-21 22:45:08 -07:00
Lin
1e106c8bb8 libobs-d3d11: Split InitFactory to InitAdapter
Splits off the adapter initialization to its own function so we can
modify what happens in between those actions. (-Jim)
2021-03-21 22:45:08 -07:00
Faeez Kadiri
85334d562f rtmp-services: Add Dacast 2021-03-21 22:44:02 -07:00
jp9000
6afb6d9c9f rtmp-services: Move service-specific files
Cleans up the directory a bit
2021-03-21 02:46:01 -07:00
Anton Bershanskiy
fc9716f0dd libobs: fix property group check 2021-03-20 12:37:00 -07:00
jpark37
10c43f19c0 obs-ffmpeg: Missing NVENC bounds check 2021-03-20 12:35:49 -07:00
jpark37
4404422082 obs-ffmpeg: Replace cast with numeric literal 2021-03-20 12:35:49 -07:00