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
snapcraft: Include libpipewire plus the GStreamer pipewire elements #186
Conversation
I've also added With these changes, the platform snap is about 3 MB larger than what's published on edge. That's a bit more conservative than #181. |
Thanks, that makes sense to me. I do wonder if we should try to build a pipewire more recent than the jammy one though since the version there is quite outdated and there has been quite some work done upstream since (some might be needed for the portals to work properly?) |
This looks good, but I agree with @seb128, it would be a good idea to build a later version of libpipewire. I had to build later versions format least 2 snaps recently. |
The camera portal seems to function okay with the 22.04 version of pipewire. As does the screen-sharing portal, as exercised by Firefox. One thing I have discovered is that mixing versions between libpipewire and its modules will likely lead to segfaults. This was the case when I was testing the I suspect if we'd see a related crash in the Firefox snap if we were to ship new pipewire here:
So with a new pipewire in the platform snap, we'd be mixing old libpipewire with new plugins. Unless there are known problems in the old pipewire, I'd be inclined to stick with it. |
PipeWire 1.0.0 has been released (2023-11-26)
|
James' argument is reasonable there, should we merge the change as proposed to unblock things? We can always iterate with another change to update pipewire later if wanted |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
I've merged it now so we get a build in candidate which we can try. With those changes and the environment set up from snapcore/snapcraft-desktop-integration#20 (needs to be reviewed next) I've got ashpd-demo to work with the camera portal locally. |
Even with this, I am unable to play videos using pipewire
|
To make use of the various pipewire-related portal APIs, we need
libpipewire
. Most will also use thepipewiresrc
GStreamer element.I've also explicitly staged the "base" and "good" GStreamer plugins. They were already included as as dependencies of other packages, but I think we want to be explicit about including these particular elements in the snap.
Note that to actually use libpipewire, we need to set a number of environment variables. This will require a companion PR to snapcraft-desktop-integration: snapcore/snapcraft-desktop-integration#20