Dne 02. 10. 21 v 18:02 Robert-André Mauchin napsal(a):
On 7/19/21 18:17, Ben Cotton wrote:
>
https://fedoraproject.org/wiki/Changes/WirePlumber
>
> == Summary == PipeWire currently uses a simple example session
> manager. This proposal is to move to the more powerful WirePlumber
> session manager.
>
> == Owner == * Name: [[User:Wtaymans| Wim Taymans]] * Email:
> wim.taymans(a)gmail.com
>
> == Detailed Description == PipeWire requires a session manager that
> at least needs to implements the following features:
>
> * create and configure detected devices in the system. This includes
> audio cards, video and bluetooth devices. * configure applications
> and route audio/video to/from them to the devices and filters. * keep
> track of prefered devices and volumes. * move audio/video streams
> when devices appear and disappear.
>
> PipeWire uses a simple example session manager with limited features
> and configuration options. The proposal is to move to WirePlumber.
>
> WirePlumber is built on GNOME (GObject) technologies and has
> bindings for most languages using GObject introspection.
>
> WirePlumber allows one to implement many of the rules for setup and
> configuration using small LUA scripts, which are easier to maintain
> and customize. These are some of the functions that are scriptable in
> LUA:
>
> * setup and configuration of the devices and streams. This includes
> deciding if devices and streams need to operate in 5.1 or stereo
> mode, depending on the available devices. * routing of the streams
> based on metadata of the streams (Roles) and overall state of the
> system. * volume/mute restore of devices and streams
>
>
> == Benefit to Fedora ==
>
> PipeWire currently uses a simple example session manager with mostly
> hardcoded logic and rules. This proposal wants to replace the
> session manager with a more advanced session manager, called
> WirePlumber.
>
> WirePlumber brings to following improvements
>
> * Drop-in replacement session manager for PipeWire, implements the
> exact same features as the example session manager * built with
> GObject, which provides a richer development experience and adds
> bindings for most languages * extensible with loadable modules *
> scriptable policy using small lua scripts * better integration with
> desktop settings
>
> The main benefits will be that this session manager would allow for
> more customization of the policy and rules. Initially we aim for
> feature parity with the current solution and work on more features in
> the next releases.
>
> == Scope == * Proposal owners: This is a rather isolated changed.
> Instead of starting the pipewire-media-session executable we would
> need to package and start WirePlumber instead.
>
> WirePlumber has been kept up to data with the features in the
> example session manager and would need testing.
>
> * Other developers: None. This is an isolated PipeWire change. *
> Release engineering: A new systemd service will need to be activated
> in the default install. * Policies and guidelines: N/A (not needed
> for this Change) * Trademark approval: N/A (not needed for this
> Change) * Alignment with Objectives:
>
> == Upgrade/compatibility impact == Should not cause any change.
>
> == How To Test ==
>
> Experience should be the same as before. Retest all audio testcases.
>
>
> == User Experience == Should not cause any visible change.
>
>
> == Dependencies == None.
>
> == Contingency Plan == * Contingency mechanism: (What to do? Who
> will do it?): If the feature can not be completed we continue using
> the existing pipewire-media-session. * Contingency deadline: N/A (not
> a System Wide Change) * Blocks release? N/A (not a System Wide
> Change)
>
>
> == Documentation ==
> [
WirePlumber](https://gitlab.freedesktop.org/pipewire/wireplumber)
>
>
Just switched to F35 beta, no sound card was detected, I had to get back
to pipewire-media-session to get sound again.
I was fighting with something similar on Friday and I think the solution
was something like:
~~~
$ systemctl --no-reload preset --global pipewire-pulse.service
$ systemctl --no-reload preset --global pipewire-pulse.socket
~~~
The symptoms were that one or both of these services had this line in
their `status` output:
~~~
Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.socket; disabled;
vendor preset: enabled)
~~~
I don't really how to figure what "disables" the unit file, assuming
that enabling the pipewire-pulse.* was the right thing to do.
Vít