- Update to version 0.3.49:
* Highlights
- Sample rate switching should work again.
- pw-dot can now use the output of pw-dump to render a graph.
- Bluetooth A2DP streaming was improved that would reduce
stuttering on some devices.
- A JACK bug was fixed that would sometimes make it impossible
to add more tracks in Ardour. (#1714)
- Many bugfixes and improvements.
* PipeWire
- Fix a potential crash when NULL params were configured.
- Add some simple functional tests to avoid some recent
regressions. Improve the test framework for this as well.
- Improvements to the poll loop to avoid some use-after-free
scenarios.
- Fix samplerate switching again.
- setlocale is not called anymore from the pipewire library.
This should be called by the application. (#2223)
- pw_init() and pw_deinit() can now be nested and called
multiple times.
- pw_stream will now report the resampler delay in the
pw_time.queued field.
* modules
- module-filter-chain now supports arbitrary many properties
and will use property hints to assign them the right type.
- The ROC modules now accept a sink/source_properties
parameter.
- The module-rt can now also be built without RT-Kit support.
- module-echo-cancel can now use a fraction to specify the
delay for more precise control.
OBS-URL: https://build.opensuse.org/request/show/965577
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=52
- Update to version 0.3.46:
* Highlights:
- Fix a critical bug in pipewire-pulse buffer size handling
that made some apps (MuseScore, ... ) stutter.
- Fix a critical bug where devices would not show when the
kernel was compiled without VERBOSE_PROCSFS.
- JACK clients will now use lock-quantum by default. This
makes sure that all dynamic quantum changes are disabled
while a JACK app is running. The only way to force a
quantum chance is through a JACK app or with the metadata.
- Almost all limits on number of ports, clients and nodes are
removed.
- A Dummy fallback sink is now automatically created when
there are no other sinks. This avoids stalling browsers.
- Sound sharing with Zoom should work better. A new WirePlumber
release might be required.
- Many more fixes and improvements.
* PipeWire
- Update docs with new config overrides.
- The rule matching logic was moved to config and code is now
shared with pulse-server and JACK.
- Add new Romanian translation.
- When a quantum is forced with metadata, any node that asked
to lock-quantum is ignored so that the quantum change can
happen.
- Fix a bug where a mixer was removed twice, leading to
potential memory corruption.
- The port limits on nodes and filters are now removed.
Some code was simplified.
- Fix a potential leak because listeners where removed while
OBS-URL: https://build.opensuse.org/request/show/955613
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=48
- Update to version 0.3.45:
* Highlights
- Zoom, telegram and other apps should be able to play sound
again.
- Implement a better way to force and lock JACK buffersize.
- Default sink and source names and properties are improved.
- The config loader can now load and merge fragments in conf.d
directories for easier user configuration of config files.
- Many small bug fixes and improvements.
* PipeWire
- pw-cli can now also send Commands to nodes. This can be used
to Suspend a device, for example.
- The eventfd was removed from loops and invoke is now used to
stop the loop, this saves an fd.
- New Alpine CI target to test musl builds, various build
fixes.
- Add force-quantum and force-rate properties.
- The config loader can now load and merge fragments in conf.d
directories. (#207)
- resource error methods can be called without a resource and
then just log an error message.
- link-factory can now also work from the config. (#2095)
* modules
- module-simple-protocol has better argument parsing and can
handle channelmap now. (#2068) It's also possible to
configure latency and rate.
- The native protocol now does extra checks for invalid data.
(#2070)
* ALSA
- TI2902 chips as found in various Behringer cards should have
OBS-URL: https://build.opensuse.org/request/show/950942
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=46
- Add several more patches from upstream
- BlueZ may be missing adapter information for devices in some cases.
Ignore devices without specified adapter:
* 0001-bluez5-dont-create-device-if-adapter-is-missing.patch
- Fix a case when pipewwire could never call callbacks or even
block forever when loop is not running:
* 0001-loop-invoke-immediately-when-loop-is-not-running.patch
- Reconfigure when monitor changes
* 0001-merger-also-reconfigure-when-monitor-changes.patch
- Handle NULL props from metadata object
* 0001-pw-metadata-handle-NULL-props-from-metadata-object.patch
- Improve rate selection so we don't select an invalid rate when
the default is set or the card is already opened in an
unsupported rate:
* 0001-alsa-improve-rate-selection.patch
OBS-URL: https://build.opensuse.org/request/show/947466
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=41
- Add several patches from upstream
- Avoid an infinite loop when enumerating params of the converter:
* 0001-audioconvert-avoid-infinite-loop.patch
- When the device or adapter is NULL, skip the quirk checks instead
of crashing:
* 0001-bluez5-handle-missing-device-and-adapter-in-quirks.patch
- Remember the last returned value from jack_get_buffer_size and
only emit a buffersize change event when something new is
configured. This fixes startup of jconvolver.
* 0001-jack-remember-last-return-from-jack_get_buffer_size.patch
- Better emulation of pulseaudio which shows monitor sources with
device.class=monitor so now pipewire does that too:
* 0001-pulse-server-show-monitor-sources-with-device_class_monitor.patch
- Fix an errno check:
* 0001-raop-fix-errno-check.patch
- Added more baselibs packages and their dependencies
OBS-URL: https://build.opensuse.org/request/show/946469
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=40
- Update to version 0.3.43:
* Highlights:
- Flatpak apps such as Ardour can now remove links again.
- Many fixes to pulse-server. Memory usage should be improved.
Some crashes are fixed. Underrun handling should work better.
Better compatibility with GStreamer based applications after
seeking.
- Many of the samplerate and quantum changes bugs in previous
releases were fixed. This fixes some issues where the
microphone would fail to work.
- Many more small fixes and improvements all over the place.
OBS-URL: https://build.opensuse.org/request/show/944108
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=39
- Remove the dependency on wireplumber-audio which was pulling in
pulseaudio. We'll require wireplumber-audio directly from
wireplumber.
- Remove pipewire-rpmlintrc since the filters don't apply anymore
- Merge the pipewire-spa-plugins-0_2 and pipewire-modules
packages into the libpipewire package just as the fedora packages
do and simplify the filelist a bit by using some recursive
listing instead of explicitly listing all files.
OBS-URL: https://build.opensuse.org/request/show/940768
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=35
- Update to version 0.3.41:
* Highlights
- Improved compatibility for flatpaks. Flatpaks with newer
PipeWire version can connect to an older server in all cases.
- A new RAOP module was added to stream to Apple Airplay
devices.
- OBS can now capture from the monitor devices again when using
WirePlumber.
- Improved JACK compatibility. Improved stability in Carla and
Ardour when changing buffer size. Improved latency
calculations and playback latency in Ardour.
- Improved pulse-server handling of underruns and buffer size
changes.
- Many bugfixes and improvements.
* PipeWire
- The systemd service files now have better names.
- client.access permission checks are improved.
- Fix some memory leaks in error paths.
- Objects now have a global serial number that is unique for
the lifetime of the server.
- Make clock.rate, clock.allowed-rates and clock.quantum
runtime tunable parameters with the settings metadata.
- Add some additional memory checks in client-node to avoid
sending invalid memory to clients. (#1859)
- Improve buffer memory allocation. If one of the nodes is a
remote node, ensure we only use memory that can be shared.
- Version checks when binding to objects is removed. This means
that newer clients can now bind to older servers, which is a
typical case for a flatpak.
- A bug in the latency calculations was fixed where it would in
OBS-URL: https://build.opensuse.org/request/show/940178
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=33
- Unconditionally enable AAC support now that fdk-aac-free is in
Factory (adapted from SR 936225 by Neal Gompa
<ngompa@opensuse.org>)
- Makes sure if we're using wireplumber and pulseaudio that
we don't enable the audio devices in pipewire by requiring
wireplumber-audio or pulseaudio if wireplumber is installed
- Better integration with PulseAudio (bsc#1188516) made by tiwai:
* Add Requires pulseaudio-setup package for the extra setups
in the %post section
* Add the missing Recommends alsa-plugins-pulse to
pipewire-pulseaudio package
OBS-URL: https://build.opensuse.org/request/show/937747
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=28
- Update to version 0.3.40:
* Highlights:
- Producers and consumers can now incrementally negotiate a
format by narrowing down the options. This can be used to
select an optimal combination of format and modifiers.
- Driver nodes such as the consumer of a headless compositor
can now throttle the speed based on a new trigger_done event.
- Headless compositors can now signal a damage event to
consumers to start the processing of the graph.
- Compatibility improvements in JACK.
- Draining and resuming is now working correctly in pulse and
alsa.
- Many bugfixes and improvements.
* PipeWire:
- Many BSD fixes.
- clang compilation fixes.
- Fix map implementation on big-endian machines.
- Improve tracking of param changes in pw-stream.
- Add support for renegotiation. With this change, producer and
consumer can incrementally renegotiate a format until it is
fixed. This will be used to do complex negotiation of DRM
modifiers.
- Add a trigger-done event in the stream. This can be used to
know when processing of the complete graph has finished after
issuing a trigger_process() and it can be used to throttle
processing.
- Add a RequestProcess node event and command. This can be used
by non-driver nodes to suggest to a driver to start
processing. One case is where a compositor can emit this
event as a result of a screen update to let the headless
compositor start an update.
- Fix zeroconf sample format.
- pw-mon outputs to stderr now and has colors.
* SPA:
- Fix compilation on ppc and armv7.
- Fix port type check for ALSA seq midi ports so that they are
not falsely listed as hardware.
- Fix crash when running SSE code on unsupported HW.
- The libcamera plugin was rewritten. It now supports hotplug,
format enumeration and an easier to read codebase.
- Fix compatibility some more for cards with 64 channels.
* pulse-server:
- Flush data in pause in combine-sink to avoid stray audio
fragments.
- Fix a race where not all objects were removed correctly.
- The latency calculations and setup was improved to more
closely match pulseaudio behaviour. PULSE_LATENCY_MSEC should
now resemble pulseaudio more closely.
- The drained reply is now sent only once and new data will be
accepted once the drain completes.
- Fix a potential crasher bug where the stream started
processing before the setup was completed.
- The server will now drop the client connections when the
pipewire connection is lost.
* JACK:
- Rework the jack_port_get_buffer() method to return the same
memory when called multiple times during the process()
callback. This makes things work on a new Hydrogen.
- Add an option to disable showing the monitor ports.
- JACK ports are now sorted per node/client and port_id. This
should more closely match JACK behaviour and avoid random
port order.
* v4l2:
- Fix v4l2 LD_PRELOAD script.
- Make sure we destroy the proxy when the global is destroyed.
* ALSA:
- _prepare should exit the draining state.
- Fix the precision of the _delay function by taking into
account the amount of queued samples are the correct
samplerate.
- Drop patches fixed upstream:
* 0001-cpu-fix-compilation-on-some-architectures.patch
* 0001-map-make-_insert_at-fail-on-a-removed-item.patch
* 0002-map-use-uintptr_t-for-the-next-pointer.patch
OBS-URL: https://build.opensuse.org/request/show/931141
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=27
- Update to version 0.3.39
* Highlights
- media-session is now moved into a separate module to speed up
its deprecation in favour of WirePlumber.
- There is now an LD_PRELOAD v4l2 emulation library to run some
existing v4l2 applications on top of PipeWire.
- Filter-chains should now flush out remaining samples when
paused. There is now also the option to let a filter-chain
drain so that long filters
such as reverbs can fade out properly.
- Stability and compatibility improvements in JACK apps.
- Better Bluetooth compatibility with more devices.
- libcamera plugin improvements.
- Many bugfixes and improvements all over the map.
* PipeWire
- Fix compilation on ARM.
- Log topics are added to most modules.
- Documentation updates. Many improvements to the layout.
Reorganisation of the modules and groups.
- Share a work queue for all links and nodes. This removes the
need for a separate eventfd per link and per node.
- Catch errors in the map implementation.
- Add option to compile without dbus support.
- Fix biquad frequency. It was using the wrong sample rate.
- Fix a potential crash when destroying nodes, in some cases
the node would not be deactivated properly.
- Add some more helpers for dealing with properties and their
values.
- Implement flush and reset on virtual sinks/sources.
- Make it possible to let virtual sinks/filter-chains run and
OBS-URL: https://build.opensuse.org/request/show/926684
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=22
- Update to version 0.3.38:
* Highlights
- Topic based logging was added to improve debugging.
- An off-by-one error was fixed in the audio resampler that could
cause distortion when downsampling.
- Various bluetooth compatibility improvements.
- More fixes and improvements.
* PipeWire
- module-pulse-tunnel now has better default latency to make it work
better in more cases. There is also an option to configure the
desired latency.
- pw-cli now has readline support.
- Topic based logging was added. Log lines can now be filtered by
topic using wildcards. This should improve debugging.
- The systemd service files should now have better descriptions.
- Fix a crash in module-zeroconf-discover when unloading.
- Fix a crash in filter-chain when using unaligned memory.
* ALSA
- Sync the udev rules and profiles with pulseaudio.
- Fix a memory leak.
* SPA plugins
- An off-by-one error was fixed in the resampler that could cause
distortion when downsampling. (#1646)
* Bluetooth
- Avoid probing the native backend because it might block for DBus
activation. This fixes some long startup times.
- Fix the kernel version check, 5.14.x kernels should also support
mSBC.
- Fix FastStream microphone support in more cases.
- Add workaround for Intel AX200.
OBS-URL: https://build.opensuse.org/request/show/922337
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=20
- Update to version 0.3.37:
* Highlights
- Capture and playback is now avoided even more on unavailable
devices. This should fix some issues where an unusable
microphone was selected by default. It should now also again
be possible to select an unavailable device as the default.
- Native DSD audio playback is now supported. pw-cat can now
also play DSF files with the -d option.
- JACK stability improvements with buffer-size and samplerate
changes in some apps.
- Many cleanups and bugfixes all over the place.
* PipeWire
- pw-metadata -d does not cause an infinite loop anymore.
(#1622)
- Increase some plugin buffer sizes to fix some issues with
many channels. (#1620)
- Protect the global plugin list with a lock. Make sure
pw_init() is locked. Fixes some issues with concurrent ALSA
plugin usage.
* media-session
- Unavailable devices can be set as the default again. (#1624)
- Do a better check if a device has available routes and avoid
selecting devices with unavailable routes as default.
- Media-session was moved to its own directory. It used to live
in examples but it is past the example stage and it
interferes with the build options for the real examples.
* Bluetooth
- The hardware quirk database is now loaded by the plugin
instead of the session manager. This makes it also work with
wireplumber.
OBS-URL: https://build.opensuse.org/request/show/921126
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=19