1
0
mirror of https://invent.kde.org/network/krfb synced 2024-07-03 08:28:35 +00:00
Commit Graph

40 Commits

Author SHA1 Message Date
Prajna Sariputra
f071ad4eba wayland: Add support for the persistence feature of the remote desktop portal
Same idea as https://invent.kde.org/network/kdeconnect-kde/-/merge_requests/639, v2 of the remote desktop portal can accept and return a restore token that we can use to avoid constantly asking the user for permission every time Krfb is started.

Note that there's a bug in `xdg-desktop-portal-kde` that breaks persistence if it's restarted for whatever reason, for example when rebooting (see https://bugs.kde.org/show_bug.cgi?id=480235 and https://invent.kde.org/network/kdeconnect-kde/-/merge_requests/639#note_859651 for more details), so at the moment this only works when restarting Krfb in the same session.
2024-06-01 12:27:07 +00:00
Aleix Pol
0d3a38f39e pw: Fix build with last released KPipeWire release 2024-05-01 23:04:49 +02:00
Yaroslav Sidlovsky
6e7a5ba569 Fixed crash calling PWFrameBuffer::cursorPosition()
Return default QPoint when `d->cursor` is not set.

BUG: 472453
2024-04-22 17:06:36 +03:00
Aleix Pol
378472f8b2 pw: Improve fb allocation code.
Don't set the video size using the data coming from xdp, instead use the
data coming from pipewire, which is what matters.
Also make sure setVideoSize is called before using the buffer rather
than after.
2024-03-13 00:35:21 +01:00
Aleix Pol
a87302156a wayland: Adapt to change in kpipewire 2024-01-19 01:49:12 +01:00
Nicolas Fella
39c83720bf Remove module from KPipeWire includes
This doesn't work in KF6
2024-01-08 01:02:22 +01:00
Aleix Pol
9c7f354f72 pipewire: Drop dependencies that remained after the port to KPipeWire 2023-04-23 19:15:51 +02:00
Aleix Pol i Gonzalez
4db9c65083 pipewire: Port to use KPipeWire
Rather than using pipewire directly, we can use this framework which
allows us to share a bunch of code with Plasma.
2023-01-12 13:48:46 +00:00
Nicolas Fella
4169a9f50a Don't pass unused window ids around
The wid is only relevant for the xcb framebuffer

We can just query it there, no need to pass it around everywhere
2022-08-03 22:00:16 +02:00
Jan Grulich
96eb21da35 PipeWire fb: process cursor metadata even for empty buffer
It is possible to have zero data in the buffer, but have the
buffer to carry metadata about the mouse cursor. In that case
we should try to process the cursor metadata before we discard
the buffer for not having any data.
2022-01-05 11:39:29 +01:00
Aleix Pol
1d23966d79 pipewire: Support SPA_META_VideoDamage
Inform about the regions that changed so everything doesn't need to be
sent on every frame.
2021-11-03 14:28:54 +00:00
Aleix Pol
61d464676c pipewire: Support cursors 2021-11-03 14:28:54 +00:00
Aleix Pol
4707bde236 Introduce krfb-virtualmonitor
It implements a KWin protocol that is oriented towards serving a virtual
display specifically.
It requests KWin a stream that will act as a monitor that we can feed
into remote clients.
2021-10-29 14:05:34 +00:00
Laurent Montel
c729e9e048 Modernize code 2021-07-09 08:53:14 +02:00
Aleix Pol
b8f972d59e Fix crash when the destination stride != source stride
When we allocate the locally mapped texture size, use the announced
stride (aka bytes per line) instead of the texture width. Otherwise we
might overflow and crash eventually.

BUG: 438815
2021-06-17 21:03:56 +02:00
Ömer Fadıl Usta
3a1a5ad7a2 Add missing check for HAVE_DMA_BUF 2021-06-03 09:15:48 +00:00
Ömer Fadıl Usta
8e667abe69 Fix typo on epoxy variablename revert ifdef back to if 2021-06-03 09:05:48 +00:00
Ömer Fadıl Usta
2e82546012 Fix cmakedefine parts and increase cmake version 2021-06-03 07:30:29 +00:00
Jan Grulich
acc70e4cee PipeWire support improvements 2021-06-02 12:25:00 +00:00
Jan Grulich
4f2861415a Revert "Improve PipeWire code"
This reverts commit eb1dc503bd.

Revert "Add dma-buf defines to build dma-buf support everywhere"

This reverts commit 8f0de62401.

Revert "Drop support for PipeWire 0.2"

This reverts commit 028ac099ea.

These were accidentally pushed without review. They were meant
to be pushed to my fork instead.
2021-05-21 14:12:23 +02:00
Jan Grulich
eb1dc503bd Improve PipeWire code
- add support for VideoCrop metadata
- add support for memptr buffer type
2021-05-21 14:09:10 +02:00
Jan Grulich
8f0de62401 Add dma-buf defines to build dma-buf support everywhere 2021-05-21 09:31:51 +02:00
Jan Grulich
028ac099ea Drop support for PipeWire 0.2 2021-05-21 09:22:45 +02:00
Aleix Pol
f041cdf095 pipewire: Support BGRA
It's not supported by QImage, so we need to do it ourselves by swapping
the B and the R.
2021-01-22 00:58:34 +00:00
Tobias Junghans
de7050d8b7 pipewire: fix version check 2020-10-23 14:59:08 +02:00
Tobias Junghans
a109e3d6c9 Use auto keyword where possible 2020-10-23 10:54:59 +02:00
Tobias Junghans
4993e65d59 Include C headers in C++ style 2020-10-23 10:52:23 +02:00
Tobias Junghans
d91bbdcb05 Use QStringLiteral to avoid runtime allocations 2020-10-23 10:51:02 +02:00
Tobias Junghans
1d429a9bc6 Add missing member variable initializations 2020-10-23 10:49:57 +02:00
Tobias Junghans
2b9cb5c58c pipewire: remove QX11Info include
The plugin neither uses QX11Info nor links against Qt5::X11Extras.
2020-10-22 08:48:17 +00:00
Ömer Fadıl Usta
7ba81f52df Remove doubled parts and fix compile for systems without pipewire
SPA_DATA_DmaBuf checking was written twice which needs on pipewire
2020-09-19 11:02:41 +03:00
Aleix Pol
b9efda5956 Merge branch 'release/20.08' into master 2020-09-19 00:31:35 +02:00
Aleix Pol
8afd5c8df2 pipewire: Only aspire to use dmabuf if linux/dma-buf.h is present 2020-09-18 18:16:42 +02:00
Ömer Fadıl Usta
ef6b3a6093 Fixes for builds without pipewire3
Because of some parts still available without PW_CHECK_VERSION check
the systems without pipewire3 couldnt able to compile code.
2020-09-18 16:58:08 +02:00
Aleix Pol
c5d6abab58 Port pipewire to use QLoggingCategory 2020-09-16 00:38:03 +02:00
Aleix Pol
c5e157fa82 Support DMABuf streams 2020-09-15 16:15:41 +02:00
Aleix Pol
3e00ff22f9 Support DMABuf streams 2020-09-15 16:14:06 +02:00
Jan Grulich
92c9905f36 PW framebuffer: support upcoming PipeWire 0.3
Summary: Adds support for slightly different PipeWire API.

Test Plan: Tested with xdg-desktop-portal-kde and new pipewire.

Reviewers: Kanedias

Reviewed By: Kanedias

Differential Revision: https://phabricator.kde.org/D27287
2020-02-26 14:22:27 +01:00
Alexey Min
656c90916c Fix unused variable warning 2019-07-07 14:06:46 +03:00
Jan Grulich
c05707884c Implement Wayland support using PipeWire and xdg-desktop-portal
Summary:
Adds a new framebuffer implementation, which uses xdg-desktop-portal to support remote
desktop on Wayland and uses PipeWire to deliver the screen content. So far only mouse
support is implemented, because keyboard support is missing on KWin side.

Reviewers: Kanedias, romangg

Reviewed By: Kanedias

Subscribers: asturmlechner, pino, ngraham, romangg

Differential Revision: https://phabricator.kde.org/D20402
2019-05-24 13:51:43 +02:00