obs-studio/plugins/linux-capture/data/locale
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
..
ar-SA.ini
az-AZ.ini Update translations from Crowdin 2020-11-25 20:11:39 +01:00
ba-RU.ini Update translations from Crowdin 2020-09-27 23:07:27 +02:00
bg-BG.ini
bn-BD.ini Update translations from Crowdin 2017-05-20 10:18:41 +02:00
ca-ES.ini
cs-CZ.ini
da-DK.ini Update translations from Crowdin 2019-04-04 16:19:51 +02:00
de-DE.ini Update translations from Crowdin 2020-11-25 20:11:39 +01:00
el-GR.ini Update translations from Crowdin 2017-08-10 16:07:40 +02:00
en-GB.ini Update translations from Crowdin 2020-09-27 23:07:27 +02:00
en-US.ini linux-capture: Add PipeWire-based capture 2021-03-29 17:00:31 -03:00
es-ES.ini
et-EE.ini Update translations from Crowdin 2017-05-20 10:18:41 +02:00
eu-ES.ini
fa-IR.ini Update translations from Crowdin 2020-03-16 20:14:50 +01:00
fi-FI.ini
fil-PH.ini Update translations from Crowdin 2018-03-15 09:00:28 +01:00
fr-FR.ini Update translations from Crowdin 2019-02-20 22:26:07 +01:00
gd-GB.ini Update translations from Crowdin 2018-08-18 04:16:35 +02:00
gl-ES.ini Update translations from Crowdin 2019-09-17 23:21:00 +02:00
he-IL.ini
hi-IN.ini Update translations from Crowdin 2017-05-20 10:18:41 +02:00
hr-HR.ini Update translations from Crowdin 2020-09-27 23:07:27 +02:00
hu-HU.ini
id-ID.ini Update translations from Crowdin 2020-09-27 23:07:27 +02:00
it-IT.ini Update translations from Crowdin 2019-04-04 16:19:51 +02:00
ja-JP.ini Update translations from Crowdin 2016-09-28 01:17:24 +02:00
ka-GE.ini Update translations from Crowdin 2018-03-15 09:00:28 +01:00
kab-KAB.ini Update translations from Crowdin 2020-12-14 00:29:44 +01:00
ko-KR.ini Update translations from Crowdin 2017-08-10 16:07:40 +02:00
nb-NO.ini
nl-NL.ini
pl-PL.ini
pt-BR.ini Update translations from Crowdin 2020-11-25 20:11:39 +01:00
pt-PT.ini
ro-RO.ini Update translations from Crowdin 2019-09-17 23:21:00 +02:00
ru-RU.ini
sk-SK.ini Update translations from Crowdin 2018-01-22 04:55:52 +01:00
sl-SI.ini Update translations from Crowdin 2020-03-16 20:14:50 +01:00
sr-CS.ini Update translations from Crowdin 2019-04-04 16:19:51 +02:00
sr-SP.ini Update translations from Crowdin 2019-04-04 16:19:51 +02:00
sv-SE.ini Update translations from Crowdin 2019-04-04 16:19:51 +02:00
ta-IN.ini Update translations from Crowdin 2020-09-27 23:07:27 +02:00
tl-PH.ini Update translations from Crowdin 2018-03-15 09:00:28 +01:00
tr-TR.ini Update translations from Crowdin 2017-01-07 00:23:16 +01:00
uk-UA.ini Update translations from Crowdin 2020-09-27 23:07:27 +02:00
vi-VN.ini Update translations from Crowdin 2020-03-16 20:14:50 +01:00
zh-CN.ini Update translations from Crowdin 2020-09-27 23:07:27 +02:00
zh-TW.ini Update translations from Crowdin 2020-03-16 20:14:50 +01:00