- Add patch from upstream to remove the "clear-persistent"
sub-command and add a "settings" sub-command:
* 0001-wpctl-add-settings-subcomand-to-show_-delete-or-change.patch
- Update to version 0.4.82 (0.5.0 pre-release 2)
* Highlights:
- Bluetooth auto-switching is now implemented with a virtual
source node. When an application links to it, the actual
device switches to the HSP/HFP profile to provide the real
audio stream. This is a more robust solution that works with
more applications and is more user-friendly than the previous
application whitelist approach
- Added support for dynamic log level changes via the PipeWire
settings metadata. Also added support for log level patterns
in the configuration file
- The "persistent" (i.e. stored) settings approach has changed
to use two different metadata objects: sm-settings and
persistent-sm-settings. Changes in the former are applied in
the current session but not stored, while changes in the
latter are stored and restored at startup. Some work was also
done to expose a wpctl interface to read and change these
settings, but more is underway
- Several WirePlumber-specific node properties that used to be
called target.* have been renamed to node.* to match the
PipeWire convention of node.dont-reconnect. These are also
now fully documented
* Other changes:
- Many documentation updates
- Added support for SNAP container permissions
- Fixed multiple issues related to restoring the Route
OBS-URL: https://build.opensuse.org/request/show/1147639
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=66
- Update to version 0.4.16:
* Additions:
- Added a new "sm-objects" script that allows loading objects
on demand via metadata entries that describe the object to
load; this can be used to load pipewire modules, such as
filters or network sources/sinks, on demand
- Added a mechanism to override device profile priorities in
the configuration, mainly as a way to re-prioritize Bluetooth
codecs, but this also can be used for other devices
- Added a mechanism in the endpoints policy to allow connecting
filters between a certain endpoint's virtual sink and the
device sink; this is specifically intended to allow plugging
a filter-chain to act as equalizer on the Multimedia endpoint
- Added wp_core_get_own_bound_id() method in WpCore
* Changes:
- PipeWire 0.3.68 is now required
- policy-dsp now has the ability to hide hardware nodes behind
the DSP sink to prevent hardware misuse or damage
- JSON parsing in Lua now allows keys inside objects to be
without quotes
- Added optional argument in the Lua JSON parse() method to
limit recursions, making it possible to partially parse a
JSON object
- It is now possible to pass nil in Lua object constructors
that expect an optional properties object; previously,
omitting the argument was the only way to skip the properties
- The endpoints policy now marks the endpoint nodes as
"passive" instead of marking their links, adjusting for the
behavior change in PipeWire 0.3.68
- Removed the "passive" property from si-standard-link, since
OBS-URL: https://build.opensuse.org/request/show/1128888
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=63
- Update to version 0.4.15:
* Additions:
- A new "DSP policy" module has been added; its purpose is to
automatically load a filter-chain when a certain hardware
device is present, so that audio always goes through this
software DSP before reaching the device. This is mainly to
support Apple M1/M2 devices, which require a software DSP
to be always present
- WpImplModule now supports loading module arguments directly
from a SPA-JSON config file; this is mainly to support DSP
configuration for Apple M1/M2 and will likely be reworked
for 0.5
- Added support for automatically combining Bluetooth LE Audio
device sets (e.g. pairs of earbuds) (!500)
- Added command line options in wpctl to display device/node
names and nicknames instead of descriptions
- Added zsh completions file for wpctl
- The device profile selection policy now respects the
device.profile property if it is set on the device; this is
useful to hand-pick a profile based on static configuration
rules (alsa_monitor.rules)
* Changes/Fixes:
- Linking policy now sends an error to the client before
destroying the node, if it determines that the node cannot be
linked to any target; this fixes error reporting on the
client side
- Fixed a crash in suspend-node that could happen when
destroying virtual sinks that were loaded from another
process such as pw-loopback
- Virtual machine default period size has been bumped to 1024
OBS-URL: https://build.opensuse.org/request/show/1117592
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=60
- Update to version 0.4.9:
* Fixes:
- restore-stream no longer crashes if properties for it are not
present in the config (#190)
- spa-json no longer crashes on non-x86 architectures
- Fixed a potential crash in the bluetooth auto-switch module
(#193)
- Fixed a race condition that would cause Zoom desktop audio
sharing to fail (#197)
- Surround sound in some games is now exposed properly
(pipewire#876)
- Fixed a race condition that would cause the default source &
sink to not be set at startup
- policy-node now supports the 'target.object' key on streams
and metadata
- Multiple fixes in policy-node that make the logic in some
cases behave more like PulseAudio (regarding nodes with the
dont-reconnect property and regarding following the default
source/sink)
- Fixed a bug with parsing unquoted strings in spa-json
* Misc:
- The policy now supports configuring "persistent" device
profiles. If a device is manually set to one of these
profiles, then it will not be auto-switched to another
profile automatically under any circumstances (#138, #204)
- The device-activation module was re-written in lua
- Brave, Edge, Vivaldi and Telegram were added in the bluetooth
auto-switch applications list
- ALSA nodes now use the PCM name to populate node.nick, which
is useful at least on HDA cards using UCM, where all outputs
OBS-URL: https://build.opensuse.org/request/show/964074
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=35
- Update to version 0.4.8:
* Highlights:
- Added bluetooth profile auto-switching support. Bluetooth
headsets will now automatically switch to the HSP/HFP profile
when making a call and go back to the A2DP profile after the
call ends (#90)
- Added an option (enabled by default) to auto-switch to
echo-cancel virtual device nodes when the echo-cancel module
is loaded in pipewire-pulse, if there is no other configured
default node
* Fixes:
- Fixed a regression that prevented nodes from being selected
as default when using the pro-audio profile (#163)
- Fixed a regression that caused encoded audio streams to stall
(#178)
- Fixed restoring bluetooth device profiles
* Library:
- A new WpSpaJson API was added as a front-end to spa-json.
This is also exposed to Lua, so that Lua scripts can natively
parse and write data in the spa-json format
* Misc:
- wpctl can now list the configured default sources and sinks
and has a new command that allows clearing those configured
defaults, so that wireplumber goes back to choosing the
default nodes based on node priorities
- The restore-stream script now has its own configuration file
in main.lua.d/40-stream-defaults.lua and has independent
options for restoring properties and target nodes
- The restore-stream script now supports rule-based
configuration to disable restoring volume properties and/or
OBS-URL: https://build.opensuse.org/request/show/952225
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=30
- Back to version 0.4.6, and add patches incrementally
to bisect it and find the issue
* 0001-policy-node-fix-typo-when-finding-best-target.patch
* 0002-policy-node-schedule-a-rescan-without-timeout-if-def.patch
* 0003-policy-node-find-best-linkable-if-default-one-cannot.patch
* 0004-spa-pod-fix-different-architecture-errors-for-boolea.patch
* 0005-config-update-the-endpoints-config.patch
* 0006-policy-endpoint-client.lua-fix-record-with-endpoints.patch
* 0007-default-nodes-check-if-the-ports-exist-in-rescan_om.patch
* 0008-scripts-monitors-log-warning-if-spa-devices-were-not.patch
- Remove revert from previous change:
* 0001-reversed-default-nodes-check-if-default-node-has-available-ro.patch
OBS-URL: https://build.opensuse.org/request/show/948445
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=24
- Update to version 0.4.7:
* Fixed a regression in 0.4.6 that caused the selection of the
default audio sources and sinks to be delayed until some event,
which effectively caused losing audio output in many
circumstances (glfo#pipewire/wireplumber#148,
glfo#pipewire/wireplumber#150, glfo#pipewire/wireplumber#151,
glfo#pipewire/wireplumber#153)
* Fixed a regression in 0.4.6 that caused the echo-cancellation
pipewire module (and possibly others) to not work
* A default sink or source is now not selected if there is no
available route for it (glfo#pipewire/wireplumber#145)
* Fixed an issue where some clients would wait for a bit while
seeking (glfo#pipewire/wireplumber#146)
* Fixed audio capture in the endpoints-based policy
* Fixed an issue that would cause certain lua scripts to error
out with older configuration files
(glfo#pipewire/wireplumber#158)
- Drop patches already included upstream:
* 0001-policy-node-schedule-rescan-without-timeout-if-defined-target-is-not-found.patch
* 0002-policy-node-find-best-linkable-if-default-one-cannot-be-linked.patch
OBS-URL: https://build.opensuse.org/request/show/946064
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=19
- Update to version 0.4.5:
* Fixes:
- Fixed a crash that could happen after a node linking error
(glfo#pipewire/wireplumber#76)
- Fixed a bug that would cause capture streams to link to
monitor ports of loopback nodes instead of linking to their
capture ports
- Fixed a needless wait that would happen on applications using
the pipewire ALSA plugin (glfo#pipewire/wireplumber#92)
- Fixed an issue that would cause endless rescan loops in
policy-node and could potentially also cause other strange
behaviors in case pavucontrol or another monitoring utility
was open while the policy was rescanning
(glfo#pipewire/wireplumber#77)
- Fixed the endpoints-based policy that broke in recent
versions and improved its codebase to share more code and be
more in-line with policy-node
- The semicolon character is now escaped properly in state
files (glfo#pipewire/wireplumber#82)
- When a player requests encoded audio passthrough, the policy
now prefers linking to a device that supports that instead of
trying to link to the default device and potentially failing
(glfo#pipewire/wireplumber#75)
- Miscellaneous robustness fixes in policy-node
* API:
- Added WpFactory, a binding for pw_factory proxies. This
allows object managers to query factories that are loaded in
the pipewire daemon
- The file-monitor-api plugin can now watch files for changes
in addition to directories
OBS-URL: https://build.opensuse.org/request/show/930868
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=8
- Add patch from upstream to fix a crash when there's a link error
(glfo#pipewire/wireplumber#76):
* 0001-si-standard-link-fix-crash-after-returning-a-link-error.patch
- Update to version 0.4.4:
* Highlights:
- Implemented linking nodes in passthrough mode, which enables
encoded iec958 / dsd audio passthrough
- Streams are now sent an error if it was not possible to link
them to a target (#63)
- When linking nodes where at least one of them has an
unpositioned channel layout, the other one is not
reconfigured to match the channel layout; it is instead
linked with a best effort port matching logic
- Output route switches automatically to the latest one that
has become available (#69)
- Policy now respects the 'node.exclusive' and 'node.passive'
properties
- Many other minor policy fixes for a smoother desktop usage
experience
* API:
- Fixed an issue with the LocalModule() constructor not
accepting nil as well as the properties table properly
- Added WpClient.send_error(), WpSpaPod.fixate() and
- WpSpaPod.filter() (both in C and Lua)
* Misc:
- Bumped meson version requirement to 0.56 to be able to use
meson.project_{source,build}_root() and ease integration with
pipewire's build system as a subproject
- wireplumber.service is now an alias to
OBS-URL: https://build.opensuse.org/request/show/926162
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=5
- Update to version 0.4.1:
* Highlights:
+ WirePlumber now supports Lua 5.4. You may compile it either
with Lua 5.3 or 5.4, without any changes in behavior. The
internal Lua subproject has also been upgraded to Lua 5.4, so
any builds with -Dsystem-lua=false will use Lua 5.4 by
default
* Fixes:
+ Fixed filtering of pw_metadata objects, which broke with
PipeWire 0.3.31
+ Fixed a potential livelock condition in
si-audio-adapter/endpoint where the code would wait forever
for a node's ports to appear in the graph
+ Fixed granting access to camera device nodes in flatpak
clients connecting through the camera portal
+ Fixed a lot of issues found by the coverity static analyzer
+ Fixed certain race conditions in the wpipc library
+ Fixed compilation with GCC older than v8.1
* Scripts:
+ Added a policy script that matches nodes to specific devices
based on the "media.role" of the nodes and the
"device.intended-roles" of the devices
* Build system:
+ Bumped GLib requirement to 2.62, as the code was already
using 2.62 API
+ Added support for building WirePlumber as a PipeWire
subproject
+ Doxygen version requirement has been relaxed to accept v1.8
+ The CI now also verifies that the build works on
Ubuntu 20.04 LTS and tries multiple builds with different
OBS-URL: https://build.opensuse.org/request/show/906021
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=2