Move screencasting to KWin
AbandonedPublic

Authored by apol on Apr 20 2020, 4:46 PM.

Details

Reviewers
jgrulich
Group Reviewers
KWin
Summary

3rd part of the change started by D28882 and D28884.

Instead of implementing KWayland::Server::RemoteAccess, we implement
KWayland::Server::Screencasting and deal with it with ScreenCastStream
that used to be in xdg-desktop-portal.

This allows us to offer video streams directly from kwin rather than
building them from the outside (be it xdg-desktop-portal or otherwise).

Test Plan

Not much yet

Diff Detail

Repository
R108 KWin
Branch
screencast
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 25839
Build 25857: arc lint + arc unit
apol created this revision.Apr 20 2020, 4:46 PM
Restricted Application added a project: KWin. · View Herald TranscriptApr 20 2020, 4:46 PM
Restricted Application added a subscriber: kwin. · View Herald Transcript
apol requested review of this revision.Apr 20 2020, 4:46 PM

I think we can drop support for PipeWire 0.2 (you don't seem to search for it anyway) so you can drop all PW_CHECK_VERSION(0, 2, 90) and keep just the branch for PipeWire 0.3. I will do some proper testing tomorrow.

apol updated this revision to Diff 80671.Apr 20 2020, 5:32 PM

Remove pipewire 0.2 support

apol updated this revision to Diff 80678.Apr 20 2020, 6:07 PM

Adapt to changes in kwayland

apol updated this revision to Diff 80799.Apr 21 2020, 5:58 PM

Naming

apol updated this revision to Diff 80820.Apr 22 2020, 12:01 AM

Offer the right buffer size

jgrulich added inline comments.Apr 23 2020, 7:56 AM
plugins/platforms/drm/screencaststream.cpp
38

xdp-kde-screencast-stream → kwin_screencast_stream?

apol updated this revision to Diff 80986.Apr 23 2020, 11:34 AM

Adapt to kwayland changes, provide the buffer size.

I have tested this and it now works as before, tested with Chromium, while checking all the values we pass to the portal and PipeWire which seem to be correct.

davidedmundson added inline comments.
plugins/platforms/drm/egl_gbm_backend.cpp
226

where does stream get deleted in the case were things don't fail?

apol updated this revision to Diff 81028.Apr 23 2020, 5:20 PM

Cleanup streams when done with them.

apol updated this revision to Diff 81114.Apr 24 2020, 4:57 PM

Adapt to changes in the kwayland patch

apol updated this revision to Diff 81342.Apr 27 2020, 2:10 PM

Include zkde_screencast_unstable_v1 in the restricted protocols

apol updated this revision to Diff 82649.May 12 2020, 11:34 AM

Support for window streaming

apol updated this revision to Diff 82673.May 12 2020, 4:51 PM

Add missing file, fix rendering of some surfaces

apol updated this revision to Diff 82867.May 14 2020, 4:02 PM

Rebase

apol abandoned this revision.Jul 26 2020, 1:03 PM