obs-studio/plugins/linux-capture
Georges Basile Stavracas Neto ef0540c0d7 linux-capture: Lookup session handle without typechecks
g_variant_lookup() obligatorily receives the type of the variant to
lookup. This function is used when retrieving the session handle
from the portal's response, and the variant type passed is "s" (a
string).

However, xdg-desktop-portal had a bug: the documentation explicitly
mentions that the session handle is an object path (of variant type
"o"), but it passed a string (of variant type "s"). This mismatch
was fixed in the xdg-desktop-portal release 1.10 [1], but that broke
the PipeWire capture code, which was passing specifically the "s"
value to the variant lookup.

Fix this by not checking the variant type at all. Object paths ("o")
are simply strings with a few extra checks, and we don't actually need
to perform these checks.

This change probably broke other apps, and that makes me extremely sad :(

[1] https://github.com/flatpak/xdg-desktop-portal/pull/609
2021-09-17 08:36:56 -07:00
..
data/locale Update translations from Crowdin 2021-06-11 07:18:15 -07:00
CMakeLists.txt linux-capture: Conditionally register PipeWire captures 2021-06-30 01:51:02 -07:00
linux-capture.c linux-capture: Load XSHM capture on EGL/X11 2021-08-15 00:13:00 -07:00
pipewire-capture.c linux-capture: Conditionally register PipeWire captures 2021-06-30 01:51:02 -07:00
pipewire-capture.h linux-capture: Add PipeWire-based capture 2021-03-29 17:00:31 -03:00
pipewire.c linux-capture: Lookup session handle without typechecks 2021-09-17 08:36:56 -07:00
pipewire.h linux-capture: Add PipeWire-based capture 2021-03-29 17:00:31 -03:00
portal.c linux-capture: Add getters for portal's D-Bus connection and proxy 2021-06-30 01:51:02 -07:00
portal.h linux-capture: Add getters for portal's D-Bus connection and proxy 2021-06-30 01:51:02 -07:00
README Rename linux-xshm module to linux-capture 2014-08-29 17:19:30 -07:00
xcompcap-helper.cpp linux-capture: Remove unused code 2021-01-24 16:36:41 -08:00
xcompcap-helper.hpp linux-capture: Remove unused code 2021-01-24 16:36:41 -08:00
xcompcap-main.cpp Merge pull request #3047 from MaZderMind/bugfix/3040 2021-02-01 14:18:12 -08:00
xcompcap-main.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
xcomposite-main.cpp UI: Add source icons 2019-11-24 20:50:42 -08:00
xcursor-xcb.c linux-capture: Support linear SRGB 2021-01-21 07:42:57 -08:00
xcursor-xcb.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
xcursor.c linux-capture: Support linear SRGB 2021-01-21 07:42:57 -08:00
xcursor.h linux-capture: Fix cursor draw bug when cropping window cap. 2019-11-20 22:09:47 -08:00
xhelpers.c linux-capture: Use RandR monitors for screen information 2020-03-13 18:29:35 -07:00
xhelpers.h linux-capture: Use RandR monitors for screen information 2020-03-13 18:29:35 -07:00
xshm-input.c linux-capture: Add OBS_SOURCE_SRGB flag 2021-05-03 01:19:56 -07:00

Linux XShm capture plugin

  This plugin uses the MIT-SHM extension for the X-server to capture the
  desktop.

Todo:

 - handle resolution changes of screens
 - handle adding/removing screens while recording
 - support different depths

Contributing:

  If you are interested in helping out with the plugin, please drop by in the
  #obs-dev channel on quakenet.

References:
 - http://www.x.org/releases/current/doc/xextproto/shm.html