fdce267a9a
Intead of creating one pair of GDBusConnection + GDBusProxy objects for each PipeWire capture, be it window or desktop, use the global ones managed by portal.c. Even if g_bus_get_sync() ends up reusing the same object under the hood, it's still a net gain, since it has to perform some thread synchronization routines that aren't necessary here. Creating the proxy object was a worse offender, because despite being asynchronous, it would still incur in a few socket messages + a cancellable fd + thread synchronization. Reuse these objects from portal.c. The biggest code change here is that create_proxy() and on_proxy_created_cb() were merged into init_obs_pipewire(). |
||
---|---|---|
.. | ||
data/locale | ||
CMakeLists.txt | ||
README | ||
linux-capture.c | ||
pipewire-capture.c | ||
pipewire-capture.h | ||
pipewire.c | ||
pipewire.h | ||
portal.c | ||
portal.h | ||
xcompcap-helper.cpp | ||
xcompcap-helper.hpp | ||
xcompcap-main.cpp | ||
xcompcap-main.hpp | ||
xcomposite-main.cpp | ||
xcursor-xcb.c | ||
xcursor-xcb.h | ||
xcursor.c | ||
xcursor.h | ||
xhelpers.c | ||
xhelpers.h | ||
xshm-input.c |
README
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