- 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
- 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
- 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
- Update to version 0.3.36:
* Highlights
- A quick update with mostly only bugfixes and small
improvements.
- Capture and playback is now avoided on unavailable devices.
This should fix some issues where an unusable microphone was
selected by default.
- MIDI output should not stop randomly now.
- The GStreamer elements are much improved, cheese should work
a lot better now.
- Virtual sinks and sources should now always show up
immediately.
- JACK processing is now delayed until buffersize and
samplerate are emited. This should improve stability of many
JACK apps.
- JACK transport sync is now implemented correctly so that
preroll in bitwig works.
* PipeWire
- The module dir environment variable can now contain multiple
paths.
- Documentation now contains dot graphs of dependencies.
(#1585)
- config min/max/default quantum values are now scaled with the
samplerate.
- A potential crash was fixed where destroyed memory was still
used by a node. This could cause crashes in cheese.
* pipewire-media-session
- Only allow passthrough for passthrough formats (S/PDIF) for
now. (#1587)
- Improve bluetooth profile autoswitch.
OBS-URL: https://build.opensuse.org/request/show/919537
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=17
- Update to version 0.3.35:
* Highlights:
- S/PDIF passthrough over optical or HDMI is now implemented.
- Some critical fixes to MIDI, draining of streams and various
modules.
- skypeforlinux should work better now after adding it to the
quirks database.
- Bluetooth codecs are now in separate plugins to make it
easier to ship them.
* PipeWire:
- Drain was fixed in pw-stream. In some cases it would not
clear the drain state correctly. Fixes the issue where
speaker-test would only play one channel.
- Loopback connections to a driver will now activate the
driver. This fixes an issue where MIDI connections between
devices or some applications (puredata) would not get any
MIDI messages. (#1559)x.
- The audiomixer can now mix more formats. Together with the
passthrough improvements this can be used to avoid
conversions to/from the DSP format in some cases.
- Make sure we idle drivers when removing a node from it in all
cases. JACK clients could keep a driver node busy.
- Add new methods to accumulate object info. The old one was
difficult to use when applications need to accumulate
multiple changes.
- A new interface to load modules has been added. Plugins can
use this to ask the host (PipeWire) to load spa plugins.
- Increase param buffer size to handle larger params. Nodes
with a large number of channels would sometimes not have
properties. (#1574)
OBS-URL: https://build.opensuse.org/request/show/917721
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=16
- Update to version 0.3.34:
* Highlights
- Fixes some critical issues with previous release. Such as
devices not showing up and default devices being lost.
- Support for consumer driver streams to make the producer
v-sync to the consumer monitor in a headless compositor
setup.
- Improvements to routing of streams.
- Bluetooth battery status support for head-set profile and
using Apple extensions. aptX-LL and FastStream codec support
was added.
- Internal latency of ALSA devices can now be configured.
- A fast convolver was added to the filter-chain to implement
virtual surround sinks or reverbs.
* PipeWire
- Add support for streams that are driver nodes for the graph.
This was already possible for source streams but it is now
also possible for playback streams. This can be used to let
a producer v-sync to the consumer monitor in a headless
compositor setup. (#1484)
- State files are now stored in XDG_STATE_HOME instead of
XDG_CONFIG_HOME. They will still be loaded from the config
home if they are not in the new state home, to ease
migration.
- Set a driver on inactive nodes to make transport work in
xjadeo. (#1491)
- Fix parsing of filter-chain controls.
- A new FFT based convolver was added to module-filter-chain.
It uses a 0-latency 2 stage convolver with small FFT for the
head and a large FFT for the tail of the convolution. A
OBS-URL: https://build.opensuse.org/request/show/914410
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=14
- Update to version 0.3.33:
* Highlights
- Better support for virtual sinks/sources for Pro Audio
profile.
- Better DMA-BUF format modifier negotiation.
- Support multiple sample rates in the graph. Not enabled
by default yet.
- Bluetooth can now automatically switch between headset
and audio profile.
- Documentation updates.
- Many improvements and crasher fixes.
* PipeWire
- Make AUX channels an official channel map, use this for the
PRO audio profile so that we can name the channels. This
make it possible to define virtual sources and sinks for
Pro Audio devices in a more reliable way.
- Fix scheduling of some virtual sinks/sources. (#1407)
- Fix potential corruption of ringbuffer because of multiple
concurrent writers. This might be the cause for many reported
crashes. (#1451)
- Don't place sockets in $HOME. (#1443)
- Improve DMA-BUF negotiation. Add a flag to avoid fixation
of a property so that producers can negotiate more
efficiently. This is used to negotiate DMA-BUF modifiers,
which should make more efficient use of the GPU. (#1084)
- Add support for multipe sample rates. The graph can switch
when IDLE to one of the supported rates. Add an option to
lock the rate as well. This is not enabled by default yet
because of driver bugs that need to be worked around first.
- Add node.lock-quantum property that can be used to lock the
OBS-URL: https://build.opensuse.org/request/show/910352
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=13
- Update to 0.3.32:
* Highlights
- Real-time priority handling for threads was reworked.
Freewheeling will now drop RT priorities to avoid being
killed.
- Problems with filter chains and echo-cancel being linked in
a loop was fixed.
- alsamixer should now be able to see the mixer controls again.
- JACK has seen some latency reporting improvements that make
Ardour report latencies correctly.
- Many bugfixes and improvements.
* PipeWire
- Fix a bug in the neon audio resampler code.
- There is now a node.link-group property to relate linked
streams. this can be used to track the dataflow with
coupled streams.
- Fix a crash when recalculating latency on a destroyed
port. (#1371)
- Filter chains and other modules that create streams can
now also be added to the daemon config itself. (#1309)
- Fix some potential deadlocks in timerfd. (#1377)
- Feedback links are skipped when recalculating latency to
avoid loops.
- The dummy driver and null-sink now stop the timerfd when
following another driver instead of generating useless
graph wakeups.
- rt.limit was increased to 2 seconds. Some applications got
killed because they run lengthy code in the Real-Time
thread. (#1344)
- Fix s24_32 to float, it was not sign extending
OBS-URL: https://build.opensuse.org/request/show/907334
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=10
- Update to 0.3.31:
* Highlights
- Fixes for alsa-lib 1.2.5
- New pulseaudio modules: module-avahi-zeroconf,
module-pipe-source, module-roc-sink, module-roc-source
- JACK has seen massive stability improvements. Locking
and correctness wrt to callbacks and has been reworked. Also
thread priorities have improved.
- Handle various crashes and lockups when running out of file
descriptors.
- Bluetooth now uses a hardware database to disable
non-working features on listed devices.
- Scheduling quantum and rate can now be changed dynamically
with pw-metadata.
- Many bugfixes and improvements.
* PipeWire
- Improve cleanup of context in error cases.
- There is now a pw-test framework for improved unit tests.
- Improve property serialization to valid JSON.
- Fix some macros to work with better with coverity.
- Metadata permissions are checked now. Clients need the
M permission on an object to be able to set metadata for
it.
- The core metadata object will now remove metadata for
removed objects, the implementor does not need to worry
about that anymore.
- Audioadapter will now follow the rate of the graph with
the resampler adjusting itself dynamically.
- Core now has a metadata implementation helper. A context
will expose a metadata with settings that can be changed
OBS-URL: https://build.opensuse.org/request/show/902874
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=7
- Update to 0.3.28
* Highlights
- Freewheeling was implemented. This makes it possible to
export projects in ardour.
- A new powerful filter-chain module was added that can
be used to created all kinds of filter-chains from ladspa
and builtin plugins.
- Many more pulseaudio modules are now implemented:
module-ladspa-sink, module-ladspa-source, module-pipe-sink,
module-tunnel-sink, module-tunnel-source,
module-zeroconf-discover
- Fix a bug where devices would not appear after logout/login.
- Fix a bug where the volume was reset to 0 and devices would
have no audio.
- Config files are now installed in the data dir, system
overrides in /etc/pipewire and $HOME are checked first.
* PipeWire
- Implement freewheeling for JACK clients
- Add filter-chain module that can be used to construct
arbitrary graphs from ladspa and builtin plugins.
- Add new property to easily set algorithm params
- Add module-pulse-tunnel to tunnel audio to and from
a PulseAudio compatible server.
- Add a avahi zeroconf discover module, create pulse-tunnel
when PulseAudio devices are announced.
- Config files are now installed in the data dir, system
overrides in /etc/pipewire and $HOME are checked first.
- Applications now have their monitor ports named with the
"monitor" prefix to avoid confusion with the output ports.
- LICENSE clarifications. (forwarded request 894376 from alarrosa)
OBS-URL: https://build.opensuse.org/request/show/894781
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=31
- Update to version 0.3.13:
* PipeWire improvements
+ Add pw-reserve tool to reserve or monitor a device on DBus.
+ Install spa-resample, a tool to resample a file.
+ Install spa-acp-tool, a tool to inspect the card profile.
+ Various fixes and improvements
+ Fix a bug in pw-stream where a capture stream could run out
of buffers and become silent.
+ Rework the processing loops in the adapter and stream. There
is now less latency in PulseAudio and ALSA layers.
* Session manager improvements
+ Improve the device reservation code. We now try to acquire
the device using the dbus device reservation API before we
probe the device. This avoids conflicts with a running
PulseAudio where devices would disappear (because they were
locked by the other process).
+ Don't fail on invalid input from the config files.
+ Audio devices now have the same name as what PulseAudio
would assign.
* Device support
+ v4l2: try to use the format before enumerating the size and
framerate. Some drivers don't check the format and might now
work better.
+ v4l2: Fall back to MMAP when EXPBUF fails. Fix MMAP access,
just export the fd and the mapoffset. This should make more
devices work.
+ Fix crash in ALSA Card Profile (ACP) code.
+ ACP: fix selection of default profile. Prefer any possibly
available profile over 'Off'. This makes some card at least
start with something. (forwarded request 841457 from alarrosa)
OBS-URL: https://build.opensuse.org/request/show/841554
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=17