* Fri Jan 13 2023 alarrosa@suse.com
- Backport the workaround from SLE/Leap for the bug in systemd
scripts that didn't set the default enable state for the
wireplumber user service when installing wireplumber. The bug
(boo#1200485) was fixed but that's only for new installations
while this workaround will fix old installations (boo#1202008).
This is used to automatically fix installations of
SLE 15 SP4/Leap 15.4 that were not updated during it's lifetime
and upgrade directly to SP5/15.5 .
* Wed Jan 11 2023 alarrosa@suse.com
- Add upstream patches to fix glfo#pipewire/pipewire#2214 and to
handle better non-null terminated strings:
* 0001-alsa-monitor-handle-snd_aloop-devices-better.patch
* 0001-spa-json-make-sure-we-only-add-encoded-string-data.patch
* 0001-m-lua-scripting-ignore-string-integer-table-keys-when-constructing-a-JSON-Array-Object.patch
* Tue Dec 13 2022 sor.alexei@meowr.ru
- Update to version 0.4.13:
* Additions
- Add bluetooth SCO (HSP/HFP) hardware offload support,
together with an example script that enables this
functionality on the PinePhone.
- Encoded audio (mp3, aac, etc...) can now be passed through,
if this mode is supported by both the application and the
device.
- The v4l2 monitor now also respects the ``node.disabled`` and
``device.disabled`` properties inside rules.
- Add "Firefox Developer Edition" to the list of applications
that are allowed to trigger a bluetooth profile auto-switch.
- Add support in the portal access script to allow newly
plugged cameras to be immediately visible to the portal
applications.
* Fixes
- Work around an issue that would prevent streams from properly
linking when using effects software like EasyEffects and
JamesDSP.
- Fix destroying pavucontrol-qt monitor streams after the node
that was being monitored is destroyed.
- Fix a crash in the alsa.lua monitor that could happen when a
disabled device was removed and re-added.
- Fix a rare crash in the metadata object.
- Fix a bug where a restored node target would override the
node target set by the application on the node's properties.
* Packaging
- Add build options to compile wireplumber's library, daemon
and tools independently.
- Add a build option to disable unit tests that require the
dbus daemon.
- Stop using fakesink/fakesrc in the unit tests to be able to
run them on default pipewire installations. Compiling the spa
``test`` plugin is no longer necessary.
- Add pkg-config and header information in the gir file.
- Rebase reduce-meson-required-version.patch
- Drop patches already upstream:
* 0001-alsa.lua-remove-the-disabled-entities-from-the-names-table.patch
* 0001-policy-node-wait-for-unactivated-links-instead-of-removing.patch
* Tue Nov 15 2022 alarrosa@suse.com
- Add patch from upstream to work around a problem when a link is
not activated:
* 0001-policy-node-wait-for-unactivated-links-instead-of-removing.patch
- Add patch from upstream to fix handling null devices which result
in lua exceptions:
* 0001-alsa.lua-remove-the-disabled-entities-from-the-names-table.patch
* Tue Oct 04 2022 sor.alexei@meowr.ru
- Update to version 0.4.12:
* Changes
- WirePlumber now maintains a stack of previously configured
default nodes and prioritises to one of those when the
actively configured default node becomes unavailable, before
calculating the next default using priorities.
- Updated bluetooth scripts to support the name changes that
happened in PipeWire 0.3.59 and also support the experimental
Bluetooth LE functionality.
- Changed the naming of bluetooth nodes to not include the
profile in it; this allows maintaining existing links when
switching between a2dp and hfp.
- The default volume for new outputs has changed to be 40% in
cubic scale (= -24 dB) instead of linear
(= 74% cubic / -8 dB) that it was before.
- The default volume for new inputs has changed to be 100%
rather than following the default for outputs.
- Added ``--version`` flag on the wireplumber executable.
- Added ``--limit`` flag on ``wpctl set-volume`` to limit the
higher volume that can be set (useful when incrementing
volume with a keyboard shortcut that calls into wpctl).
- The properties of the alsa midi node can now be set in the
config files.
* Fixes
- Fixed a crash in lua code that would happen when running in a
VM.
- Fixed a crash that would happen when re-connecting to D-Bus.
- Fixed a mistake in the code that would cause device
reservation not to work properly.
- Fixed ``wpctl clear-default`` to accept 0 as a valid setting ID.
- Fixed the logic of choosing the best profile after the active
profile of a device becomes unavailable
- Fixed a regression that would cause PulseAudio "corked"
streams to not properly link and cause busy loops.
- Fixed an issue parsing spa-json objects that have a nested
object as the value of their last property.
- Rebase reduce-meson-required-version.patch
- Drop patches already upstream:
* fix-alsa.patch
* 0001-dbus-fix-crash-when-trying-to-reconnect.patch
* 398.patch
* Fri Aug 05 2022 badshah400@gmail.com
- Add 398.patch -- policy-node: fix potential rescan loop to
prevent high cpu usage (glfo#pipewire/wireplumber#152); patch
taken from upstream merge request.
* Thu Jul 14 2022 fvogt@suse.com
- Add patch to fix crash on session end:
* 0001-dbus-fix-crash-when-trying-to-reconnect.patch
* Fri Jul 08 2022 fvogt@suse.com
- Add patch to fix alsa device creation:
* fix-alsa.patch
* Tue Jul 05 2022 sor.alexei@meowr.ru
- Update to version 0.4.11:
* Changes
- The libcamera monitor is now enabled by default, so if the
libcamera source is enabled in PipeWire, cameras discovered
with the libcamera API will be available out of the box.
This is safe to use alongside V4L2, as long as the user does
not try to use the same camera over different APIs at the
same time.
- Libcamera and V4L2 nodes now get assigned a
`priority.session` number; V4L2 nodes get a higher priority
by default, so the default camera is going to be /dev/video0
over V4L2, unless changed with `wpctl`.
- Libcamera nodes now get a user-friendly description based on
their location (e.g. built-in front camera). Additionally,
V4L2 nodes now have a "(V4L2)" string appended to their
description in order to be distinguished from the libcamera
ones.
- 50-alsa-config.lua now has a section where you can set
properties that will only be applied if WirePlumber is
running in a virtual machine. By default it now sets
`api.alsa.period-size = 256` and `api.alsa.headroom = 8192`.
* Fixes
- The "enabled" properties in the config files are now "true"
by default when they are not defined. This fixes backwards
compatibility with older configuration files.
- Fixed device name deduplication in the alsa monitor, when
device reservation is enabled.
- Reverted a previous fix that makes it possible again to get
a glitch when changing default nodes while also changing the
profile (GNOME Settings).
The fix was causing other problems and the issue will be
addressed differently in the future.
- Fixed an issue that would prevent applications from being
moved to a recently plugged USB headset.
- Fixed an issue where wireplumber would automatically link
control ports, if they are enabled, to audio ports,
effectively breaking audio.
- The policy now always considers the profile of a device that
was previously selected by the user, if it is available, when
deciding which profile to activate.
- A few documentation fixes.
* Tools
- wpctl now has a `get-volume` command for easier scripting of
volume controls.
- wpctl now supports relative steps and percentage-based steps
in `set-volume`.
- wpctl now also prints link states.
- wpctl can now `inspect` metadata objects without showing
critical warnings.
* Library
- A new WpDBus API was added to maintain a single D-Bus
connection among modules that need one.
- WpCore now has a method to get the virtual machine type, if
WirePlumber is running in a virtual machine.
- WpSpaDevice now has a
`wp_spa_device_new_managed_object_iterator()` method.
- WpSpaJson now has a `wp_spa_json_to_string()` method that
returns a newly allocated string with the correct size of the string token.
- WpLink now has a `WP_LINK_FEATURE_ESTABLISHED` that allows
the caller to wait until the link is in the PAUSED or ACTIVE
state. This transparently now enables watching links for
negotiation or allocation errors and failing gracefully
instead of keeping dead link objects around.
* Misc
- The Lua subproject was bumped to version 5.4.4.
- Rebase reduce-meson-required-version.patch
* Tue May 10 2022 sor.alexei@meowr.ru
- Update to version 0.4.10:
* Changes
- Add i18n support to be able to translate some user-visible
strings.
- wpctl now supports using
@DEFAULT_{AUDIO_,VIDEO_,}{SINK,SOURCE}@ as ID, almost like
pactl. Additionally, it supports a --pid flag for changing
volume and mute state by specifying a process ID, applying
the state to all nodes of a specific client process.
- The Lua engine now supports loading Lua libraries. These can
be placed either in the standard Lua libraries path or in
the "lib" subdirectory of WirePlumber's "scripts" directory
and can be loaded with ``require()``
- The Lua engine's sandbox has been relaxed to allow more
functionality in scripts (the debug & coroutine libraries
and some other previously disabled functions)
- Lua scripts are now wrapped in special WpPlugin objects,
allowing them to load asynchronously and declare when they
have finished their loading
- Add a new script that provides the same functionality as
module-fallback-sink from PipeWire, but also takes endpoints
into account and can be customised more easily. Disabled by
default for now to avoid conflicts.
* Policy
- Add an optional experimental feature that allows filter-like
streams (like echo-cancel or filter-node) to match the
channel layout of the device they connect to, on both sides
of the filter; that means that if, for instance, a sink has
6 channels and the echo-cancel's source stream is linked to
that sink, then the virtual sink presented by echo-cancel
will also be configured to the same 6 channels layout. This
feature needs to be explicitly enabled in the configuration
("filter.forward-format")
- filter-like streams (filter-chain and such) no longer follow
the default sink when it changes, like in PulseAudio.
* Fixes
- The suspend-node script now also suspends nodes that go into
the "error" state, allowing them to recover from errors
without having to restart WirePlumber.
- Fix a crash in mixer-api when setting volume with
channelVolumes.
- logind module now watches only for user state changes,
avoiding errors when machined is not running.
* Misc
- The configuration files now have comments mentioning which
options need to be disabled in order to run WirePlumber
without D-Bus.
- The configuration files now have properties to
enable/disable the monitors and other sections, so that it
is possible to disable them by dropping in a file that just
sets the relevant property to false.
- setlocale() is now called directly instead of relying on
pw_init().
- WpSpaJson received some fixes and is now used internally to
parse configuration files.
- More applications were added to the bluetooth auto-switch
applications whitelist.
- Add a new wireplumber-lang package.
- Drop patches already upstream:
* 0001-scripts-policy-device-profile-clear-tables-when-devices-removed.patch
* 0001-src-setlocale-in-main-for-tools-and-the-daemon.patch
- Rebase reduce-meson-required-version.patch