Re: F35 Change: Switch to WirePlumber as the PipeWire session manage (late Self-Contained Change proposal)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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@xxxxxxxxx

== 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
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux