Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add App to App ScreenCast #1554

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from
Draft

Conversation

tytan652
Copy link
Contributor

@tytan652 tytan652 commented Jan 5, 2025

Related to N°1 case of #1141
Related to Goal: Peer-to-peer media sharing

This PR introduce the concept of ScreenCast provider allowing apps to share their own DMABUF sharing (no encoded video) to other apps.

This is mainly done through a P2P D-Bus connection between the provider and the portal impl, with an interface implemented by the app that serves as a provider.

This feature requires to allow the session manager to link node where their owner do not see the other node, which require PW_PERM_L. For now a WirePlumber lua script is provided to add the permission.

Interface documentation needs work and it's not my cup of tea, so I also open the to get help and feedback.

Note that the new interface is made with in mind the potential addition of audio stream.
And the feature is not dependent on GDBus, I have a sd-bus project not meant to be a demo that handle the connection and source listing properly.

Application impl demo, note that the DMA-BUF node is broken, I have difficulty to get around PipeWire documentation and API.

xdg-desktop-portal-gnome impl, not put as MRs for now

Don't hesitate to ask if I missed to specify something.

Requires the server to support PW_PERM_L
Avoids to burden the portal impl with provider sessions request unless they explicitly support external sources.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Needs Triage
Development

Successfully merging this pull request may close these issues.

1 participant