Repository navigation
linux-pipewire: Use serials to select nodes when available - #14064
Open
MonterraByte wants to merge 1 commit into
Open
MonterraByte wants to merge 1 commit into
MonterraByte wants to merge 1 commit into
Conversation
Node IDs can be reused after the node is destroyed. Serials are not reused, they increase monotonically. For this reason, PipeWire has deprecated the use of IDs to specify target nodes. The ScreenCast portal provides this serial as of version 6. This commit just forwards it to PipeWire.
|
changes look sensible to me |
Collaborator
|
Not a bug fix, feel free to update the "Types of changes" properly. |
Author
|
It does fix a bug (capturing the wrong window), and I don't see what other type would be more appropriate. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This changes the PipeWire implementation so that it uses a serial provided by the ScreenCast portal instead of the node ID when selecting the node to capture.
The minimum version of PipeWire was raised to 0.3.44, which is where
PW_KEY_TARGET_OBJECTwas added. (Though even that is rather old, being from 2022.)(The Camera portal still uses node IDs, I haven't changed that. Not sure if it's even needed.)
Motivation and Context
Node IDs can be reused after the node is destroyed. This can cause OBS to capture other windows or screens than the one selected for capture after it is closed/disconnected.
On the other hand, serials are not reused, they increase monotonically. For this reason, PipeWire has deprecated the use of IDs to specify target nodes. The ScreenCast portal provides this serial as of version 6.
How Has This Been Tested?
Screen capture was tested on Arch Linux with KDE Plasma, and Fedora 45 with GNOME.
Camera capture was also tested on Fedora 45 with GNOME.
Types of changes
Checklist: