mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			5241 lines
		
	
	
	
		
			213 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			5241 lines
		
	
	
	
		
			213 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# PipeWire 0.3.70 (2023-04-20)
 | 
						|
 | 
						|
This is a quick bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Fix a regression in the scheduler that could keep some nodes IDLE.
 | 
						|
  - Fix a regression in the biquad filters in filter-chain.
 | 
						|
  - Fix a regression and potential crash in the ALSA mixer probing.
 | 
						|
  - Fix a regression in pipewiresrc with timestamps that could cause cheese
 | 
						|
    to record video with wrong timestamps.
 | 
						|
  - Beamforming support was enabled in the echo-canceler.
 | 
						|
  - pulse-tunnel and raop-sink will now proxy local volume changes to the
 | 
						|
    remote end.
 | 
						|
  - More bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Fix a bug in the graph scheduler where some nodes might stay IDLE in
 | 
						|
    some cases (like when connecting the source of the echo-canceler to the
 | 
						|
    sink).
 | 
						|
  - pw-metadata can now be created from the factory with initial values for
 | 
						|
    the metadata. (#3076)
 | 
						|
  - Conditions were added to the pipewire config file to make it possible to
 | 
						|
    configure the access module and the exec sections.
 | 
						|
  - Support was added in pw-stream to intercept and override properties for
 | 
						|
    the adapter. This can be used to implement custom volume control, for
 | 
						|
    example.
 | 
						|
 | 
						|
## Tools
 | 
						|
  - pw-metadata can now list all available metadata objects with the -l
 | 
						|
    option.
 | 
						|
  - A new pw-config tool was added to debug configuration file loading and
 | 
						|
    parsing.
 | 
						|
 | 
						|
## Modules
 | 
						|
  - The webrtc echo canceler now supports beamforming. You can provide the
 | 
						|
    coordinates of the microphones and let webrtc perform beamforming on
 | 
						|
    the captured samples to improve quality and remove noise.
 | 
						|
  - Fix a regression in the filter-chain with biquad filters. (#3161) and
 | 
						|
    improve error reporting.
 | 
						|
  - The pulse-tunnel will now proxy the volume changes to the remote end.
 | 
						|
  - The RAOP sink will now send volume parameters to control the volume
 | 
						|
    remotely. (#2061)
 | 
						|
 | 
						|
## SPA
 | 
						|
  - One ALSA commit was not correctly reverted and might cause crashes.
 | 
						|
  - The ALSA sink and source now calculate the ALSA ringbuffer memory
 | 
						|
    location more correctly wich might improve compatibility with some
 | 
						|
    hardware.
 | 
						|
  - v4l2 now sets the values of the controls in the Props param.
 | 
						|
 | 
						|
## Pulse-server
 | 
						|
  - The echo-canceler aec_args are now parsed like they would be under
 | 
						|
    pulseaudio.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - More work on synchronizing BAP devices.
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - The GStreamer source can now renegotiate the format when it changes.
 | 
						|
  - The GStreamer source now uses the BaseSrc clocking code to implement
 | 
						|
    the clock and timing code.
 | 
						|
 | 
						|
 | 
						|
Older versions:
 | 
						|
 | 
						|
# PipeWire 0.3.69 (2023-04-13)
 | 
						|
 | 
						|
This is a quick bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Reverted the UCM changes, they seem to cause regressions causing audio
 | 
						|
    to be muted in some cases.
 | 
						|
  - Fix a regression in the scheduler where a driver node might not be marked
 | 
						|
    runnable in some cases, like when echo-cancel is used. (#3145)
 | 
						|
  - Handle links from the driver to itself. This makes the midi bridge work
 | 
						|
    again. (#3153)
 | 
						|
  - ALSA rate matching for sources was fixed. It would previously wait too
 | 
						|
    long for rate matching and then cause drift. This should reduce
 | 
						|
    crackling and stuttering whan capturing in low latency.
 | 
						|
  - Fix the GStreamer clock to make cheese video recording work again. (#3149)
 | 
						|
  - More fixes and improvements.
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Fix a regression in the scheduler where a driver node might not be marked
 | 
						|
    runnable in some cases, like when echo-cancel is used. (#3145)
 | 
						|
  - Handle links from the driver to itself. This makes the midi bridge work
 | 
						|
    again. (#3153)
 | 
						|
  - Some man pages were improved.
 | 
						|
  - Fix a potential crash when thread-loop is destroyed before the loop.
 | 
						|
    (#3150)
 | 
						|
 | 
						|
## Modules
 | 
						|
  - A new raw biquad filter was added to filter-chain. You can manually set the
 | 
						|
    6 parameters and you can use this to create custom filters per sample rate.
 | 
						|
    (#3139)
 | 
						|
  - The echo-canceler now supports different channels for the capture and playback
 | 
						|
    streams.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - A SB Audigy specific profile set was added to make better use of the
 | 
						|
    controls. (#2934)
 | 
						|
  - More ALSA IRQ based scheduling improvements.
 | 
						|
  - ALSA rate matching for sources was fixed. It would previously wait too
 | 
						|
    long for rate matching and then cause drift. This should reduce
 | 
						|
    crackling and stuttering whan capturing in low latency.
 | 
						|
  - The echo-cancel plugin API has a new method to make it possible to have
 | 
						|
    different channels for capture, source and playback.
 | 
						|
  - Reverted the UCM changes, they seem to cause regressions causing audio
 | 
						|
    to be muted in some cases.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Many more BAP fixes and improvements. Devices are now created as a set
 | 
						|
    and can be combined into one device by the session manager.
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - Fix the GStreamer clock to make cheese video recording work again. (#3149)
 | 
						|
 | 
						|
# PipeWire 0.3.68 (2023-04-06)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
This release contains a huge number of changes, some of which might cause
 | 
						|
regressions. Please report anything that seems to fail after the upgrade.
 | 
						|
UCM devices in particular might have changed names, profiles and ports that
 | 
						|
might require changes in custom scripts.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Symbolic links to the pipewire binary are now used instead of recompiling
 | 
						|
    the same binary multiple times.
 | 
						|
  - Changes to the graph scheduler related to quantum/rate updates and
 | 
						|
    calculation of the node states. Things should start and switch between
 | 
						|
    quantums and rates more smoothly now and especially virtual devices should
 | 
						|
    now only run when required.
 | 
						|
  - A new RTP session module was added. This uses the Apple MIDI protocol
 | 
						|
    to configure low-latency bidirectional MIDI (and with a PipeWire specific
 | 
						|
    extension, also audio) between machines. OPUS encoding was added to the
 | 
						|
    RTP formats. The SAP module was separated from the rtp-sink/source module
 | 
						|
    to make it more usable.
 | 
						|
  - A new runtime debug property was added to all streams and nodes to trigger
 | 
						|
    a save of the raw samples to a wav file. Support for this has also been
 | 
						|
    added to the echo-canceler to debug potential issues.
 | 
						|
  - Module pulse-tunnel has improved rate matching and synchronization
 | 
						|
    support. It should also not drift anymore for capture devices.
 | 
						|
  - The link-factory now ignores by default the link.passive property. This means
 | 
						|
    that tools like pw-link or jack clients and wireplumber can't make passive
 | 
						|
    links anymore. The reason is that there is now much more advanced logic in
 | 
						|
    PipeWire itself to handle passive links based on node and port properties.
 | 
						|
  - The RAOP sink was ported to new OpenSSL functions. Digest passwords are
 | 
						|
    handled correctly now and support for more devices was added.
 | 
						|
  - The ACP code was updated with new PulseAudio UCM code: "Create multiple
 | 
						|
    profiles per verb for conflicting devices". This might change the names
 | 
						|
    of devices, profiles and ports so scripts might need to be updated.
 | 
						|
  - Upmixing is disabled again by default. We now ship config files that
 | 
						|
    distros can install to enable upmixing again. The reason being that PipeWire
 | 
						|
    should not apply fancy DSP processing to audio by default.
 | 
						|
  - Many cleanups and bugfixes, including some crashes and memory corruption
 | 
						|
    bugs.
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Various FreeBSD compilation fixes.
 | 
						|
  - Don't crash when calling _connect twice in stream/filter. (#3091)
 | 
						|
  - Links are now installed instead of compiling the pipewire binary
 | 
						|
    multiple times.
 | 
						|
  - There is now a new core event bound_props that augments the bound_id event
 | 
						|
    with the global properties. This can be used to get the global.serial among
 | 
						|
    other global properties. It also makes it possible in the future to let the
 | 
						|
    server allocate unique names or uuids.
 | 
						|
  - Fix a bug where the server could go into an infinite reconfigure loop when
 | 
						|
    the samplerate of a driver would change.
 | 
						|
  - When a samplerate was forced, restore the previous best samplerate when the
 | 
						|
    samplerate is no longer forced. (#2133)
 | 
						|
  - Rework how the states of the nodes in the graph are calculated. A more
 | 
						|
    refined algorithm is now used that only runs nodes that need to run.
 | 
						|
  - Rework how the quantum change is applied to the graph. Drivers are now
 | 
						|
    responsible for using the new updated rate/quantum before starting a new
 | 
						|
    cycle. This avoids starting a cycle with an old quantum first.
 | 
						|
  - pw-stream and pw-filter will now ensure that the Trigger event is called
 | 
						|
    from the main thread.
 | 
						|
  - node.force-rate=0 will now force the node.rate on the graph, forcefully
 | 
						|
    switching the hardware into the new rate if possible. (#3026)
 | 
						|
  - Additional checks were added to the thread-loop to check locking order.
 | 
						|
  - Additional checks were added to pw-stream and pw-filter to check if methods
 | 
						|
    are called from the right thread context.
 | 
						|
 | 
						|
## modules
 | 
						|
  - A new RTP session module was added. This uses the Apple MIDI protocol
 | 
						|
    to configure bidirectional MIDI (or audio) between machines.
 | 
						|
  - SAP support was removed from module-rtp-source and module-rtp-sink and
 | 
						|
    moved to a separate module. This makes it possible to use the RTP modules
 | 
						|
    without SAP support as well.
 | 
						|
  - The echo-cancel module now has support to save the signals to a wav
 | 
						|
    file for debugging purposes.
 | 
						|
  - The RTP modules now have support for the OPUS codec.
 | 
						|
  - The RAOP module was ported to new openssl encryption functions and handles
 | 
						|
    digest passwords correctly now.
 | 
						|
  - module-raop-discover now has match rules to be able to select the streams
 | 
						|
    and set properties.
 | 
						|
  - Module pulse-tunnel has improved rate matching and synchronization
 | 
						|
    support. (#3093)
 | 
						|
  - Fix potential memory corruption and infinite loops because
 | 
						|
    module-pulse-tunnel was unloaded from the wrong thread. 
 | 
						|
  - The link-factory now ignores by default the link.passive property. This means
 | 
						|
    that tools like pw-link or jack clients and wireplumber can't make passive
 | 
						|
    links anymore. The reason is that there is now much more advanced logic in
 | 
						|
    PipeWire itself to handle passive links based on node and port properties.
 | 
						|
  - module-echo-cancel will now clear its buffers after a suspend to avoid
 | 
						|
    playing stray samples.
 | 
						|
  - module-raop-sink will now handle 0 timing_port replies. (#3133)
 | 
						|
 | 
						|
## SPA
 | 
						|
  - The adapter module now has support for saving the raw audio to a wav
 | 
						|
    file for debugging purposes.
 | 
						|
  - The ACP code was updated with new PulseAudio UCM code: "Create multiple
 | 
						|
    profiles per verb for conflicting devices". This might change the names
 | 
						|
    of devices, profiles and ports so scripts might need to be updated.
 | 
						|
  - Upmixing was disabled again by default. We now ship config files that
 | 
						|
    distros can install to enable upmixing again. (#3081)
 | 
						|
  - audioadapter and audioconvert have seen improvements in the experimental
 | 
						|
    non-DSP/passthrough mode.
 | 
						|
  - Fix a potential race where the dummy drivers could fail to stop a timer
 | 
						|
    and cause endless warnings in the logs.
 | 
						|
  - The ALSA plugin has experimental support for IRQ based scheduling. This
 | 
						|
    should decrease latency for some (mostly USB) drivers. This should bring
 | 
						|
    latency within JACK latency. More work on this will be done before the
 | 
						|
    1.0 release later this year.
 | 
						|
  - Audioconvert now has support for volume ramping. (#3046)
 | 
						|
  - A new loop method was added the check if a thread is currently running the
 | 
						|
    loop.
 | 
						|
  - channelmix.disable and resample.disable now generate an error when true
 | 
						|
    and channelmixing or resampling is required in the converter.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Fix a crash in some cases when a device was disconnected.
 | 
						|
  - Support async transport state changes. This avoids some lockups when the
 | 
						|
    bluetooth backend is having issues. (#3023)
 | 
						|
  - Align BAP sinks. This improves synchronization between earpieces.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - Improve properties in pw-top and pavucontrol.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Improve error handling from pulse-tunnel.
 | 
						|
  - Generate silence correctly for unsigned formats as well.
 | 
						|
  - Review buffer params. The streams should now just work with 1 or 2
 | 
						|
    buffers.
 | 
						|
  - module-rtp-send and module-rtp-recv now have support for the OPUS codec.
 | 
						|
 | 
						|
# JACK
 | 
						|
  - Make sure we don't call any callbacks anymore when deactivating. (#2781)
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - Sort the device by priority in deviceprovider. (#3072)
 | 
						|
 | 
						|
# PipeWire 0.3.67 (2023-03-09)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - The loopback module and other couples streams will now not randomly
 | 
						|
    fail in some cases. (#3028)
 | 
						|
  - The RTP module now has support for sending and receiving MIDI as
 | 
						|
    well.
 | 
						|
  - The compress offload sink has seen many improvements. It now uses
 | 
						|
    ioctls directly to bypass limitations of tinycompress (to be able
 | 
						|
    to detect the available codecs, for example).
 | 
						|
  - Pulse server compatibility was improved for some apps by improving
 | 
						|
    the format parsing and FIX_ stream flag handling.
 | 
						|
  - The min quantum in the pulse server was changed from 256/48000 to
 | 
						|
    128/48000 to fix some issues with games that expect 5ms or less of
 | 
						|
    latency.
 | 
						|
  - The Bluetooth plugin has seen many improvements in packet scheduling
 | 
						|
    to attempt to reduce stuttering on some devices.
 | 
						|
  - The ALSA plugin now handles some impossible cases better. This fixes
 | 
						|
    recording in QEMU again. (#2971)
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - SPDX tags were added to the code for copyright information.
 | 
						|
  - The random number functions were made more usable.
 | 
						|
  - The port property code was moved from the adapter to the port
 | 
						|
    implementation itself to make it more useful and unified for the
 | 
						|
    cases where no adapter is used (midi and video).
 | 
						|
  - Fix a potential overflow in mixer areas.
 | 
						|
  - Improve runnable state calculations of nodes. This is part of
 | 
						|
    ongoing work to avoid running nodes that should not need to run.
 | 
						|
  - The stream will now always call the process function when using
 | 
						|
    trigger, even if there are no buffers. This avoids stalls of the
 | 
						|
    processing graph in some cases. (#3028)
 | 
						|
  - Links are now marked as passive by PipeWire itself so that
 | 
						|
    the right thing happens in all cases.
 | 
						|
  - Implement the in/out/true values for the node.passive property.
 | 
						|
    Place a passive state on ports to make passive links on a port
 | 
						|
    by port basis.
 | 
						|
 | 
						|
## Tools
 | 
						|
  - pw-cat has seen improvements in the encoded file playback case.
 | 
						|
 | 
						|
## Modules
 | 
						|
  - The rtp module has support for MIDI now.
 | 
						|
  - DSCP is now configurable in the RTP module.
 | 
						|
  - The loopback module doesn't randomly fail to work anymore. (#3028)
 | 
						|
 | 
						|
## SPA
 | 
						|
  - The null-audio sink can now be given a format and it will return this
 | 
						|
    instead of the default float ones. This makes it possible to make a
 | 
						|
    null-sink that has a given format.
 | 
						|
  - The compress offload sink has seen many improvements. It now no longer
 | 
						|
    uses tinycompress to be able to detect the available codecs.
 | 
						|
  - The ALSA plugin now handles some impossible cases better. (#2971)
 | 
						|
  - Fix compilation on older compilers. (#3050)
 | 
						|
 | 
						|
## Pulse-server
 | 
						|
  - The FIX_ flags are now implemented more correctly by fixating the
 | 
						|
    stream to the format of the sink/source they ask to be connected to.
 | 
						|
    There is now also an option to override the fixation based on rules.
 | 
						|
  - Format parsing was improved and should now support all format strings
 | 
						|
    supported by pulseaudio including upper and lower case variants
 | 
						|
    and shortcuts.
 | 
						|
  - Channelmap parsing was improved and should now reject invalid
 | 
						|
    channelmaps as well as support the shortcuts supported by pulseaudio.
 | 
						|
  - Escape codes in module arguments now work as it does in pulseaudio. (#3071)
 | 
						|
  - The min quantum was changed from 256/48000 to 128/48000 to fix some
 | 
						|
    issues with games that expect 5ms or less of latency.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - jack.passive-links can now be used to have a JACK client make passive
 | 
						|
    links and the node.passive property is no longer used for this because
 | 
						|
    it has a different function.
 | 
						|
  - The qsynth rule was updated to the new node.passive features. It is now
 | 
						|
    only passive on the output side.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - BAP delay and transport latency are handled now.
 | 
						|
  - A2DP and SCO can now use bigger buffers to improve quality when the
 | 
						|
    reception is jittery.
 | 
						|
  - The AT+BCC command is now implemented.
 | 
						|
  - Packet encoding now happens ahead of time when possible to avoid delays
 | 
						|
    before sending it.
 | 
						|
  - Source should now always produce complete (padded) buffers to avoid sync
 | 
						|
    problems.
 | 
						|
  - Don't set unnecessary socket options.
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - The pipewiresrc now has an autoconnect argument.
 | 
						|
  - The metadata plane count is now handled correctly in more cases.
 | 
						|
  - Stream errors are now handled correctly to stop the GStreamer elements.
 | 
						|
 | 
						|
# PipeWire 0.3.66 (2023-02-16)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Fix a regression in the pulseaudio module-combine-stream because the new
 | 
						|
    module-combine-stream was not installed.
 | 
						|
  - PipeWire can now generate a limits.d config file with our recommended
 | 
						|
    settings for priorities and memlock.
 | 
						|
  - Modules, exec and objects can now be loaded depending on conditions. One
 | 
						|
    example is the X11-bell module that can now be disabled with a custom
 | 
						|
    property override.
 | 
						|
  - Filter-chain has a new mysofa based spacializer plugin.
 | 
						|
  - Suport was added for different clocks that allow the RTP modules to work
 | 
						|
    with a PTP clock, for example.
 | 
						|
  - Many bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Avoid rate switches when the graph is idle.
 | 
						|
  - The rate selection algorithm was improved. This ensures minimal performance
 | 
						|
    and quality loss when resampling.
 | 
						|
  - The default min.quantum was set to 32 again after it got erronously changed
 | 
						|
    to (the too low) 16 in version 0.3.45.
 | 
						|
  - Fix compilation issues with rust bindings because of macros in defines.
 | 
						|
    Work around it for now. (#2952)
 | 
						|
  - Invalid file mappings are now refused (#2617 #2914 #3007)
 | 
						|
  - Modules, exec and objects can now be loaded depending on conditions. One
 | 
						|
    example is the X11-bell module that can now be disabled with a custom
 | 
						|
    property override.
 | 
						|
  - Filter now also supports _trigger_process() to drive the graph.
 | 
						|
  - TID is now added to the journald log.
 | 
						|
  - PipeWire generates and installs */etc/security/limits.d/25-pw-rlimits.conf*
 | 
						|
    that by default contains project's recommended settings. Creation of the
 | 
						|
    pipewire group is left to the distro or user ( `groupadd -r pipewire` ).
 | 
						|
    See the rlimits-* Meson options for controlling this behavior.
 | 
						|
  - Additionally there is now by default disabled Meson option that will
 | 
						|
    install */etc/security/limits.d/20-pw-defaults.conf* with the current Linux
 | 
						|
    default memlock value. Distros with only kernels >=5.16 or always using
 | 
						|
    systemd v251 or newer do not need this. But all other builds should set the
 | 
						|
    `-Dpam-defaults-install=true` Meson option to ensure that the memlock value
 | 
						|
    is always large enough. Thanks to Rickie Schroeder for pointing out that
 | 
						|
    the default Linux memlock value has been somewhat recently increased.
 | 
						|
 | 
						|
## modules
 | 
						|
  - Install module-combine-stream.
 | 
						|
  - RTP source now has support for custom channel names.
 | 
						|
  - RTP source will now stop when inactive.
 | 
						|
  - Filter-chain has a new mysofa based spacializer plugin.
 | 
						|
  - The RTP modules can now use direct clock timestamps to send and receive
 | 
						|
    packets. This makes it possible to synchronize sender and receiver with
 | 
						|
    a PTP clock, for example.
 | 
						|
  - Filter-chain now has an invert plugin to invert the polarity of a
 | 
						|
    signal. (#3008)
 | 
						|
 | 
						|
## SPA
 | 
						|
  - There is now an option to set the channels used for probing Pro Audio
 | 
						|
    devices. This could unlock more samplerates for some devices when they are
 | 
						|
    probed with fewer channels. (#2990)
 | 
						|
  - Support was added for other clocks than the MONOTONIC clock in the
 | 
						|
    driver nodes. This can be used to synchronize the graph to a PTP clock,
 | 
						|
    for example.
 | 
						|
  - The ALSA source has some more headroom when rate matching to avoid
 | 
						|
    stuttering when following another driver.
 | 
						|
  - libcamera controls are now mapped to standard PipeWire property values.
 | 
						|
  - The channelmixer has seen some improvements. MONO and undefined channel
 | 
						|
    layouts are now upmixed and downmixed more correctly. (#3010)
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Many BAP support fixes.
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - The gstreamer elements now support buffer video metadata so that strides
 | 
						|
    are correctly handled.
 | 
						|
  - pipewiresrc will now error out correctly in more cases. (#2935)
 | 
						|
 | 
						|
## JACK
 | 
						|
  - The frame to/from time functions are improved to also work with negative
 | 
						|
    time and frame offsets.
 | 
						|
 | 
						|
# PipeWire 0.3.65 (2023-01-26)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Add back the deprecated symbols but make sure a deprecated warning is
 | 
						|
    emitted for them. This fixes compilation issues in bindings.
 | 
						|
  - Fix an error in the AVX code that could cause crackling in filter-chain
 | 
						|
    when using the mixer.
 | 
						|
  - The convolver in filter-chain can now select an IR from a list of IRs
 | 
						|
    that best matches the current samplerate. Also resampling of the IR
 | 
						|
    has been improved.
 | 
						|
  - A new native module-combine-stream was added. You can use this to create
 | 
						|
    a 5.1 device from 3 stereo soundcards, for example, or direct the output
 | 
						|
    to multiple sinks at once.
 | 
						|
  - Support for Bluetooth MIDI was added. This requires a wireplumber
 | 
						|
    addition as well.
 | 
						|
  - An ALSA plugin rule was added to tweak the buffer settings in Davinci
 | 
						|
    Resolve so that it now runs with acceptable latency. (#1697)
 | 
						|
  - Support for compress offload was added using tinycompress. This allows
 | 
						|
    compressed formats to be decoded in hardware using ALSA on some devices.
 | 
						|
  - Many more buffixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Add back the deprecated symbols but make sure a deprecated warning is
 | 
						|
    emitted for them. (#2952)
 | 
						|
  - Fix a regression when running older servers and newer clients (such as
 | 
						|
    flatpaks on older server) where the server would run clients too soon,
 | 
						|
    causing crashes. (#2964)
 | 
						|
  - Ensure that environment variables override any config values.
 | 
						|
 | 
						|
## Tools
 | 
						|
  - pw-cli has received some improvements in the output.
 | 
						|
  - pw-cat can now use ffmpeg to demux streams for compress offload.
 | 
						|
 | 
						|
## modules
 | 
						|
  - The convolver IR volume is now preserved after resampling.
 | 
						|
  - Adapter ports can now have a custom prefix.
 | 
						|
  - module-rt now clamps the realtime priority to the user allowed one if
 | 
						|
    it is within an acceptable range. Before it would fall back to RTKit
 | 
						|
    immediately.
 | 
						|
  - The module-echo-cancel can now have per stream channel layouts which
 | 
						|
    makes it possible to link to specific audio ports on a device. (#2939)
 | 
						|
  - Fix an error in the AVX code that could cause crackling in filter-chain
 | 
						|
    when using the mixer. (#2965)
 | 
						|
  - The convolver in filter-chain can now select an IR from a list of IRs
 | 
						|
    that best matches the current sample-rate.
 | 
						|
  - module-pipe-* now better matches the pulseaudio properties. (#2973)
 | 
						|
  - A new combine-stream module was added to combine multiple sinks into
 | 
						|
    one sink. It is also possible to merge multiple sources into one.
 | 
						|
  - module-rtp-source now has match rules to select what SAP sessions
 | 
						|
    to stream from. There were also improvements to the buffering and
 | 
						|
    latency handling.
 | 
						|
  - module-rtp-sink now handles multicast loopback correctly.
 | 
						|
  - module-rtp-sink implements min-ptime and max-ptime to control the
 | 
						|
    send packet latency.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - A new modifier flag was added to the video format parser helper to
 | 
						|
    allow 0 (linear) as a valid modifier. (#2943)
 | 
						|
  - Params includes were reorganized to make it more scalable. Many compressed
 | 
						|
    audio formats were added.
 | 
						|
  - The alsa pcm plugin now handles invalid values from the driver
 | 
						|
    gracefully. (#2953)
 | 
						|
  - Fix some potential stuttering cause by wrong scaling and overflow
 | 
						|
    of the output buffers in audioconvert. (#2680)
 | 
						|
  - Debug output is now also sent to the log instead of stdout. (#2923)
 | 
						|
  - A debug context was added to debug macros to implement custom debug
 | 
						|
    handling. This is used to redirect the debug of pods to the debug log
 | 
						|
    instead of using some custom duplicated code.
 | 
						|
  - Fix some warnings for potentially undefined shifts in format
 | 
						|
    conversion.
 | 
						|
  - Support for compress offload was added using tinycompress. This is mostly
 | 
						|
    used on some embedded hardware where decoding of audio formats can be
 | 
						|
    done in hardware.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Some fixes for LE audio were added.
 | 
						|
  - Support for Bluetooth MIDI was added. This requires a wireplumber
 | 
						|
    addition as well.
 | 
						|
  - Reply OK to empty commands.
 | 
						|
  - Improve compatibility with some devices that send stray \n such as
 | 
						|
    the Sennheiser HD 350BT. (#2991)
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Devices with unsupported formats (by the pulseaudio API) are now also
 | 
						|
    listed in the pulseaudio API (with invalid formats).
 | 
						|
  - The native module-combine-stream is used for module-combine-sink.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Make jack.merge-monitor default to true to better match the jack1/2
 | 
						|
    behaviour. Add an exception for mixxx, which is more usable with
 | 
						|
    unmerged monitors. (#1760)
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - The property handling in the ALSA plugin was improved. alsa.properties
 | 
						|
    and alsa.rules can now be added to the config file.
 | 
						|
  - A rule was added to tweak the buffer settings in Davinci Resolve so that
 | 
						|
    it can run with acceptable latency. (#1697)
 | 
						|
  - ALSA volume will now also use cubic volumes, like pulseaudio.
 | 
						|
  - The ALSA ctl plugin now also uses the client-rt.conf file.
 | 
						|
  - A new alsa.volume-method was added to configure cubic or linear volume.
 | 
						|
    This can be set per application using the rules.
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - pipewiresrc will now advertize DMABUF support if the pipeline suports
 | 
						|
    this.
 | 
						|
  - pipewiresrc will now always be a live source unless told otherwise.
 | 
						|
 | 
						|
# PipeWire 0.3.64 (2023-01-12)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Clear old buffer memory on ports to fix some SIGBUS errors.
 | 
						|
  - It is now possible to assign custom port names to the ports from an
 | 
						|
    adapter. This feature is helpful to those who use a multichannel
 | 
						|
    interface with long-term connections. This way they can label each
 | 
						|
    port with its designation, such as an instrument name or anything else
 | 
						|
    to be displayed in a patchbay or DAW.
 | 
						|
  - Fix some issues with node suspend and quantum and rate calculations.
 | 
						|
  - Fix some regressions in pulse-tunnel and RTP-source adaptive resampling
 | 
						|
    that could cause synchronization problems.
 | 
						|
  - UCM devices now also have a Pro Audio profile.
 | 
						|
  - NODE_TARGET (with the object.id) is now deprecated, use TARGET_OBJECT
 | 
						|
    (with the object.serial, which is not reused and can avoid races).
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Clear all peer input port buffers when suspending. This fixes some
 | 
						|
    SIGBUS errors when some plugins were using old memory. (#2914)
 | 
						|
  - Fix a case where nodes that were not supposed to be suspended, were
 | 
						|
    kept suspended on a rate change. (#2929)
 | 
						|
  - Fix an error in the quantum and rate calculations that could cause
 | 
						|
    nodes to run with wrong quantum and rates when multiple rates were
 | 
						|
    allowed. (#2925)
 | 
						|
 | 
						|
## Tools
 | 
						|
  - pw-dump will now sort dictionaries to make it easier to compare
 | 
						|
    different outputs.
 | 
						|
  - Improve output of pw-reserve.
 | 
						|
  - pw-loopback uses TARGET_OBJECT so you will need to use the serial
 | 
						|
    id (or better the name) as the target instead of the object id.
 | 
						|
 | 
						|
## modules
 | 
						|
  - The filter-chain modules has seen some cleanups, refactoring and
 | 
						|
    optimizations in the various DSP functions.
 | 
						|
  - The ROC module now supports setting a custom samplerate.
 | 
						|
  - ROC 0.2.X is now required.
 | 
						|
  - The pulse tunnel and RTP source were not updating the rate field
 | 
						|
    correctly which could cause synchronization problems. (#2891)
 | 
						|
  - The filter-chain now supports an arbitrary number of control
 | 
						|
    properties. (#2933)
 | 
						|
  - It is now possible to assign custom port names to the ports from an
 | 
						|
    adapter with the PW_KEY_NODE_CHANNELNAMES.
 | 
						|
  - Support was added for capture and playback props in echo-cancel.
 | 
						|
    (#2939)
 | 
						|
 | 
						|
## SPA
 | 
						|
  - The ACP code now has an option to set the probe samplerate. (#1599)
 | 
						|
  - UCM devices now also have a Pro Audio profile.
 | 
						|
  - Filtering of Step ranges is now implemented.
 | 
						|
 | 
						|
## Pulse-Server
 | 
						|
  - The channel-map is now set correctly on the echo-cancel module.
 | 
						|
  - source_master and sink_master are now correctly handled in module
 | 
						|
    echo-cancel.
 | 
						|
  - Fix a regression in DRAIN where resuming after a DRAIN would fail.
 | 
						|
    This caused problems for espeak. (#2928)
 | 
						|
  - TARGET_OBJECT is now used to make it possible to use the indexes
 | 
						|
    as a target.
 | 
						|
  - ladspa-source and remap-source can now also link to monitors.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - The ALSA plugin now handles the target.object correctly when set to
 | 
						|
    -1. (#2893)
 | 
						|
 | 
						|
## V4L2
 | 
						|
  - The v4l2 replacement library now also follows symlinks.
 | 
						|
  - Support for getting and setting controls was added.
 | 
						|
  - Support for G_PARM was added.
 | 
						|
  - The environment variable PIPEWIRE_V4L2_TARGET can be used to force
 | 
						|
    an application onto a specific camera.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Fix compilation without ldac_abr.
 | 
						|
  - Fix a missing brace in CIND reply. This could cause some devices to
 | 
						|
    fail.
 | 
						|
  - Fix configuration of the initial latency.
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - The device provider now supports setting an fd so that it can connect
 | 
						|
    to PipeWire sessions from the portal.
 | 
						|
  - DMABuf support was re-enabled in gstpipewiresrc.
 | 
						|
 | 
						|
# PipeWire 0.3.63 (2022-12-15)
 | 
						|
 | 
						|
This is a quick bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Fix a critical bug that causes audio distortion in some cases when using
 | 
						|
    AVX2.
 | 
						|
  - Fix a crash in mpv caused by deinit of PipeWire.
 | 
						|
  - Resample the convolver IR to match the graph samplerate for better
 | 
						|
    results.
 | 
						|
  - Many more small bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Fix a segfault in the PipeWire deinit code triggered by mpv in some
 | 
						|
    cases. (#2881)
 | 
						|
  - Fix docs about SPA_PLUGIN_DIR.
 | 
						|
  - Always dlclose by default (even under valgrind). Add an option with
 | 
						|
    PIPEWIRE_DLCLOSE to select alternative behaviour.
 | 
						|
  - Improve PIPEWIRE_DEBUG category handling.
 | 
						|
 | 
						|
## modules
 | 
						|
  - Resample the IR for the convolver when the IR samplerate and graph rate
 | 
						|
    don't match.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Handle spurious reads from timerfd gracefully.
 | 
						|
  - Fix potential stack-use-after-scope when starting Audacity.
 | 
						|
  - Fix distorted audio when using AVX2. (#2885)
 | 
						|
  - Remove fallback to default channel map in channelmix.
 | 
						|
  - Improve sorting of MIDI events, use the same order as Ardour. (#1816)
 | 
						|
  - Enable LFE downmixing by default. (#2425)
 | 
						|
  - Make IEC958/AC3 and IEC958/DTS work better by enforcing a fixed minimal
 | 
						|
    buffering for the encoder to avoid stuttering. (#2650)
 | 
						|
 | 
						|
## Pulse-Server
 | 
						|
  - Add a new pulse.cmd config section to execute pulse commands, currently
 | 
						|
    only for loading modules. This removes the dependency on pactl.
 | 
						|
  - Improve debug of messages.
 | 
						|
 | 
						|
# PipeWire 0.3.62 (2022-12-09)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - A regression in screensharing was fixed. It was caused by a race when
 | 
						|
    activating links and driver nodes.
 | 
						|
  - Video transform metadata was added so that cameras and screen sharing
 | 
						|
    can report the video orientation and transformations.
 | 
						|
  - Support for the PulseAudio module-gsettings was added to make paprefs
 | 
						|
    work.
 | 
						|
  - Support for bluetooth offloading was added. This allows for the bluetooth
 | 
						|
    reception, decoding and playback to happen completely in hardware.
 | 
						|
    This also requires some support in WirePlumber.
 | 
						|
  - Many bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - More work on stopping nodes in a more controlled way.
 | 
						|
  - Fix a race in starting nodes and drivers. In some cases the driver
 | 
						|
    node would already be started while the link to the peer node was not
 | 
						|
    ready yet. This caused regressions in screen sharing. The driver is
 | 
						|
    now only started after all the followers and links completed.
 | 
						|
  - Fix a case where a slow capture stream would not recycle buffers
 | 
						|
    anymore and stall. (#2874)
 | 
						|
  - Fix a subtle bug in pw_loop_invoke that could cause callbacks to be
 | 
						|
    delayed and cause crashes in some cases.
 | 
						|
  - Fix a case where IPC was done from the data-thread and could cause
 | 
						|
    crashes.
 | 
						|
 | 
						|
## Tools
 | 
						|
  - Silence some expected errors in the pw-top output.
 | 
						|
 | 
						|
## modules
 | 
						|
  - The filter-chain has seen some optimizations in the copy plugin and
 | 
						|
    the convolver.
 | 
						|
  - The zeroconf plugin will now only unpublish services from the server
 | 
						|
    that was removed.
 | 
						|
  - Fix a potential crash when stopping pw-loopback.
 | 
						|
  - Some harmless errors were turned into info messages.
 | 
						|
  - Fix some cases where pw_stream methods were called from the data-thread
 | 
						|
    that could cause segfaults. (#2633)
 | 
						|
 | 
						|
## SPA
 | 
						|
  - There is now a video transform metadata that indicates how a video
 | 
						|
    frame was transformed (rotated/flipped). libcamera and the GStreamer
 | 
						|
    elements now have support for this metadata.
 | 
						|
  - The SPA volume plugin is now disabled from the default build.
 | 
						|
  - Handle missing control info in libcamera.
 | 
						|
  - Handle errors from loop better, don't call the callbacks on errors.
 | 
						|
  - Somewhat improve performance in some audioconvert AVX2 code for format
 | 
						|
    conversion.
 | 
						|
  - Fix PortConfig and EnumPortConfig params in audioconvert and
 | 
						|
    audioadapter to reflect what is actually going on instead of using
 | 
						|
    hardcoded values.
 | 
						|
  - Pass ignore-dB property correctly in all cases.
 | 
						|
  - Probing is now done in 48KHz again. (#2857)
 | 
						|
 | 
						|
## Pulse-server
 | 
						|
  - IPv4 addresses are now added first to the list and exposed first with
 | 
						|
    zeroconf discover.
 | 
						|
  - module-gsettings was added to make paprefs work.
 | 
						|
  - The pulse.idle.timeout option was disabled by default and only enabled
 | 
						|
    for selected apps (speech-dispatcher) because it caused some problems
 | 
						|
    for other apps. (#2880)
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Only process valid ports. Could fix some crashes. (#2863)
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Support was added for offloading bluetooth handling. Some hardware can
 | 
						|
    receive, decode and play the bluetooth audio directly in hardware.
 | 
						|
 | 
						|
# PipeWire 0.3.61 (2022-11-24)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Fix a bug in audioadapter that could cause crashes when switching
 | 
						|
    bluetooth profiles.
 | 
						|
  - Fix sound in QEMU, deadbeef and openal again.
 | 
						|
  - libcamera plugin fixes, dynamic add and remove should now work with
 | 
						|
    the next wireplumber version.
 | 
						|
  - Fix a regression in pw-midiplay where the first buffer would not
 | 
						|
    play and some events would be missing.
 | 
						|
  - The network module now doesn't export other network sources
 | 
						|
    anymore.
 | 
						|
  - pulse-server now detects clients that keep underrunning for a long time
 | 
						|
    and will pause them to save power.
 | 
						|
  - Many more bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Optimize away some useless graph recalculations.
 | 
						|
  - Increase alternative sample rates from 16 to 32.
 | 
						|
  - FreeBSD and musl build fixes.
 | 
						|
  - Silence some module loading errors when the error can be ignored.
 | 
						|
  - Fix initial buffer requested size for pw-stream when operating in
 | 
						|
    async mode. This also indirectly fixes the first buffer in
 | 
						|
    pw-midiplay. (#2843)
 | 
						|
 | 
						|
## Modules
 | 
						|
  - Set the network property on pulse-tunnel streams so that they are
 | 
						|
    not exported anymore. (#2384)
 | 
						|
  - Filter-chain has optimized mix functions now.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Handle some errors in libcamera better.
 | 
						|
  - Fix libcamera remove events. Fix the id allocation for devices.
 | 
						|
  - Fix a bug in audioadapter where it would not renegotiate after
 | 
						|
    a port reconfiguration, leading to crashes, especially when
 | 
						|
    automatically switching profiles in bluetooth. (#2764)
 | 
						|
  - Do ALSA probing in 44100Hz again. Some devices seem to fail
 | 
						|
    otherwise for some unknown reason. (#2718)
 | 
						|
  - Force playback start when the ALSA buffer is full. This fixes sound
 | 
						|
    in QEMU. (#2830)
 | 
						|
  - Support Digital 5.1 AC3 for Asus Xonar SE.
 | 
						|
  - Improve format renegotiation in audioadapter. This makes the ALSA
 | 
						|
    plugin work again for deadbeef. (#2832)
 | 
						|
  - Fix latency reporting on adapter DSP ports.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Fix a bug where openal based applications would hang. (#2821)
 | 
						|
  - Improve zeroconf publish. Only publish on the address of the first
 | 
						|
    running server. This avoids duplicate entries for IPv4 and IPv6.
 | 
						|
    Add support for republish entries when new servers are started.
 | 
						|
  - Add a pulse.idle.timeout option (default to 5 seconds) to pause
 | 
						|
    streams that have been underrunning for this amount of time. Badly
 | 
						|
    behaving clients will then not keep the graph and device busy so
 | 
						|
    that devices can be suspended to save battery. This should give
 | 
						|
    better default behaviour with speech-dispatcher. (#2839)
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Add an option to configure the filter character.
 | 
						|
  - Fix connect_callbacks. It was only called once for output ports.
 | 
						|
    (#2841)
 | 
						|
  - Add option to set node.passive on jack clients. Make some quirks
 | 
						|
    for qsynth to make it suspend and fade out better.
 | 
						|
 | 
						|
# PipeWire 0.3.60 (2022-11-10)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - The filter-chain now handles errors better and has fixes for many
 | 
						|
    crasher bugs.
 | 
						|
  - A new RTP module was added with a sender and receiver. It uses SAP
 | 
						|
    to announce and consume RTP streams and is compatible with the
 | 
						|
    PulseAudio RTP modules.
 | 
						|
  - Many small bluetooth improvements and fixes.
 | 
						|
  - The alsa plugin will now only start playback when there is data. This
 | 
						|
    results in better sync and lower latency between capture and playback.
 | 
						|
  - The v4l2 and libcamera plugins have seen a lot of improvements. They
 | 
						|
    support control properties now. Also pw-v4l2 has seen many improvements
 | 
						|
    and mostly passes the v4l2-compliance test now.
 | 
						|
  - Many more bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Code cleanups, compiler warning fixes.
 | 
						|
  - Add some extra checks to avoid scheduling an inactive node.
 | 
						|
  - Rework the sequence of events to start and stop nodes.
 | 
						|
  - Improve param enumeration.
 | 
						|
  - An option was added to give priority to the Buffer params of the
 | 
						|
    consumer. This makes it possible to use the default values of the
 | 
						|
    consumer (instead of the producer) when capturing from a source.
 | 
						|
  - The graph rate selection was improved to pick a rate closest to the
 | 
						|
    requested one (instead of picking the default).
 | 
						|
 | 
						|
## Modules
 | 
						|
  - Fix some crashes in filter-chain. (#2737)
 | 
						|
  - X11 Bell module will now be loaded by default when available.
 | 
						|
  - A new RTP module was added with a sender and receiver. It uses SAP
 | 
						|
    to announce and consume RTP streams and is compatible with the
 | 
						|
    PulseAudio RTP modules.
 | 
						|
  - Improve RAOP compatibility.
 | 
						|
  - The echo-cancel module now uses the resampler prefill option to align
 | 
						|
    input and output samples without buffering. Better latency control
 | 
						|
    when starting and stopping has been implemented.
 | 
						|
  - The pulse tunnel will now write aligned samples to pulseaudio even
 | 
						|
    when the ringbuffer wraps around. This fixes playback issues with
 | 
						|
    multichannel sinks.
 | 
						|
  - Add a delay option to module-loopback using a ringbuffer.
 | 
						|
  - Implement echo-cancel params.
 | 
						|
  - The filter-chain module has better error reporting.
 | 
						|
  - The LADSPA search path was extended with some more common paths.
 | 
						|
  - The echo-canceler input can now also be a monitor of a sink. This
 | 
						|
    improves compatibility with some proton games that expect a real
 | 
						|
    sink instead of a virtual one.
 | 
						|
 | 
						|
## Tools
 | 
						|
  - Better error reporting in pw-link.
 | 
						|
  - pw-top now also shows IEC958 passthrough formats and JPEG/H264 video
 | 
						|
    formats.
 | 
						|
  - pw-top refreshes the screen faster.
 | 
						|
  - pw-top now prints the state of the node and shows less info for
 | 
						|
    inactive nodes.
 | 
						|
  - pw-dump now uses the new seq field in the spa_param_info to discard
 | 
						|
    old param updates and avoid duplicate params in the output.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Add ModemManager support in the native backend.
 | 
						|
  - Clean up GetManagedObjects handling.
 | 
						|
  - Handle QoS from the endpoints in the codec.
 | 
						|
  - Increase the socket buffer to have more control over the rate and QoS.
 | 
						|
  - Simplify the packet flushing code.
 | 
						|
  - Stop processing nodes before destroying them.
 | 
						|
  - Fix timers when a source switches drivers.
 | 
						|
  - Codecs can now share endpoints. This reduces the amount of endpoints and
 | 
						|
    avoids problems with devices that can't handle a large amount of
 | 
						|
    codec endpoints.
 | 
						|
  - Report batery status to UPower for HFP AG.
 | 
						|
  - Fix bitpool increase.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - The audioresampler now avoids clicks and pops between activating and
 | 
						|
    deactivating the adaptive resampler when used by the stream API.
 | 
						|
  - Use default locale to parse float parameters.
 | 
						|
  - The upmix functions now have SSE optimizations.
 | 
						|
  - Avoid recalculating the complete channelmix setup when only the
 | 
						|
    volume changes.
 | 
						|
  - The alsa plugin will now only start playback when there is data. This
 | 
						|
    results in better sync and lower latency between capture and playback.
 | 
						|
  - The ALSA MIDI sequencer will now pull data from the graph even when it
 | 
						|
    did not output anything. Fixes some graph stalls with the sequencer in
 | 
						|
    some cases. (#2775)
 | 
						|
  - v4l2 and libcamera sources now recycle buffers when nothing is consuming
 | 
						|
    them. This avoids stalling the graph.
 | 
						|
  - libcamera now suggests a more appropriate frame size than the smallest
 | 
						|
    poster frame.
 | 
						|
  - Improve state changes in audioconvert. (#2764)
 | 
						|
  - A new seq field was added to spa_param_info to keep track of pending
 | 
						|
    param updates.
 | 
						|
  - Support speaker output only on RealTek ALC4080. (#2744)
 | 
						|
  - The v4l2 source now supports setting controls.
 | 
						|
  - The libcamera plugin now supports enumerating and setting controls.
 | 
						|
  - A new unit test for 6.1 channel mapping was added. (#2809) More debug
 | 
						|
    info was added to audioconvert for the channel matrix.
 | 
						|
  - Audioconvert will now also upmix a rear-center channel when needed.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Add support for the RTP send and recv modules with the new native
 | 
						|
    RTP module.
 | 
						|
  - Add option to set latency for pulse-tunnel streams and
 | 
						|
    module-zeroconf-discover.
 | 
						|
  - The socket will now be given the same permissions as what pulseaudio
 | 
						|
    did (0777).
 | 
						|
  - Implement module-loopback latency_msec correctly with the new delay
 | 
						|
    parameter.
 | 
						|
  - sysfs.path is now filled with the same data as pulseaudio.
 | 
						|
  - The manager now uses the new seq field in the spa_param_info.
 | 
						|
  - Fix a bug where in some cases the read pointer would get out of sync
 | 
						|
    and cause too large requests. (#2799)
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - The alsa plugin now reuses the stream in prepare which results in
 | 
						|
    better performance.
 | 
						|
  - Some deadlocks have been fixed in the ALSA plugin.
 | 
						|
  - The ALSA plugin reports more accurate timing information in some cases.
 | 
						|
 | 
						|
## V4l2
 | 
						|
  - The v4l2 compatibility layer has received a lot of updates.
 | 
						|
  - Improved node names and format enumeration.
 | 
						|
  - Support for multiple /dev/videoX devices, each mapped to a unique
 | 
						|
    PipeWire node.
 | 
						|
  - Passes the v4l2-compliance test now with both the v4l2 and libcamera
 | 
						|
    backend in PipeWire.
 | 
						|
  - Improved mmap support for inline buffer memory. This makes it possible to
 | 
						|
    consume PipeWire streams.
 | 
						|
  - Negotiation works more reliably now.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Implement jack_acquire_real_time_scheduling() and
 | 
						|
    jack_drop_real_time_scheduling() by keeping the thread utils in a global
 | 
						|
    state.
 | 
						|
  - Fix jack_client_thread_id() to return NULL when the client is not active,
 | 
						|
    just like jack1 and jack2.
 | 
						|
  - An option was added to let the jack_set_buffer_size() function update the
 | 
						|
    global metadata. A quirk was added so that jack_bufsize uses this new feature
 | 
						|
    to make the buffer size settings persistent and global, just like jack.
 | 
						|
  - jack_port_register() and jack_port_unregister() can be called on an
 | 
						|
    active client so make this thread safe. (#2652)
 | 
						|
 | 
						|
# PipeWire 0.3.59 (2022-09-30)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Fix possible wrong samplerate in loopback streams after suspend and
 | 
						|
    rate switch.
 | 
						|
  - module-filter-chain can now adapt to the graph samplerate.
 | 
						|
  - Fix some potential stuttering and crackling in pulse-server.
 | 
						|
  - Add Bluetooth LE support. This requires experimental kernel and bluez
 | 
						|
    support.
 | 
						|
  - The ALSA plugin has more options to control the buffer size. This can
 | 
						|
    be used to work around high latency in davinci resolve.
 | 
						|
  - Many bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Add audio capture example with volume meter.
 | 
						|
  - Fix a case where a rate switch would not suspend all the nodes of the
 | 
						|
    driver first. This could cause wrong samplerates in streams.
 | 
						|
  - Fix a case where a node would be Paused while still added to the
 | 
						|
    graph, causing potential crashes. (#2701)
 | 
						|
 | 
						|
## Modules
 | 
						|
  - module-filter-chain and module-loopback now use the resample.prefill
 | 
						|
    option to avoid buffering extra samples and causing unwanted latency
 | 
						|
    when resampling is activated.
 | 
						|
  - module-filter-chain can now adapt to the graph samplerate.
 | 
						|
  - Improve module-raop to support the ALAC codec as raw PCM.
 | 
						|
  - Improve RTSP parsing to improve compatibility.
 | 
						|
 | 
						|
## Tools
 | 
						|
  - Fix 100% CPU in pw-cli monitor mode. (#2709)
 | 
						|
  - spa-acp-tool can now be exited with ctrl-D.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Various libcamera fixes and improvements.
 | 
						|
  - Set stride on audioconvert output buffers.
 | 
						|
  - Make sure we always place the last requested size from the resampler
 | 
						|
    on the buffers in pw-stream.
 | 
						|
  - Add resample.prefill option in the resampler to fill the history with
 | 
						|
    0 so that we don't have smaller buffers at the start.
 | 
						|
  - Make sure that when an overflow corrupts a POD, that it will always
 | 
						|
    stay corrupted.
 | 
						|
  - Rate limit some ALSA warnings and reduce some unwanted warnings.
 | 
						|
  - Don't recalculate the audioconverter state for each pause/play. (#2701)
 | 
						|
  - Fix some POD parsing inconsistencies and potential overflows.
 | 
						|
  - Add support for Asus Xonar SE.
 | 
						|
  - Fix Flush command handling. It should not stop playback. (#2726)
 | 
						|
  - Refactor the peaks function and add some unit tests and optimizations.
 | 
						|
  - The channelmix has an optimized nXm converter and new unit tests.
 | 
						|
  - Normalization in the channelmixer was fixed.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - The requested latency of record streams was reduced to fix some
 | 
						|
    stuttering in Teamspeak. (#2702)
 | 
						|
  - Tweak the max amount of bytes sent to a client. (#2711) (#2715)
 | 
						|
  - Improve maxlength calculations, this fixes some crackling noise with
 | 
						|
    high samplerate and channel counts in some players (audacious).
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Merge Bluetooth LE support.
 | 
						|
  - Make sure we are backward compatible with WirePlumber.
 | 
						|
  - Fix some HFP and HSP AT command parsing. (#2463)
 | 
						|
  - Use HFP by default over HSP.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - Increase max number of periods.
 | 
						|
  - The parameters handling was improved. There is now an option to set the
 | 
						|
    buffer-bytes of the ALSA plugin.
 | 
						|
  - PIPEWIRE_ALSA can now be used as an environment variable to restrict the
 | 
						|
    plugin formats and buffer size.
 | 
						|
 | 
						|
# PipeWire 0.3.58 (2022-09-15)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Fix a regression that could cause audio crackling.
 | 
						|
  - Fix a regression in RTKit because rlimit was not set correctly.
 | 
						|
  - JAVA sound applications will now alsa work with the pulseaudio-alsa plugin.
 | 
						|
  - pw-top will now show the negotiated formats of devices and streams.
 | 
						|
  - Fix some potential crashes when starting streams.
 | 
						|
  - The ALSA plugin has had improved timing reporting and poll descriptor
 | 
						|
    handling that should improve compatibility.
 | 
						|
  - Many more improvements and bugfixes.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Avoid scheduling nodes before they are added to the graph. This could
 | 
						|
    avoid some crashes when scheduling nodes that were not completely
 | 
						|
    started yet. (#2677)
 | 
						|
 | 
						|
## Tools
 | 
						|
  - pw-top now also shows the negotiated formats of streams and devices.
 | 
						|
    (#2566)
 | 
						|
  - pw-top prints microseconds as "us" now to avoid unicode problems.
 | 
						|
 | 
						|
## Modules
 | 
						|
  - Fix compilation with newer lv2.
 | 
						|
  - Fix setting realtime priority with RTKit, it was not setting rlimit
 | 
						|
    correctly and RTKit would refuse to change the priority.
 | 
						|
  - Fix some playback problems with RAOP sink. (#2673)
 | 
						|
  - Filter chain will now warn when a non-existing control property is
 | 
						|
    used in the config file. (#2685)
 | 
						|
  - Filter chain can now handle control port names with ":" in the name.
 | 
						|
    (#2685)
 | 
						|
  - The echo-cancel module and interface now has activate/deactivate
 | 
						|
    functions to make it possible for plugins to reset their state.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Make sure audioconvert uses the given channelmap and channels for the
 | 
						|
    volumes, even when not negotiated yet. This makes it possible to change
 | 
						|
    the volume before the node has been negotiated.
 | 
						|
  - Refactor the peaks resampler. Fix an error in the SSE code.
 | 
						|
  - Fix DSD min/max rates, avoid exposing impossible rates.
 | 
						|
  - Set monitor port buffer size correctly. This could cause some crackling
 | 
						|
    and hickups. (#2677)
 | 
						|
  - Make ALSA sequencer port names unique.
 | 
						|
 | 
						|
## Pulse-server
 | 
						|
  - Rework the capture buffer attributes to better match pulseaudio. This
 | 
						|
    fixes a regression where opening pavucontrol could cause crackling.
 | 
						|
    (#2671)
 | 
						|
  - Implement TRIGGER and PREBUF methods.
 | 
						|
  - Handle clients that send more than the requested amount of data.
 | 
						|
    PipeWire will now also keep this as extra buffered data like PulseAudio.
 | 
						|
    This fixes JAVA sound applications when they are running on top of the
 | 
						|
    PulseAudio ALSA plugin. (#2626,#2674)
 | 
						|
  - Update the requested amount of bytes more like PulseAudio. Fixes
 | 
						|
    stuttering after resume with the GStreamer pulseaudio sink. (#2680)
 | 
						|
 | 
						|
## ALSA Plugin
 | 
						|
  - More debug info was added. The time reporting was improved.
 | 
						|
  - The poll descriptor handling was improved, avoiding some spurious
 | 
						|
    wakeups. (#1697)
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.57 (2022-09-02)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Support masking of conf.d/ files. (#2629)
 | 
						|
  - Use org.freedesktop.portal.Realtime when available. This does the
 | 
						|
    correct PID/TID mappings to make realtime also work from flatpaks.
 | 
						|
  - Fix rate adjustement logic in pulse-tunnel. This would cause
 | 
						|
    increasing delays and hickups when using tunnels. (#2548)
 | 
						|
  - Add OPUS as a new vendor codec. Add OPUS-A2DP spec. PipeWire can now
 | 
						|
    send and reveive OPUS data over bluetooth.
 | 
						|
  - An AAC decoder was added so that PipeWire can now also function as
 | 
						|
    an A2DP AAC receiver.
 | 
						|
  - Fix some issues where the wrong samplerate was used. (#2614)
 | 
						|
  - Fix rate match for sources. This fixes an error where follower sources
 | 
						|
    would generate many resync warnings.
 | 
						|
  - Many more bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Support masking of conf.d/ files. (#2629)
 | 
						|
  - Add some more debug info to memfd.
 | 
						|
  - Improve data-loop invoke method. Also flush pending items. (#2631)
 | 
						|
  - Add a filter-chain systemd service file than can be used to start
 | 
						|
    custom filters placed in ~/.conf/pipewire/filter-chain.d/ (#2553)
 | 
						|
  - Improve triggered timestamps for remote nodes.
 | 
						|
  - Fix some potential cross compilation problems due to wrong
 | 
						|
    host_machine.
 | 
						|
  - Check return values of pw_getrandom().
 | 
						|
 | 
						|
## Tools
 | 
						|
  - Updates to pw-cli manpages. (#2552)
 | 
						|
  - Remove the pw-cli dump command. It is mostly implemented as part of
 | 
						|
    wpctl status, pw-dump, pw-link, pw-top and others.
 | 
						|
  - Clean up resource in pw-cat correctly on errors. (#2651)
 | 
						|
 | 
						|
## Modules
 | 
						|
  - Fix compilation of AVB on big-endian. Enable AVB only on Linux.
 | 
						|
  - Use org.freedesktop.portal.Realtime when available. This does the
 | 
						|
    correct PID/TID mappings to make realtime also work from flatpaks.
 | 
						|
  - Fix compilation of ROC module when headers are missing. (#2513)
 | 
						|
  - Improve some error cleanup paths in protocol-native. Improve connect
 | 
						|
    and disconnect.
 | 
						|
  - Fix a potential crash in FFT unload in filter-chain.
 | 
						|
  - Implement PIPEWIRE_NOTIFICATION_FD for notification when the socket
 | 
						|
    is ready.
 | 
						|
  - Try to use rtkit if set_nice() fails.
 | 
						|
  - Fix rate adjustement logic in pulse-tunnel. This would cause
 | 
						|
    increasing delays and hickups when using tunnels. (#2548)
 | 
						|
  - Handle disconnect in pulse-tunnel.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Add OPUS as a new vendor codec. Add OPUS-A2DP spec. PipeWire can now
 | 
						|
    send and reveive OPUS data over bluetooth.
 | 
						|
  - An AAC decoder was added so that PipeWire can now also function as
 | 
						|
    an A2DP AAC receiver.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Tweak the resampler window function some more. (#2574)
 | 
						|
  - Improve format convert performance in some fallback cases.
 | 
						|
  - Fix rounding in format conversion on ARM NEON.
 | 
						|
  - Fix libcamera build error. (#2575)
 | 
						|
  - Fix some issues where the wrong samplerate was used. (#2614)
 | 
						|
  - Don't wait for more samples that can fit in the ringbuffer in ALSA.
 | 
						|
  - Improve buffer size handling in audioconvert, scale the buffers based
 | 
						|
    on the rate conversion and make things work with really large rate
 | 
						|
    conversions as well.
 | 
						|
  - Add more and better debug for ALSA devices.
 | 
						|
  - Improve channel mix: Filter FC and LFE when copying from a different
 | 
						|
    layout. Implement STEREO from FC. Avoid generating REAR from FC in PSD
 | 
						|
    mode.
 | 
						|
  - Fix rate match for sources. This fixes an error where follower sources
 | 
						|
    would generate many resync warnings.
 | 
						|
  - Improve ALSA format negotiation. If the ALSA node is not running and
 | 
						|
    there was a previously configured format, close and reopen the device
 | 
						|
    to enumerate and accept all possible formats again. (#2625).
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - The alsa plugin will now also save the volumes set with the control
 | 
						|
    API. This saves the volumes set with alsa-mixer, for example.
 | 
						|
 | 
						|
## Pulse-server
 | 
						|
  - Flatpak apps with devices=all (Zoom) will now be granted Manager
 | 
						|
    permissions.
 | 
						|
  - Small tweaks to the amount of data sent to clients to work around an
 | 
						|
    issue in freerdp.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Clean up the transport correctly when closing a client. (#2569)
 | 
						|
  - Match context properties in addition to node properties for the jack
 | 
						|
    client rules. (#2580)
 | 
						|
  - Make sure to return an error when disconnected from the server. (#2606)
 | 
						|
  - Fix thread cast problem in jack_client_thread_id().
 | 
						|
  - Increase jack_client_name_size() length and make sure we have space for
 | 
						|
    the \0 byte.
 | 
						|
  - JACK clients from the same application will be added to the same group
 | 
						|
    so that they share the quantum and rate.
 | 
						|
 | 
						|
# PipeWire 0.3.56 (2022-07-19)
 | 
						|
 | 
						|
This is a quick bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - A critical bug that could crash JACK apps was fixed.
 | 
						|
  - Some more regressions in audiomixer were fixed. This should fix crackling
 | 
						|
    and stuttering in some cases as well as some channel mapping regressions.
 | 
						|
  - A bug in the alsa plugin was fixed that could cause stuttering in VMs.
 | 
						|
  - Bluetooth sources should have improved latency and rate control.
 | 
						|
  - Many more bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## Modules
 | 
						|
  - An experimental AVB module was added. It can expose PipeWire as an AVB
 | 
						|
    entity and initiate (broken) streaming between entities.
 | 
						|
  - module-loopback now handles the cases where the input and output channels
 | 
						|
    are different without crashing or producing silence.
 | 
						|
  - The filter-chain module now correctly calculates the output size without
 | 
						|
    crashing in some cases. It also skips invalid ports instead of crashing.
 | 
						|
  - Handle and report pthread errors better.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - The resampler qualities were tweaked a little.
 | 
						|
  - A bug that would sometimes cut off the last part of a buffer was fixed in
 | 
						|
    the alsa plugin. This could cause broken audio in VMs. (#2536)
 | 
						|
  - Access to the alsa mixer and devices is now checked more thoroughly.
 | 
						|
    (#2534)
 | 
						|
  - The spa-resample tool can now also handle large downsampling rates without
 | 
						|
    crashing.
 | 
						|
  - Audioconverter now uses rounding for float to int conversions, which
 | 
						|
    reduces distortions. Compilation of the c functions was separated and uses
 | 
						|
    its own optimization flags now. Unit tests were added. (#2543)
 | 
						|
  - Noise shaping was improved in audioconvert. A new Wannamaker 3 tap shaper
 | 
						|
    was added.
 | 
						|
  - Audioconvert now uses a pattern for generating keep alive noise. This
 | 
						|
    should have much less energy and be even more inaudible. (#2540)
 | 
						|
  - A channel mapping bug was fixed in audioconvert. Unit tests were added.
 | 
						|
  - The dsp audio mixer would sometimes not mix enough and cause dropouts.
 | 
						|
    (#2525)
 | 
						|
 | 
						|
## JACK
 | 
						|
  - A critical bug in the mixer was fixed. It would cause most JACK apps to
 | 
						|
    segfault at startup.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - A new rate control algorithm was implemented for the sources.
 | 
						|
  - The media role on HSP/HFP streams is now fixed.
 | 
						|
 | 
						|
## Pulse Server
 | 
						|
  - Add the resampler delay to delay reporting as well.
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.55 (2022-07-12)
 | 
						|
 | 
						|
This is a quick bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Fix some more critical bugs in the new audioconvert and the queueing
 | 
						|
    in pw-stream that causes stuttering and hickups.
 | 
						|
  - HFP hardware volumes are now saved and restored.
 | 
						|
  - Format conversions and mixing was improved.
 | 
						|
  - Small bug fixes and improvements.
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - The queueing in pw-stream was improved with support for buffer prefetch
 | 
						|
    in async mode.
 | 
						|
  - Add a pw-filter unit test.
 | 
						|
 | 
						|
## tools
 | 
						|
  - pw-midiplay should now work again after improvements in pw-stream.
 | 
						|
 | 
						|
## modules
 | 
						|
  - The RAOP module was improved to support auth_setup.
 | 
						|
  - The RAOP module should now handle timing packets better.
 | 
						|
  - Add some more filter-chain examples.
 | 
						|
  - The filter-chain now has a separate config file with the boilerplate
 | 
						|
    settings. The examples are now just config snippets that can be dropped
 | 
						|
    in .conf.d/ directories, such as the filter-chain.conf.d/ one.
 | 
						|
  - Start suggesting to use target.object instead of node.target in docs
 | 
						|
    and examples.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Use the cosh window again for the resampler. It should now
 | 
						|
    give better resampler quality. (#2483)
 | 
						|
  - Rework the mixer functions. They were rewritten for higher precision and
 | 
						|
    better performance. Add unit tests and benchmarks.
 | 
						|
  - Improve format conversion for 32bits for avoid errors in clang because
 | 
						|
    of undefined behaviour at extreme ranges.
 | 
						|
  - Fix a bug in audioconvert where it would not consume the right
 | 
						|
    amount of samples when the resampler was disabled. This could cause
 | 
						|
    skipping and hickups. (#2519)
 | 
						|
  - Fix bug in audioconvert where it would try to convert the input samples
 | 
						|
    multiple times, causing strange artifacts when upmixing.
 | 
						|
  - Be more strict about valid JSON floats.
 | 
						|
  - device.vendor.id and device.product.id should now always show up in
 | 
						|
    0xXXXX format and should not be converted to floats in pw-dump anymore.
 | 
						|
  - Add triangular dither, add unit tests for noise generation, add some
 | 
						|
    more optimizations.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - HFP and A2DP now expose different routes and thus can have different
 | 
						|
    volumes.
 | 
						|
  - HW Volumes for HFP are now synced better. Volume changes from HW buttons
 | 
						|
    are now also saved.
 | 
						|
 | 
						|
# PipeWire 0.3.54 (2022-07-07)
 | 
						|
 | 
						|
This is a quick bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Some critical bugs in the new audioconvert were fixed. The old
 | 
						|
    adapter had internal buffering that was abused in some places.
 | 
						|
  - The bluetooth sources were rewritten using a ringbuffer to make them
 | 
						|
    more reliable to jitter and remove old audioconvert behaviour.
 | 
						|
  - Many improvements to the audio converter.
 | 
						|
  - Native DSD128 and up is now supported by pw-dsdplay.
 | 
						|
 | 
						|
 | 
						|
## tools
 | 
						|
  - Support DSD128 to DSD512 as well by scaling the amount of samples
 | 
						|
    to read per time slice.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Format conversion is now generated with macros to remove duplication
 | 
						|
    of code.
 | 
						|
  - 24bits conversions were rewritten to use the generic conversion
 | 
						|
    functions.
 | 
						|
  - Temporary buffers in audioconvert are now made large enough in all
 | 
						|
    cases.
 | 
						|
  - Fix draining in audioconvert. This fixes speaker-test.
 | 
						|
  - Fix the channel remapping. (#2502, #2490)
 | 
						|
  - Audio conversion constants were tweaked to handle the maximum ranges
 | 
						|
    and provide lossless conversion between 24bits and floats.
 | 
						|
  - Vector code and C code are aligned and the unit tests are activated
 | 
						|
    again. A new lossless conversion test was added.
 | 
						|
  - Fix an underrun case where the adapter would not ask for more data.
 | 
						|
  - Fix PROP_INFO for audioconvert. (#2488)
 | 
						|
  - Use the blackman window again for the resampler, the cosh window has
 | 
						|
    some bugs that can cause distortion in some cases. (#2483)
 | 
						|
  - Add more unit tests for audioconvert. Add end-to-end conversion tests.
 | 
						|
  - Don't leak memory in format converter.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Card properties are now also added to sinks and sources, just like
 | 
						|
    in pulseaudio.
 | 
						|
  - Increase the maxlength size to at least 4 times the fragsize to avoid
 | 
						|
    xruns.
 | 
						|
  - Fix a race when setting default devices.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - The source was rewritten to use a ringbuffer. This avoids regressions
 | 
						|
    caused by audioconvert. 
 | 
						|
 | 
						|
# PipeWire 0.3.53 (2022-06-30)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - The 44.1KHz samplerate was removed again from the defaults, it caused
 | 
						|
    all kinds of problems with various hardware.
 | 
						|
  - The ALSA plugin should now be able to deal with unsupported samplerates
 | 
						|
    and fall back to the nearest supported one.
 | 
						|
  - The rlimits performance tuning wiki page was updated. Please check
 | 
						|
    you limits.conf file, the version on the wiki used to give all
 | 
						|
    processes a -19 nice level instead of just the pipewire daemon.
 | 
						|
  - The audioconvert plugin was rewritten to be more maintainable and
 | 
						|
    faster. It also gained support for control ports and dithering with
 | 
						|
    optional noise shaping.
 | 
						|
  - An impossible buffering situation is avoided in pulse-server that would
 | 
						|
    cause some applications (sunshine, ...) to stutter.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - 44.1KHz was removed from the allowed rates again. It caused all kinds
 | 
						|
    of regressions due to driver bugs and timing issues on HDMI.
 | 
						|
 | 
						|
## modules
 | 
						|
  - filter-chain now does some more error checking and reporting to
 | 
						|
    avoid some crashes.
 | 
						|
  - filter-chain now supports more channel layouts for input and output
 | 
						|
    that does not need to match the plugin layout.
 | 
						|
  - Format parsing is now more consistent in the modules.
 | 
						|
 | 
						|
## Tools
 | 
						|
  - pw-cli can now also work without readline support.
 | 
						|
  - pw-cat can now also read multichannel ulaw/alaw/u8/s8.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - The audioconvert plugin was rewritten. This should make it more
 | 
						|
    maintainable. It also fixed some issues such as CPU spikes in some
 | 
						|
    cases and crashes in others. The old plugins were removed, for a
 | 
						|
    code reduction of some 6000 lines.
 | 
						|
  - The audioconvert plugin now supports control ports, which can be
 | 
						|
    enabled on nodes in the session manager. This makes it possible to
 | 
						|
    control audioconvert properties using timed events or midi.
 | 
						|
  - NoteOn 0-velocity MIDI events are no longer filtered out. This is
 | 
						|
    a valid event, nodes that can't deal with it should fix it up
 | 
						|
    themselves. The JACK layer still filters out these events by default
 | 
						|
    but this can now be configured with a per-client property.
 | 
						|
  - The running status on midi events is now disabled to match what
 | 
						|
    JACK does.
 | 
						|
  - The ALSA plugin will now deal with driver bugs when a driver announces
 | 
						|
    support for a samplerate but then refuses to use it later.
 | 
						|
  - The ALSA plugin has been optimized a little for sample IO.
 | 
						|
  - V4L2 now doesn't error when there are no controls.
 | 
						|
  - Error handling was improved in the audio converter.
 | 
						|
  - The audioconvert plugin now supports rectangular dithering and
 | 
						|
    noise shaping.
 | 
						|
  - The audioconvert plugin can now insert additional inaudible noise
 | 
						|
    that can be used to keep some amplifiers alive. (#705)
 | 
						|
  - The audioconvert format conversion was changed so that it now produces
 | 
						|
    the full 32 bits range in the C fallback conversion code as well.
 | 
						|
  - The resampler window function was changed to a cosh() window
 | 
						|
    function. (#2483)
 | 
						|
  - Vendor and device id are now in hex.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Tweak the record buffer attributes some more and make sure we don't
 | 
						|
    end up in impossible buffering situations. Fixes an issue with
 | 
						|
    distorted sound in sunshine. (#2447)
 | 
						|
  - Fix a potential crash when updating the client property list.
 | 
						|
  - Some properties on cards were aligned with pulseaudio.
 | 
						|
 | 
						|
## Wiki
 | 
						|
  - Change "priority" to "nice" in the example limits.conf file. It was
 | 
						|
    giving a -19 nice level to all processes, not just the pipewire
 | 
						|
    daemon.
 | 
						|
 | 
						|
# PipeWire 0.3.52 (2022-06-09)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Add 44.1KHz to allowed samplerates. The server can now switch by
 | 
						|
    default between 48KHz and 44.1KHz.
 | 
						|
  - Streams now allocate less resources.
 | 
						|
  - Fix some bugs that could make the server crash.
 | 
						|
  - Bluetooth now supports the LC3plus vendor codec.
 | 
						|
  - Many bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Add 44.1KHz to allowed samplerates.
 | 
						|
  - Avoid setting the locale.
 | 
						|
  - Avoid use-after-free when destroying a node from spa-node-factory.
 | 
						|
  - Avoid using reallocarray when not available.
 | 
						|
  - Set port alias is not otherwise set.
 | 
						|
 | 
						|
## Modules
 | 
						|
  - Improve filter-chain parsing and error reporting. Handle empty
 | 
						|
    nodes. (#1950)
 | 
						|
  - Handle destroy of globals and factory in most modules. (#565)
 | 
						|
  - Add refcounts to client and resources to handle destroy of the
 | 
						|
    protocol. (#565)
 | 
						|
  - Handle global node.name in filter-chain and loopback again, use
 | 
						|
    it to construct unique stream names.
 | 
						|
  - Avoid a wrapped pw-node in the adapter. This reduces resources
 | 
						|
    allocated for streams.
 | 
						|
  - Fix a crash when module-x11-bell was unloaded. (#2392)
 | 
						|
  - Add a new module-pipe-tunnel that can write/read data from a
 | 
						|
    UNIX pipe.
 | 
						|
 | 
						|
## Tools
 | 
						|
  - Fix DSD playback again in pw-cat.
 | 
						|
  - Add -n option to pw-loopback to set node names.
 | 
						|
  - Add -P option to pw-cat to pass properties to the stream.
 | 
						|
  - Support stdin/stdout in pw-cat. (#2387)
 | 
						|
  - pw-dump now also dumps object removal when monitoring. (#2426)
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Avoid duplicate param results in pw-dump for ports.
 | 
						|
  - Avoid endless loops in audioconvert for badly behaving client.
 | 
						|
    (#2359)
 | 
						|
  - Scale max-error in alsa based on quantum and avoid logging a warning
 | 
						|
    when starting.
 | 
						|
  - Improve debug of failed format conversion. (#2383)
 | 
						|
  - Handle offset in the audio dsp mixer inputs and clamp to the max
 | 
						|
    buffer size.
 | 
						|
  - Add option to disable locale support for JSON number conversion.
 | 
						|
  - Add support for Astro A20 Gen2.
 | 
						|
  - Fix some of the test sources, the flags were not set correctly.
 | 
						|
  - Add camera location as property in libcamera and let the session manager
 | 
						|
    Generate a localized description.
 | 
						|
  - Fix some crashes due to wrong vargar types in v4l2 controls. (#2400)
 | 
						|
  - Improve ALSA resync behaviour. (#2257)
 | 
						|
  - Add support for Komplete Audio 6 MK2.
 | 
						|
  - Improve loop cancel while iterating.
 | 
						|
  - Try not to mix surround channels and AUX channels. Make card with many
 | 
						|
    ports look better when not using the Pro Audio profile.
 | 
						|
  - Vulkan filters were added.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Add LC3plus vendor codec.
 | 
						|
  - Handle unsupported indicators better.
 | 
						|
  - Ensure multiple devices on an adapter use different codecs because one
 | 
						|
    endpoint can only be used by one device at a time.
 | 
						|
  - Fix bitpool control as a follower.
 | 
						|
  - Handle bluetooth errors better.
 | 
						|
  - Speed up bluetooth connection by only waiting for the profiles
 | 
						|
    supported by the adapter.
 | 
						|
  - The dummy AVRCP player is disabled by default because it seems to break
 | 
						|
    more devices than it fixes.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Add initial stream latency property so that devices can be started
 | 
						|
    with a resonably accurate latency.
 | 
						|
  - Fix ringbuffer underrun case. (#2366)
 | 
						|
  - module-native-protocol-tcp now has a auth-anonymous option to give
 | 
						|
    full access to the clients.
 | 
						|
  - Report a node as being moved when it is still moving. This improves
 | 
						|
    compatibility with pasystray.
 | 
						|
  - Avoid overallocating message memory.
 | 
						|
  - Don't export NETWORK nodes in zeroconf. (#2384)
 | 
						|
  - Fix stride for TrueHD and DTSHD passthrough. (#2284)
 | 
						|
  - Make sure we don't send too small audio fragments. Fixes capture
 | 
						|
    from multiple tabs in Chrome. (#2418)
 | 
						|
  - Rework module handling some more.
 | 
						|
  - Use the new native module-pipe-tunnel for pipe-sink and pipe-source.
 | 
						|
  - Implement the STREAM_MOVED message when a stream got moved. (#2407)
 | 
						|
  - Fix a potential segfault when stopping the server and a TCP module
 | 
						|
    as still loaded.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - Add support for updating sw_params at runtime, mostly the min-avail
 | 
						|
    param.
 | 
						|
  - Capture and playback nodes are now assumed to use a different clock and
 | 
						|
    will activate the adaptive resampler when linked. This assumption is
 | 
						|
    removed in Pro Audio mode. This provide a better experience out of the
 | 
						|
    box with most devices.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Fix setting properties with PIPEWIRE_PROPS again.
 | 
						|
  - Don't use 64 bits atomic operations for sync_timeout. (#1867)
 | 
						|
  - Cleanup in error cases was improved, avoiding some crashes. (#2394)
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - Fix pipewiresink in mode=provide. (#1980)
 | 
						|
  - Share memory into a new buffer in pipewiresrc to avoid buffer corruption.
 | 
						|
  - Fixes to the source and fd use.
 | 
						|
  - It is now possible to set client properties as well. (#1573)
 | 
						|
 | 
						|
# PipeWire 0.3.51 (2022-04-28)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Improved graph reconfiguration.
 | 
						|
  - Extra configuration options for streams and filters with config
 | 
						|
    rules and environment variable.
 | 
						|
  - Improve module-pulse-tunnel latency, stability and error recovery.
 | 
						|
  - pw-top, pw-cli and pw-link improvements.
 | 
						|
  - Fix a channelmixer upmixing clipping issue.
 | 
						|
  - The ROC module has seen many improvements.
 | 
						|
  - Many more bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - The graph reconfiguration code was reworked:
 | 
						|
    * Moved nodes will update the new driver quantum correctly. (#2293)
 | 
						|
    * Inactive nodes are ignored more.
 | 
						|
    * Nodes that require a driver are now not scheduled anymore when
 | 
						|
      they are passive (unused). (#2309)
 | 
						|
    * Improved performance, the graph is reconfigured with a minimal
 | 
						|
      amount of changes.
 | 
						|
  - Method and event argument names were improved.
 | 
						|
  - A linker garbage collection problem was fixed. (#2292)
 | 
						|
  - Properties on threads are now implemented. Use common code to
 | 
						|
    set thread name and add an option to set stack-size.
 | 
						|
  - Streams and filters always want a driver now. This makes it possible
 | 
						|
    to just link a playback stream to a capture stream without a driver
 | 
						|
    and have it work. (#1761).
 | 
						|
  - Streams and filters can now also have rules in the config file.
 | 
						|
  - Streams, filters, JACK, ALSA and v4l2 now support PIPEWIRE_PROPS
 | 
						|
    environment variable to override node properties.
 | 
						|
  - Add config section extensions. This provides a way for modules to
 | 
						|
    have specific config to override the default config.
 | 
						|
  - Handle realloc errors better.
 | 
						|
  - Improve stream and filter property updates.
 | 
						|
 | 
						|
## Modules
 | 
						|
  - The pulse-tunnel modules has improved latency management and should
 | 
						|
    now work a lot better. (#2230)
 | 
						|
  - Module-loopback, module-echo-cancel, module-filter-chain unload the
 | 
						|
    module when a stream is destroyed. (#1754)
 | 
						|
  - Biquads in filter-chain now can have more gain (5->20 dB).
 | 
						|
  - Documentation updates. Most Wiki content was moved to the source code
 | 
						|
    inline comments.
 | 
						|
  - Filter-chain now has a builtin delay line filter. (#2320)
 | 
						|
  - Filter-chain can now parse the config key correctly in all cases.
 | 
						|
  - The ROC sink and source saw many improvements. roc-source is now a stream
 | 
						|
    by default that connects to the default sink. Both modules will try to set
 | 
						|
    a graph rate. Both modules have an option to select the FEC mode.
 | 
						|
    The ROC source has lower latency now. (#2331)
 | 
						|
  - Handle realloc errors better.
 | 
						|
 | 
						|
## tools
 | 
						|
  - pw-cat does not have --list-targets anymore, use one of the more
 | 
						|
    advanced and less buggy tools such as wpctl or pw-cli to list
 | 
						|
    sinks and sources.
 | 
						|
  - pw-top has seen many improvements.
 | 
						|
    * It now has some timeouts to reset the node values to their default
 | 
						|
      state when unused.
 | 
						|
    * The man page was improved.
 | 
						|
    * Invalid timings and errors are displayed in a better way.
 | 
						|
  - pw-cli and pw-link can now create links between all ports of given nodes.
 | 
						|
  - pw-cat can now save to other file formats than wav, based on the extension
 | 
						|
    of the filename.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - The resampler now uses a different internal method for draining. It can
 | 
						|
    now also handle 0 size buffers as input without draining.
 | 
						|
  - The channelmixer now uses the front channel averages for FC and LFE.
 | 
						|
    This avoids clipping and results in much better upmixing.
 | 
						|
  - ALSA should now work again on 32 bits. (#2271)
 | 
						|
  - The JSON parser now converts escaped unicode correctly to UTF8.
 | 
						|
 | 
						|
## bluetooth
 | 
						|
  - Codec switch improvements when the device is disconnected. (#2334)
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - There is a new module-roc-sink-input module, the the PulseAudio equivalent.
 | 
						|
  - The ROC source and sink-input module now have a much lower latency.
 | 
						|
  - The ROC module now has an option to select FEC mode.
 | 
						|
  - Playback and record rate adjustements should work now. (#1159)
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Remove some useless pthread attributes. This makes JACK work in QEMU with
 | 
						|
    sandboxing enabled. (#2297)
 | 
						|
  - The buffer_size callback is now only called when something has changed
 | 
						|
    since the last process() callback or get_buffer_size() method. This
 | 
						|
    fixes a GStreamer issue and is more in line with what JACK does. (#2324)
 | 
						|
  - Fix a potential deadlock when the process thread is doing IPC and the
 | 
						|
    IPC thread is blocking on the data thread.
 | 
						|
  - Allocation errors in metadata are handled better.
 | 
						|
 | 
						|
# PipeWire 0.3.50 (2022-04-13)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - pw-stream can now report more timing information and can suggest
 | 
						|
    the optimal number of samples to queue for playback.
 | 
						|
  - pw-dot now works again..
 | 
						|
  - module-pulse-tunnel latency was improved.
 | 
						|
  - WINE applications using the JACK backend should no longer crash.
 | 
						|
  - The channelmixer defaults are improved and the muffled sound when
 | 
						|
    playing back 5.1 and 7.1 material has been fixed.
 | 
						|
  - Many fixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - pw-stream now places a suggested amount of samples in the pw-buffer
 | 
						|
    for playback. This allows you to remove some places where
 | 
						|
    spa_io_rate_match was needed to get this information.
 | 
						|
  - pw-stream has new API to request a timing update. New fields are
 | 
						|
    added in the timing info, such as number of buffered samples in
 | 
						|
    the resampler and the number of queued and dequeued buffers.
 | 
						|
  - pw-stream has support for double controls now. More controls are
 | 
						|
    exposed such as the Rate control to do adaptive resampling.
 | 
						|
  - The thread-utils object was moved to the context to avoid some
 | 
						|
    concurrent use cases that caused crashes. (#2252)
 | 
						|
  - Deactivating an exported node/stream will now remove the node from
 | 
						|
    the data-thread immediately so that the process function will not
 | 
						|
    be called anymore and resources can be safely freed. This could
 | 
						|
    fix some of the last remaining crashes when streams are stopped.
 | 
						|
  - PipeWire will now fail to load a module that tries to register
 | 
						|
    the same export type twice instead of silently doing the wrong
 | 
						|
    thing. (#2281)
 | 
						|
 | 
						|
## Modules
 | 
						|
  - Many modules now use the NODE_WANT_DRIVER instead of the
 | 
						|
    pipewire.dummy NODE_GROUP property. This makes it possible to use
 | 
						|
    them with any other driver and can avoid resampling in some
 | 
						|
    cases.
 | 
						|
  - module-pulse-tunnel now uses an adaptive resampler to keep the
 | 
						|
    latency under control. Latency should be much better than before
 | 
						|
    and stay constant even when there are network delays.
 | 
						|
  - There is now an option for packages to disable building the RTKit
 | 
						|
    module, which is still built by default for backwards compatibility
 | 
						|
    reasons.
 | 
						|
  - A leak was fixed in filter-chain. (#2220)
 | 
						|
  - Module node names are now made more unique with the pid.
 | 
						|
 | 
						|
## tools
 | 
						|
  - pw-cat verbose output has been improved.
 | 
						|
  - pw-link now has a man page. (#2263)
 | 
						|
  - pw-reserve now has an -r option to make it issue a RequestRelease
 | 
						|
    command on the owner of the device. This makes it possible to ask
 | 
						|
    WirePlumber to close and release a device.
 | 
						|
  - Fix pw-dot again. It didn't work anymore because of stray done
 | 
						|
    events that were emitted to notify the client of object serials.
 | 
						|
    (#2253)
 | 
						|
 | 
						|
## SPA
 | 
						|
  - The channelmixer now has PSD upmixing enabled again. We used the
 | 
						|
    simple upmixing in the previous release but that just sounds too
 | 
						|
    aweful to be a good default. (#861) and (#2219)
 | 
						|
  - The channelmixer will not upmix FC and LFE anymore when upmixing is
 | 
						|
    explicitly disabled. (#2266)
 | 
						|
  - The channelmixer will only lowpass filter FC and LFE channels when
 | 
						|
    they were upmixed. (#2280)
 | 
						|
  - The defaults of the channelmixer were tweaked a little. There is now
 | 
						|
    a little bit more bass in the LFE channel and more high fequencies
 | 
						|
    in the FC channel when upmixing. Also the channel widening has been
 | 
						|
    disabled by default.
 | 
						|
  - Locale independent float parsing now uses a more portable solution
 | 
						|
    with uselocale.
 | 
						|
  - ALSA will now only allocate a buffer size big enough to hold 4
 | 
						|
    times the quantum limit instead of as large as possible.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Internal cleanups in handling of modules.
 | 
						|
  - A quirk to force s16 sample formats for teams-insider has been added.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - The data-loop is now started in activate and stopped in deactivate.
 | 
						|
    This makes the data-loop respect any custom thread functions you
 | 
						|
    configure. This also makes WINE apps using the JACK backend work.
 | 
						|
    (#1495).
 | 
						|
  - Port sorting was improved/fixed. (#2260)
 | 
						|
 | 
						|
# PipeWire 0.3.49 (2022-03-29)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## 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.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - The channelmixer will now do upmixing by default and will not use
 | 
						|
    normalization. It will also use a simple upmixing algorithm that duplicates
 | 
						|
    channels by default. A more interesting upmix method is also available (PSD)
 | 
						|
    but needs to be enabled manually. (#861)
 | 
						|
  - Add SSE optimized (de)interleave functions for 32 bits samples with and
 | 
						|
    without byteswap.
 | 
						|
  - JSON parsing of empty strings will now give an invalid number instead of
 | 
						|
    0.
 | 
						|
  - JSON numbers are now parsed and serialized in a locale independent way so
 | 
						|
    that , and . are not mixed up.
 | 
						|
  - The resampler will now report the resample delay and queued samples as the
 | 
						|
    extra delay.
 | 
						|
 | 
						|
## tools
 | 
						|
  - pw-cat will read more dsf files correctly and will not crash at the end.
 | 
						|
  - pw-top now has a man page.
 | 
						|
  - pw-dot can now use the output of pw-dump to render a graph.
 | 
						|
 | 
						|
## bluetooth
 | 
						|
  - Improve interactions with oFono.
 | 
						|
  - Fix recovery with slow connections.
 | 
						|
  - Improve frame size of AptX-ll.
 | 
						|
  - A2DP can now use any quantum and will flush packets in smaller chunks
 | 
						|
    when needed to adapt. This improves stuttering in some cases.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - The server configuration can now be placed in pulse.properties section,
 | 
						|
    which also makes it possible to have custom overrides.
 | 
						|
  - Implement FIX_ flags for capture as well.
 | 
						|
  - Small fixes and improvements in module loading.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Clear the last error before executing a new action or else we could end up
 | 
						|
    with error from a previous action. This causes some problems in Ardour where
 | 
						|
    adding a track would fail after some time. (#1714)
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.48 (2022-03-03)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Fix IEC958 passthrough again.
 | 
						|
  - Fix pulse-server crashes when playing a sample.
 | 
						|
  - Support for more a more advanced upmixing algorithm.
 | 
						|
  - filter-chain now supports arbitrary many ports.
 | 
						|
  - Fix multichannel support in WINE. (with new WirePlumber).
 | 
						|
  - Many bugfixes and improvements.
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - The work queue is now created in the context so we can fail early and
 | 
						|
    avoid further error checking in various places.
 | 
						|
  - Fix a potential use after free with threaded loops.
 | 
						|
  - The protocol now has a message footer. This is used to pass around
 | 
						|
    global state such as the last registered object serial number. This can
 | 
						|
    be used to detect when a client tries to bind to old (but reused)
 | 
						|
    object ids. This avoids some races in the session manager but also
 | 
						|
    when binding objects.
 | 
						|
  - The zero-denormals CPU flag is now not touched anymore unless explicitly
 | 
						|
    selected by the user. Denormals are avoided in filter-chain now in
 | 
						|
    software. If the zero-denormals are now only configured in the data
 | 
						|
    thread. This should fix issues with luajit. (#2160)
 | 
						|
  - Configuration parsing will not actually fail on errors.
 | 
						|
  - pw-top now correctly clips unicode characters.
 | 
						|
  - Many places now use a dynamic POD builder to support arbitrary large
 | 
						|
    property sets.
 | 
						|
  - pw-stream now support PropInfo parameters so that they can announce
 | 
						|
    custom properties.
 | 
						|
  - Serial number are now also set on metadata and session-manager objects.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - audioadapter is now smarter when trying to fixate the format. It will
 | 
						|
    use the PortConfig format to fill in any wildcards. This results in
 | 
						|
    the least amount of conversions when the stream can handle it. It also
 | 
						|
    is part of a fix (also requires a session manager fix) for WINE
 | 
						|
    multichannel support. (#876).
 | 
						|
  - Fix 5.1 to 2 channels mixing. It was using the volume of the stereo
 | 
						|
    pair on all channels.
 | 
						|
  - Fix some weird volume issues when a source is capturing and
 | 
						|
    channelmixing.
 | 
						|
  - Add stereo to 7.1 upmixing.
 | 
						|
  - The channelmix parameters can be changed at runtime now.
 | 
						|
  - Many improvements to the upmixing algorithms. Rear channels are now
 | 
						|
    constructed from the ambient sound and can have delay and phase shift
 | 
						|
    applied to them to improve spacialization. The stereo channels can
 | 
						|
    be filtered so that the dialog is more concentrated in the center
 | 
						|
    channel. (#861)
 | 
						|
 | 
						|
## modules
 | 
						|
  - Module X11 bell received cleanups and improvements.
 | 
						|
  - The module now has a private method to schedule unload later. This
 | 
						|
    simplifies cleanup in many modules.
 | 
						|
  - module-filter-chain now handles arbitrary many ports and control
 | 
						|
    ports. (#2179)
 | 
						|
  - Fix a bug in RAOP where it was reading from the wrong port. (#2183)
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Nodes with the DONT_MOVE property should fail with -EINVAL when
 | 
						|
    they are moved.
 | 
						|
  - Fix a segfault when playing a sample. (#2151)
 | 
						|
  - The _FIX flags in pulse-server also now ignore the configured
 | 
						|
    sample format, just like pulseaudio does. (#876)
 | 
						|
  - Fix IEC958 passthrough again. It got accidentally broken since
 | 
						|
    0.3.45 with a fix for another issue. (#1442)
 | 
						|
  - Fix module-null-sink device.description. (#2166)
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Don't try to connect HSP/HFP when no backend is available.
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.47 (2022-02-18)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
This is a quick emergency release to fix some severe
 | 
						|
problems with the previous release.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Fixes a bug in pulse-server that caused cached notifications
 | 
						|
    to play multiple times. (#2142)
 | 
						|
  - Removed check and warnings to catch leaked listeners on the
 | 
						|
    proxy. This might access invalid memory and cause infinite
 | 
						|
    loops in older wireplumber.
 | 
						|
 | 
						|
# PipeWire 0.3.46 (2022-02-17)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## 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 they could be
 | 
						|
    emitted.
 | 
						|
  - Improve context.exec and avoid zombie processes.
 | 
						|
 | 
						|
## Modules
 | 
						|
  - The RAOP module now has a default latency of 2 seconds, like PulseAudio.
 | 
						|
  - The echo-cancel module now uses the plugin loader to load the backends.
 | 
						|
    This makes it possible to add custom, out of tree, echo cancel plugins.
 | 
						|
 | 
						|
## Tools
 | 
						|
  - Improve help of pw-link.
 | 
						|
  - Output to stdout and error to stderr. Use setlinebuf for stdout to improve
 | 
						|
    piping between apps. (#2110)
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Improve removing sources when dispatching. Also improve performance now
 | 
						|
    that a destroy loop can be removed. (#2114)
 | 
						|
  - Fix an fd leak in the logger when logging to a file.
 | 
						|
  - Improve loop enter/leave checks and support recursive loops.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Clamp various buffer attributes to the max length. Fixes some issues
 | 
						|
    with various applications. (#2100)
 | 
						|
  - Module properties are now remapped correctly from their pulseaudio variant
 | 
						|
    to the PipeWire ones.
 | 
						|
  - Fix module index in introspect. Use the right index when loaded from our
 | 
						|
    internal modules. (#2101)
 | 
						|
  - Improve argument parsing and node.description. (#2086)
 | 
						|
  - The sink-index should now be filled in correctly when playing a sample.
 | 
						|
    (#2129)
 | 
						|
  - module-always-sink is now implemented and loaded by default. (#1838)
 | 
						|
  - Add support for loading some modules only once.
 | 
						|
  - Module load and unload now does extra sync to make it appear synchronous,
 | 
						|
    like in PulseAudio. This improves sounds sharing in Zoom.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - Fix critial bug where alsa devices would not show when the kernel was
 | 
						|
    compiled without VERBOSE_PROCFS.
 | 
						|
  - Some corner cases were fixed in the ALSA timing code. When the capture node
 | 
						|
    is follower, it will now not try to read too much data and xrun but it will
 | 
						|
    instead produce a cycle of silence.
 | 
						|
  - Various fixes and improvements to make ALSA devices resync to the driver
 | 
						|
    more quickly and accurately.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Add an option to name the defauld device as `system` to improve
 | 
						|
    compatibility with some applications,
 | 
						|
  - 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.
 | 
						|
  - It is now possible to do IPC calls from the data thread. Note that this
 | 
						|
    is a very bad idea but required for compatibility with JACK2.
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - GStreamer sink will now set a default channelmap to make it possible to 
 | 
						|
    remap to the channel layout of the device.
 | 
						|
 | 
						|
# PipeWire 0.3.45 (2022-02-03)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## 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 inputs
 | 
						|
    again.
 | 
						|
  - Better handling of busy devices in udev, retry when the inotify close
 | 
						|
    event is emited.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - plugins now handle alignment properly and only expect the max alignment
 | 
						|
    required for the CPU. (#2074)
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - SBC-XQ is now enabled for the JBL Endurance RUN BT headset.
 | 
						|
  - Support for non-hexadecimal XAPL version strings to improve compatibility.
 | 
						|
  - Use HCI commands again to probe the adapter msbc capability. This improves
 | 
						|
    compatibility with some adapters. (#2030)
 | 
						|
  - Set the right startup volume.
 | 
						|
  - Better A2DP source idle handling.
 | 
						|
  - Fix a timer bug in SCO sink that could cause busy looping.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - A playback issue when the tlength > maxlength was fixed. (#2069) This
 | 
						|
    affected Zoom and other applications.
 | 
						|
  - The STREAM_BUFFER_ATTR command is now implemented.
 | 
						|
  - Module names are improved. (#2076)
 | 
						|
  - Many small fixes and improvements.
 | 
						|
  - Fix a pavucontrol crash with invalid channels. (#1442)
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Use the new force-quantum and force-rate properties in the JACK API to
 | 
						|
    switch quantum and ensure it can't change for the lifetime of the JACK
 | 
						|
    app. (#2079)
 | 
						|
 | 
						|
# PipeWire 0.3.44 (2022-01-27)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - It is now possible to run a minimal PipeWire server without a session
 | 
						|
    manager, enough to run JACK clients.
 | 
						|
  - The maximum buffer size is now configurable and can be larger than
 | 
						|
    the previously hardcoded limit of 8192 samples. When using high sample
 | 
						|
    rates, the larger buffer size can avoid xruns.
 | 
						|
  - The default maximum latency was reduced from 170ms to 42ms. This should
 | 
						|
    improve overall latency for application that ask for a large latency,
 | 
						|
    such as notifications.
 | 
						|
  - Better JACK compatibility. Patchbays should now get less confused about
 | 
						|
    ports appearing and disappearing.
 | 
						|
  - Fix some bluetooth crashes.
 | 
						|
  - Fix some races in ALSA device detection.
 | 
						|
  - Many bug fixes and improvements all over the place.
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Bump the meson requirement to 0.59.0.
 | 
						|
  - pw-top now reports correct times for filter-chain and loopback.
 | 
						|
  - max-quantum is now also scaled with the rate. A new quantum-limit
 | 
						|
    property was added as a hard limit for the quantum. This makes it
 | 
						|
    possible to configure for larger than 8192 buffer sizes. Note
 | 
						|
    than many JACK applications have a hardcoded 8192 limit. (#1931)
 | 
						|
  - The max-quantum was reduced to 2048, This gives a 42ms default
 | 
						|
    latency. (#1908)
 | 
						|
  - pw-filter can now return a NULL buffer from _get_dsp_buffer().
 | 
						|
  - Add a PIPEWIRE_RATE and PIPEWIRE_QUANTUM env variable to set the
 | 
						|
    graph rate and the graph quantum and rate respectively.
 | 
						|
  - Fix a potential file descriptor leak in the connection.
 | 
						|
  - A new minimal.conf file was added to demonstrate a static setup
 | 
						|
    of a daemon that doesn't require a session manager and is able to
 | 
						|
    run JACK applicaions.
 | 
						|
  - Nice levels are now only changed on the servers, not the clients.
 | 
						|
  - Add an option to suspend nodes when idle.
 | 
						|
  - Make it possible to avoid quantum and rate changes with
 | 
						|
    pw-metadata. This is essential in a locked down system.
 | 
						|
  - Handle mixer port errors better and fail to create the link instead
 | 
						|
    of silently not working.
 | 
						|
  - Nodes that are moved to a driver now have all the linked nodes moved
 | 
						|
    as well. This makes it possible to run some graphs without a
 | 
						|
    driver, such as paplay -> zita-j2n.
 | 
						|
  - pw-cli and pw-dump can now also list objects by name, serial and
 | 
						|
    object.path using glob style pattern matching.
 | 
						|
 | 
						|
 | 
						|
## modules
 | 
						|
  - filter-chain can now also configure parameters by index.
 | 
						|
  - Fix the client name of module-protocol-simple. (#2017)
 | 
						|
  - module-rtkit was merged into module-rt. This makes it easier to
 | 
						|
    ship a default config that works on more systems by default.
 | 
						|
  - module-adapter can now configure the adapter node from the config.
 | 
						|
    Previously, this was a task only performed by the session manager.
 | 
						|
  - module-metadata can now also create metadata object from the
 | 
						|
    config file.
 | 
						|
  - The ROC module should now work again. (#2045)
 | 
						|
  - An X11-bell module was added to handle X11 bell events. (#1668)
 | 
						|
  - filter-chain and loopback modules now have better unique default
 | 
						|
    names for the streams, which makes it possible to save and restore
 | 
						|
    their volumes independently. (#1983)
 | 
						|
  - module-echo-cancel now has properties to control the delay and
 | 
						|
    buffer size.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - The monitor names are now correctly parsed.
 | 
						|
  - The default period size for batch devices is limited now to avoid
 | 
						|
    large latency.
 | 
						|
  - The unused min/max-latency properties were removed.
 | 
						|
  - Internal latency is now also configurable with params at runtime.
 | 
						|
  - The udev rule for TI2902 was removed because it causes problems.
 | 
						|
  - Fix a race where some devices would sometimes be missing. (#2046)
 | 
						|
  - Add some more timeouts to work around a race in udev device
 | 
						|
    permission changes when switching VTs.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Fix potential infinite loop in audioconvert.
 | 
						|
  - The spa-resample tools can now also use optimized implementations.
 | 
						|
  - Fix a potential crash in resampler. (#1994)
 | 
						|
  - audioconvert can now also handle F64 formats. (#1990)
 | 
						|
  - The channelmixer now does normalization by default to avoid clipping
 | 
						|
    when downmixing is active.
 | 
						|
  - The channelmixer will now generate LFE channels when the lfe_cutoff
 | 
						|
    frequency is set, even when upmix is disabled.
 | 
						|
  - The channelmixer will now always generate FC when the target has it.
 | 
						|
  - Adapter now reports latency correctly, even after linking the monitor
 | 
						|
    ports.
 | 
						|
  - Reduce memory usage and preallocated memory in some of the
 | 
						|
    audioconvert nodes.
 | 
						|
  - Many properties are now exposed in adapter, such as the resample
 | 
						|
    quality.
 | 
						|
  - The resampler and channelmixer can now be disabled.
 | 
						|
 | 
						|
## V4L2
 | 
						|
  - pw-v4l2 now also works for ffplay. (#2029)
 | 
						|
  - Take product names from udev now that the kernel returns a generic
 | 
						|
    name.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - The jack pkgconfig file now has the `jack_implementation=pipewire`
 | 
						|
    variable to be able to distinguish jack implementations. (#1666)
 | 
						|
  - jconvolver now starts correctly again. (#1989)
 | 
						|
  - The object.serial is now used for the port_id. This makes it easier
 | 
						|
    to track old objects in the cache.
 | 
						|
  - Add a dummy jacknet implementation. (#2043)
 | 
						|
  - A bug in the port allocation was fixed that would make it impossible
 | 
						|
    to allocate ports at some point. (#1714)
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Bluetooth profiles are now saved properly by the session manager.
 | 
						|
  - Improved profile detections, increased timeouts for slow devices.
 | 
						|
  - Implement HFP call indicator for improved compatibility.
 | 
						|
  - Handle the case where bluez does not set the adapter or address
 | 
						|
    properties on the device instead of crashing.
 | 
						|
  - Improved support for setting the profile from the session manager.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Monitor sources now have the device.class=monitor for better
 | 
						|
    compatibility.
 | 
						|
  - Behaviour after seeking is improved. The algorithm for requesting
 | 
						|
    bytes from the client was simplified and improved. (#1981)
 | 
						|
  - module-ladspa-sink implements the control argument now. (#1987)
 | 
						|
  - A potential memory leak in the message queue was fixed. (#1840)
 | 
						|
  - Use the object.serial for the pulseaudio object index. The index is
 | 
						|
    not supposed to be reused and this would cause problems with some
 | 
						|
    clients.
 | 
						|
  - Servers should now again be able to listen in IPv4. (#2047)
 | 
						|
  - module-x11-bell was added. (#1668)
 | 
						|
  - There is now support for per-application quirks and properties in
 | 
						|
    the pipewire-pulse.conf file. Per-application latency and buffering
 | 
						|
    properties can also be configured.
 | 
						|
  - Fix a regression in telegram sounds not playing.
 | 
						|
 | 
						|
# PipeWire 0.3.43 (2022-01-05)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## 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.
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Quantum and rate changes are now applied immediately when the driver
 | 
						|
    is idle. This avoids setting the driver in the previous samplerate.
 | 
						|
    (#1913)
 | 
						|
  - Object destruction now does not need write permissions anymore. This
 | 
						|
    restriction needs some more work. (#1920)
 | 
						|
  - When we reposition, start a sync operation. This fixes a problem
 | 
						|
    in Ardour when seeking. (#1907)
 | 
						|
  - Require meson 0.56.0
 | 
						|
  - Make the align property in BUFFER_PARAM optional. We now only set this
 | 
						|
    if the plugin has specific requirements and we default to the CPU
 | 
						|
    largest alignment requirement.
 | 
						|
  - pw-record will now also list monitors and streams as possible targets.
 | 
						|
 | 
						|
## modules
 | 
						|
  - Improve LV2 plugin support in filter-chain. Add support for Worker and
 | 
						|
    Options.
 | 
						|
  - The loopback module now has a unique media.name to make it possible
 | 
						|
    for the session manager to restore unique volume settings.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Improve sample rate for EAC3 streams, some clients scale it while
 | 
						|
    others don't so use some heuristics to make things work better.
 | 
						|
    (#1902)
 | 
						|
  - Allocate ports dynamically in audioconvert. This avoids using larger
 | 
						|
    memory blocks of preallocated memory that confuses the allocator.
 | 
						|
    (#1840)
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - Merge the latest pulseaudio UCM improvements. (#1849)
 | 
						|
  - Fixes for selecting the sample rate. (#1892)
 | 
						|
  - Improve latency on USB devices by scaling the period size based on
 | 
						|
    the desired quantum when the device is opened.
 | 
						|
  - Add api.alsa.period-num to configure the amount of periods to use
 | 
						|
    in the device. Some devices have lower latency when a small value
 | 
						|
    is forced. (#1473)
 | 
						|
  - Allow multi-rate by default. In previous versions cards could only
 | 
						|
    be opened in one samplerate to avoid bugs in pre 5.16 kernels. This
 | 
						|
    however caused other problems so the default was removed.
 | 
						|
  - Fix a bug where a card was not freed correctly.
 | 
						|
  - Fix a bug in the alsa boundary check that could hang the alsa-plugin
 | 
						|
    for a long time.
 | 
						|
  - The ALSA plugin now has a parameter to configure the allowed
 | 
						|
    samplerates.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Improve handling of monitor nodes.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Codecs now have a priority. This should improve codec selection.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - The stream FIX_ flags are now implemented. (#1912)
 | 
						|
  - Improve flushing and draining behaviour. Short samples will now
 | 
						|
    play correctly. (#1549)
 | 
						|
  - Fix a crash when enumerating the formats. (#1928)
 | 
						|
  - Track quantum changes and update the amount of required buffering
 | 
						|
    accordingly. This improves forced quantum handling. (#1930)
 | 
						|
  - Improve handling of channels > 32.
 | 
						|
  - Handle the case where a module is destroyed before it could be
 | 
						|
    completely loaded.
 | 
						|
  - Fixes some issues when samples were removed while they were playing.
 | 
						|
    (#1953)
 | 
						|
  - Fix some issues in module-zeroconf-publish.
 | 
						|
  - Fix some memory leaks in module-roc.
 | 
						|
  - Add command access control. This avoids execution of commands without
 | 
						|
    proper authentication.
 | 
						|
 | 
						|
# PipeWire 0.3.42 (2021-12-16)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
This is a quick emergency release to fix some severe
 | 
						|
problems with the previous release.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Fixes a bug in pulse-server underrun handling that broke qemu
 | 
						|
    and orca.
 | 
						|
  - A fix was added to pulse-server to handle quantum changes
 | 
						|
    gracefully.
 | 
						|
  - Fix module-echo-cancel again.
 | 
						|
  - Fix a bug where the bluetooth headset capture was producing
 | 
						|
    noise.
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.41 (2021-12-13)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## 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
 | 
						|
    some cases report the wrong minumum latency.
 | 
						|
 | 
						|
## modules
 | 
						|
  - module-echo-cancel has voice-detection enabled now.
 | 
						|
  - module-raop-sink and module-raop-discover to stream audio to
 | 
						|
    an Apple Airplay device.
 | 
						|
  - module-filter-chain now has preliminary support for LV2
 | 
						|
    plugins.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - The audio resampler now has improved buffer size calculations.
 | 
						|
    In some cases it was too small and would cause distortions.
 | 
						|
  - More checks are done when doing volume changes so that the
 | 
						|
    channelmap is correct.
 | 
						|
  - Audioadapter now exposes most config options with params so that
 | 
						|
    they can be adjusted at runtime.
 | 
						|
  - The resampler can now calculate the expected input buffer size
 | 
						|
    before receiving the first buffer, which avoids some confusion
 | 
						|
    when starting streams.
 | 
						|
  - Support was added for some 10bit video formats.
 | 
						|
  - MONO channel handling was improved.
 | 
						|
  - Most plugins now set a clock name and this is configurable where
 | 
						|
    it makes sense. The clock.system.monotonic clock name is used
 | 
						|
    for most plugins that use the system clock for timing.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - implement module-raop-discover
 | 
						|
  - Use STREAM_CAPTURE_SINK property when capturing from a monitor
 | 
						|
    source to better inform the session manager. This fixes some
 | 
						|
    issues where OBS would capture from the microphone instead of
 | 
						|
    the output monitor.
 | 
						|
  - Limit the amount of cache messages to 16MB and don't add large
 | 
						|
    memory blocks to the cache. This should fix some excessive
 | 
						|
    memory usage that people reported.
 | 
						|
  - Fix a potential memory leak when cleaning up a client.
 | 
						|
  - Do some additional checks to avoid buffer overruns.
 | 
						|
  - Improve recovery from underruns better. (#1857) This improves
 | 
						|
    seeking in gnome-music.
 | 
						|
  - Improve recovery when the quantum is forced larger that the
 | 
						|
    stream configured latency.
 | 
						|
  - The prebuf state is now handled correctly.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - A per type object cache is now implemented. This ensures that
 | 
						|
    port objects remain valid for a longer time because many
 | 
						|
    JACK applications inspect objects after they are destroyed.
 | 
						|
    This improves catia/carla compatibility.
 | 
						|
  - Recompute the latencies when the buffer-size changes. Fix some
 | 
						|
    cases where we would end up with negative latencies.
 | 
						|
  - Handle regcomp errors to avoid some crashes later.
 | 
						|
  - Latency calculations are improved a lot.
 | 
						|
  - More care is taken to not call a process callback while a buffer
 | 
						|
    size change is pending. This fixes some crashes in Carla, which
 | 
						|
    expect that all clients are paused when one handles the buffersize
 | 
						|
    callback.
 | 
						|
  - Loopback links to a client are now handled correctly and without
 | 
						|
    latency. This fixes playback latency in ardour6 (#1839)
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - ALSA devices now keep track of the samplerate of the card and
 | 
						|
    ensure that all PCM use the same rate. This is a workaround for
 | 
						|
    a kernel bug that is fixed in 5.16.
 | 
						|
  - Refactor the ALSA plugin a little.
 | 
						|
  - The ALSA plugin now reports correct delay for a capture PCM. (#1697)
 | 
						|
  - The ALSA nodes now expose all config options with params that can be
 | 
						|
    changed at runtime.
 | 
						|
  - The ALSA node has a configurable clock name. Adaptive resampling to
 | 
						|
    match clock rates is avoided when the driver has the same clock
 | 
						|
    name as the ALSA node. This can be used to link alsa devices together
 | 
						|
    with a word clock.
 | 
						|
 | 
						|
# PipeWire 0.3.40 (2021-11-11)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## 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.
 | 
						|
    (#1732).
 | 
						|
  - 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. (#1775)
 | 
						|
  - 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. (#1769)
 | 
						|
  - 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. (#1748)
 | 
						|
  - 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.
 | 
						|
    (#1780)
 | 
						|
 | 
						|
## v4l2
 | 
						|
  - Fix v4l2 LD_PRELOAD script.
 | 
						|
  - Make sure we destroy the proxy when the global is destroyed.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - _prepare should exit the draining state. (#1467)
 | 
						|
  - Fix the precision of the _delay function by taking into account
 | 
						|
    the amount of queued samples are the correct samplerate.
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.39 (2021-10-21)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible with previous
 | 
						|
0.3.x releases.
 | 
						|
 | 
						|
## 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 drain
 | 
						|
    after being idle.
 | 
						|
  - Fix a bug where the quantum could exceed the maximum because it was
 | 
						|
    scaled with the sample rate.
 | 
						|
  - Fix channel_map parsing in module-zeroconf-discover so that the remote
 | 
						|
    channel map is used.
 | 
						|
  - pw-stream errors emitted on the proxy are reported but not fatal
 | 
						|
    any more. They are usually used by the session manager to signal status
 | 
						|
    to the client but otherwise does not really cause an error on the
 | 
						|
    client.
 | 
						|
  - Links now also store the output and input node id in the global
 | 
						|
    properties so that applications can parse and use them regardless of
 | 
						|
    how the link was made. (#1723)
 | 
						|
  - pw-stream and pw-filter now have an event to notify commands.
 | 
						|
  - The echo-cancel module can now operate on larger quantums.
 | 
						|
  - pw-cat now uses the right metadata to find the default devices in
 | 
						|
    --list-targets.
 | 
						|
 | 
						|
## media-session
 | 
						|
  - Don't try to remix unpositioned streams when linking. This ensures
 | 
						|
    that linking to Pro-Audio nodes does not remix the stream channels
 | 
						|
    but links them as they are, one by one.
 | 
						|
  - media-session is now moved to a separate module to accelerate its
 | 
						|
    deprecation in favour of WirePlumber.
 | 
						|
 | 
						|
## SPA
 | 
						|
  - Many libcamera improvements, handle MemFd buffers, handle errors
 | 
						|
    gracefully.
 | 
						|
  - Small improvements to make interface fall-backs easier to implement.
 | 
						|
  - Add support to enable flush-to-zero and denormals-are-zero to avoid
 | 
						|
    high CPU usage when dealing with denormals.
 | 
						|
  - AUX13 channels are no longer reported as AUX12. (#1727)
 | 
						|
  - Devices with more than 32 channels in Pro-Audio mode now only
 | 
						|
    uses AUX channels.
 | 
						|
  - Improve windowing function of the resampler to reduce aliasing and
 | 
						|
    improve the quality.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Port connect callbacks will not only be emitted after the port
 | 
						|
    has negotiated buffers, which improves compatibility with
 | 
						|
    applications that try to use the port right after the callback
 | 
						|
    (jack_midi_latency_test).
 | 
						|
  - Fix crash when midi ports were removed and being monitored, like
 | 
						|
    in Ardour.
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - The pulse tunnel will now use the specified format/rate/channels.
 | 
						|
  - Improve lookup of default source and fall back to the monitors when
 | 
						|
    no sources are available.
 | 
						|
  - Mark some nodes as network nodes so that we can set the NETWORK flag
 | 
						|
    correctly.
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - The GStreamer element not releases the buffers in the stream again in
 | 
						|
    all cases so that they can be reused by other streams.
 | 
						|
 | 
						|
## v4l2
 | 
						|
  - Add a v4l2 LD_PRELOAD library to emulate v4l2 system calls on top of
 | 
						|
    PipeWire. This is tested with firefox and GStreamer and is known to
 | 
						|
    not work with Chrome.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - AAC compatibility improvements.
 | 
						|
  - Disable hardware volume for "Tribit MAXSound Plus" and
 | 
						|
    "SoundCore mini".
 | 
						|
  - Add quirk to disable faststream. Disable faststream on "FiiO BTR3".
 | 
						|
  - Add a dummy AVRCP player to improve compatibility with some devices.
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.38 (2021-09-30)
 | 
						|
 | 
						|
This is a quick bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
## 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.
 | 
						|
  - SCO sink should now also work in follower mode.
 | 
						|
 | 
						|
## PulseAudio server
 | 
						|
  - Make the service file require a session manager.
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.37 (2021-09-23)
 | 
						|
 | 
						|
This is a quick bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
## 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.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - The ALSA mixer now handles device removal much better. (#1627)
 | 
						|
 | 
						|
## libcamera
 | 
						|
  - Many fixes and improvement to the libcamera plugin. (#1513)
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Improve compatibility with pulseaudio module arguments.
 | 
						|
  - Parse channel_map arguments in module-loopback. (#1486)
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Delay emitting the samplerate and buffersize callbacks until the
 | 
						|
    client is active. This fixes some crashes with Carla and other
 | 
						|
    JACK apps.
 | 
						|
 | 
						|
# PipeWire 0.3.36 (2021-09-16)
 | 
						|
 | 
						|
This is a quick bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
## 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 emitted. 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.
 | 
						|
  - Don't try to route audio to nodes with unavailable routes.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - Pass the right AES bits to the alsa device when opening an
 | 
						|
    S/PDIF stream.
 | 
						|
  - Fix a bug in the MIDI bridge port management logic. When a port
 | 
						|
    was added and immediately removed, output would stop.
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - The GStreamer source now handles the flushing state correctly.
 | 
						|
  - All blocking operations now have a 30 seconds timeout, to avoid
 | 
						|
    infinite locks.
 | 
						|
 | 
						|
## Plugins
 | 
						|
  - V4l2 Device formats and controls are now passed on the node, just
 | 
						|
    like with audio devices.
 | 
						|
  - audioconvert now also exposes the softMute property.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Improve stability when changing buffer size and sample rate
 | 
						|
    dynamically by pausing the processing until the application has
 | 
						|
    handled the callback.
 | 
						|
  - Improve handling of timebase master. When the master was moved to
 | 
						|
    another driver, it did not attempt to become a new timebase
 | 
						|
    master on the new driver. (#1589)
 | 
						|
  - Implement transport sync to make preroll in bitwig work. (#1589)
 | 
						|
 | 
						|
## pulse-server
 | 
						|
  - Fix an issue where virtual sinks/sources would not show up
 | 
						|
    immediately. (#1588)
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.35 (2021-09-09)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
## 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)
 | 
						|
  - 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)
 | 
						|
  - Concurrent link negotiation that caused some links to not work,
 | 
						|
    is now avoided. This fixes monitor ports in Ardour6.
 | 
						|
  - Small tweaks to how the quantum and rate are handled when nodes move
 | 
						|
    between drivers. Make node.lock-quantum work with node.latency
 | 
						|
 | 
						|
## PipeWire modules
 | 
						|
  - The convolver plugin in filter-chain has been optimized some more.
 | 
						|
  - The echo-cancel stream properties were improved so that it actually
 | 
						|
    can remember the streams it links to. (#1557)
 | 
						|
  - module-pulse-tunnel had the buffer attributes wrong and would cause
 | 
						|
    high latency with older pulseaudio servers. (#1434)
 | 
						|
  - module-roc had the properties configured wrongly, which would cause
 | 
						|
    it to not work at all in most cases. (#1538)
 | 
						|
  - There is now an example of a 7.1 virtual surround sink using the
 | 
						|
    hesuvi impulse responses.
 | 
						|
  - The convolver now supports dirac pulses as the IR.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - UCM config is now cached per device, using up less memory. It also
 | 
						|
    temporarily works around a problem in alsa-lib that is now being
 | 
						|
    patched and rolled out. Should stop devices from disappearing when
 | 
						|
    logging out and back in. (#1553)
 | 
						|
  - Fix the MIDI clock rate matching. It was too sensitive to small
 | 
						|
    changes and would spiral out of control and break MIDI rather
 | 
						|
    quickly.
 | 
						|
 | 
						|
## pipewire-media-session
 | 
						|
  - The media session can now save and restore IEC958 (S/PDIF) codecs
 | 
						|
    for the sinks.
 | 
						|
  - Passthrough of IEC958 (S/PDIF) content is now possible. If the client
 | 
						|
    and the sink contain a compatible set of codecs, an exclusive
 | 
						|
    connection can be made between client and sink to pass the encoded
 | 
						|
    S/PDIF content directly to the device.
 | 
						|
  - Use new introspection info update methods to suspend nodes in all
 | 
						|
    cases. Sometimes, nodes would fail to suspend because the state info
 | 
						|
    was not evaluated.
 | 
						|
  - The media session can now work in non-DSP mode, which will try to
 | 
						|
    avoid any audio conversions between client and device when possible.
 | 
						|
    But, this will also disable compatibility with JACK applications.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Bluetooth codecs are now compiled into separate plugins which are
 | 
						|
    dynamically loaded. This makes it possible to change the plugin
 | 
						|
    implementation or ship plugins separately without having to recompile
 | 
						|
    the bluetooth module.
 | 
						|
 | 
						|
## PulseAudio server
 | 
						|
  - Delay stream create reply until the stream is linked to a sink/source.
 | 
						|
  - The device-restore extension is now implemented. This makes it possible
 | 
						|
    to configure the IEC958 (S/PDIF) codecs supported by the sink with
 | 
						|
    pavucontrol.
 | 
						|
  - skypeforlinux now uses the same quirks as teams to make the sinks
 | 
						|
    show up in all cases. This fixes the issue of not being able to hear
 | 
						|
    the remote end in skypeforlinux.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Improve catia and carla compatibility by caching objects a little longer
 | 
						|
    after being removed. (#1531)
 | 
						|
  - JACK ports now notify the negotiated format correctly.
 | 
						|
  - A potential deadlock was fixed when multiple threads would perform a
 | 
						|
    call that would require a roundtrip.
 | 
						|
  - Improve bufsize callback, it should not be called right after doing
 | 
						|
    activate() but only when the buffersize changes later.
 | 
						|
  - Add tweak to disable the process lock. Some older apps might not
 | 
						|
    expect it. (#1576)
 | 
						|
 | 
						|
## Docs
 | 
						|
  - man pages are now generated with rst2man.
 | 
						|
  - DMA-BUF docs were updated.
 | 
						|
  - Documentation updates.
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.34 (2021-08-26)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
 | 
						|
## 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 convolution
 | 
						|
    can be used to implement IR based reverbs, HRIR surround sound
 | 
						|
    or other convolution based operations. An example HRIR
 | 
						|
    virtual surround sound sink has been added as well.
 | 
						|
  - module-filter-chain was reworked a bit to support more config
 | 
						|
    options for the plugins.
 | 
						|
  - Endian conversion and alaw/ulaw formats are now supported for
 | 
						|
    streams.
 | 
						|
  - pw-cat will now suggest a samplerate for the graph.
 | 
						|
  - SPA_PLUGIN_DIR can now search in multiple paths separated with
 | 
						|
    a ':'.
 | 
						|
  - Passthrough mode has been worked on and has been partially
 | 
						|
    merged. S/PDIF definitions have been added and ALSA devices
 | 
						|
    updated to report and configure S/PDIF formats. The session
 | 
						|
    manager changes to fully configure and enable passthrough mode
 | 
						|
    will hopefully be merged next time.
 | 
						|
  - Fix a race in pw-stream where it would not always emit the
 | 
						|
    right events.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - Fix volume changed check. It was checking against the wrong
 | 
						|
    value and this could cause rounding errors.
 | 
						|
  - The ALSA plugin now also uses RT scheduling.
 | 
						|
  - Fix the behringer UMC202 usb device id, it was using a generic
 | 
						|
    TI chip ID that caused problems.
 | 
						|
  - Fix USB devices that don't show up anymore. Use an ALSA
 | 
						|
    workaround to fix this. (#1478)
 | 
						|
  - Add a rule for the new firmware of Sennheiser GSX 1200.
 | 
						|
  - ALSA sink and source can now use ProcessLatency param to configure
 | 
						|
    the internal latency. The latencyOffsetNsec property is also
 | 
						|
    exposed so that the latency can be adjusted in pavucontrol as
 | 
						|
    well.
 | 
						|
 | 
						|
## media-session
 | 
						|
  - Fix a critical issue where the default device was not remembered
 | 
						|
    anymore when it was removed.
 | 
						|
  - Fix the issue where some apps need to be restarted when nodes go
 | 
						|
    away and reappear.
 | 
						|
  - Improve routing of streams. Streams that have a specific target
 | 
						|
    set will now be moved to the target when it appears instead of
 | 
						|
    staying on the fallback.
 | 
						|
  - Small memory leak fixes.
 | 
						|
  - Try to switch back to the user selected profile after finishing a
 | 
						|
    Bluetooth recording.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Add support for HF indicator 2 battery status.
 | 
						|
  - Add support for XAPL battery status.
 | 
						|
  - Set the Communication intended role for HFP profile.
 | 
						|
  - Enable SBC-XQ by default if not disabled by quirks.
 | 
						|
  - Fix some potential crashes due to excessive polling.
 | 
						|
  - Add aptx-LL codec and enable duplex for aptx-LL devices.
 | 
						|
  - Add FastStream codec. This is a codec that can use a
 | 
						|
    duplex SBC channel.
 | 
						|
 | 
						|
## PulseAudio server
 | 
						|
  - Suggests a samplerate for the graph.
 | 
						|
  - Support for handling S/PDIF (IEC958) formats was added. This will
 | 
						|
    start working when the session manager supports configuring streams
 | 
						|
    and nodes in passthrough mode.
 | 
						|
  - Be smarter when handling devices without a negotiated format
 | 
						|
    yet so that they are visible as well. This makes virtual
 | 
						|
    devices show up immediately.
 | 
						|
 | 
						|
## ALSA plugin
 | 
						|
  - Now suggests a samplerate for the graph.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - The jack.pc file can only be generated with meson >= 0.59.0. When
 | 
						|
    the jack-devel option is enabled, it will generate an error with
 | 
						|
    older meson.
 | 
						|
  - Small stability improvements when connecting/disconnecting in
 | 
						|
    Ardour.
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.33 (2021-08-05)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
## 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 multiple 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
 | 
						|
    quantum in place.
 | 
						|
  - Improve latency reporting in the loopback module.
 | 
						|
  - Make new client-node method to send the peer port id to the
 | 
						|
    mixer. This can be used to know where the buffers entering the
 | 
						|
    mixer are coming from. (#1471)
 | 
						|
 | 
						|
## Tools
 | 
						|
  - pw-top should now also correctly show bluetooth devices. (#1540)
 | 
						|
 | 
						|
## media-session
 | 
						|
  - Handle unset of the default node.
 | 
						|
  - Added a module that can switch the bluetooth profile to headset
 | 
						|
    profile when a stream wants to record from it.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Only call the jack callbacks when the client is active. Some
 | 
						|
    JACK applications don't expect callbacks before the client is
 | 
						|
    active and crash (x42-dpl). (#1461)
 | 
						|
  - Emit client unregister event.
 | 
						|
  - Add per-client match rules in the config file to set app
 | 
						|
    specific configuration and tweaks. (#1456)
 | 
						|
  - Use peer_id to implement jack_port_get_buffer() from one of
 | 
						|
    our peer ports to get the data before it enters the mixer.
 | 
						|
    Makes the capture monitors work in Ardour6.8. (#1471)
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Add some broken kernel versions to the mSBC blocklist
 | 
						|
  - Avoid looping and consuming CPU when we can't write to the
 | 
						|
    BT socket.
 | 
						|
  - Use libfreeaptx instead of libopenaptx.
 | 
						|
  - Fix rounding errors in HW volume conversion.
 | 
						|
 | 
						|
## PulseAudio server
 | 
						|
  - implement module-switch-on-connect to emulate pulseaudio
 | 
						|
    behaviour of new devices. Some desktop environments expect
 | 
						|
    this behaviour and break otherwise.
 | 
						|
  - Fix stream cleanup, make sure the stream is stopped before
 | 
						|
    destroying it. Might be cause for some of the reported
 | 
						|
    crashes.
 | 
						|
  - Update message API to use the JSON format.
 | 
						|
 | 
						|
## Other
 | 
						|
  - Many documentation updates.
 | 
						|
  - Many cleanups and small improvements.
 | 
						|
  - Support the latest libcamera version. (#1435)
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.32 (2021-07-20)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
## 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 properly. (#1393)
 | 
						|
  - The performance of the feedback loop check algorithm was improved
 | 
						|
    a lot, making complex graphs start much much faster.
 | 
						|
  - The zeroconf publish module now doesn't republish nodes every time
 | 
						|
    the volume changes. (#1406)
 | 
						|
  - A potential memory corruption error has been fixed in the loop
 | 
						|
    that could cause random crashes.
 | 
						|
  - Mempools can now be created from multiple threads at the same
 | 
						|
    time.
 | 
						|
 | 
						|
## media-session
 | 
						|
  - Loops in coupled streams are now avoided. (#1394)
 | 
						|
  - Port changes for inactive profiles are ignored now by the
 | 
						|
    default-route module. (#1403)
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - Make sure that alibpref is not part of the device node name because
 | 
						|
    it is random. (#1362)
 | 
						|
  - Fixed an off-by-one that could cause midi events to end up with a
 | 
						|
    wrong timestamp and thus being discarded by some apps. (#1395)
 | 
						|
  - Fix some memory leaks when destroying a card object.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Fix some invalid cycle wakeups that could cause JACK application to
 | 
						|
    run with a 0 buffer size. (#1386)
 | 
						|
  - JACK can now use rtkit to manage realtime priorities on threads.
 | 
						|
  - The Real-time priority is dropped when entering freewheel mode to
 | 
						|
    make sure we don't get killed when using too much CPU.
 | 
						|
  - jack_recompute_total_latencies() is now implemented, fixing the
 | 
						|
    latency reporting in Ardour. (#1388)
 | 
						|
  - Fix some overflows in time calculations.
 | 
						|
  - Ensure frame_rate in position is never 0.
 | 
						|
  - Graph callbacks are now emitted as well.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - RTP payload type is now set correctly for aptX, LDAC and SBC, which
 | 
						|
    should improve compatibility with devices that care about this.
 | 
						|
 | 
						|
## PulseAudio server
 | 
						|
  - There is now a quirks database to deal with bad clients. The database
 | 
						|
    is builtin but can be made external later.
 | 
						|
    - Teams is now lied to and told all sink/sources use s16 samples to make
 | 
						|
      it show all sinks/sources.
 | 
						|
    - Firefox is forced to remove the DONT_MOVE flag on capture streams so
 | 
						|
      that you can move firefox streams with other tools.
 | 
						|
  - The UNDERFLOW warnings are now made into info log messages to not
 | 
						|
    spam the log too much. Many application just let things underrun
 | 
						|
    and PulseAudio did not warn about this either. (#910)
 | 
						|
 | 
						|
## ALSA plugin
 | 
						|
  - The alsa plugin now uses the right metadata for finding the default
 | 
						|
    source and sink, which makes the volume controls reappear. (#1384)
 | 
						|
 | 
						|
## Other
 | 
						|
  - Cleanups in pulse-server and pipewire.
 | 
						|
  - Documentation additions.
 | 
						|
 | 
						|
# PipeWire 0.3.31 (2021-06-28)
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
## 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 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
 | 
						|
    at runtime. This can be used to change the loglevel or
 | 
						|
    graph quantum and samplerate on the fly.
 | 
						|
  - An infinite loop was fixed in the audio converter.
 | 
						|
  - Handle out-of-fds more gracefully. Handle truncated
 | 
						|
    control data by dropping the client connection.
 | 
						|
  - Fix profiler crash with many streams.
 | 
						|
  - Improve latency handling in pw-filter. There is now a
 | 
						|
    default handler and a ProcessLatency parameter to simplify
 | 
						|
    latency reporting.
 | 
						|
  - Latency reporting was improved in devices and streams.
 | 
						|
  - And example sink/source was added.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - hardware mute and volume are now properties on the
 | 
						|
    Route param to make things easier.
 | 
						|
  - More fixes for alsa-ucm 1.2.5.
 | 
						|
 | 
						|
## Tools
 | 
						|
  - spa-json-dump now properly encodes string and keys.
 | 
						|
  - pw-dump now shows the correct subject of the metadata.
 | 
						|
 | 
						|
 | 
						|
## PulseAudio server
 | 
						|
  - Ensure the node.description is set, some applications
 | 
						|
    crash otherwise (TeamSpeak).
 | 
						|
  - Module loading and unloading was improved.
 | 
						|
  - module-avahi-zeroconf was implemented.
 | 
						|
  - module-pipe-source was implemented
 | 
						|
  - module-roc-sink and module-roc-source was implemented.
 | 
						|
  - The maximum amount of connections has been limited to 64,
 | 
						|
    like pulseaudio.
 | 
						|
  - Handle out-of-fds more gracefully.
 | 
						|
  - Fix overflow of read/write pointers.
 | 
						|
  - Source and sink state are now decoupled from the monitor
 | 
						|
    state and will report IDLE when not playing anything.
 | 
						|
 | 
						|
## media-session
 | 
						|
  - Port switching should now happen to/from the port that
 | 
						|
    actually changed.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - The locking was reviewed. All callbacks are now emitted
 | 
						|
    from the PipeWire thread with the lock released and
 | 
						|
    the process function will be disabled for the duration
 | 
						|
    of the callback. This ensures that no two callbacks are
 | 
						|
    called at the same time.
 | 
						|
  - Improve internal consistency and try to never call callbacks
 | 
						|
    with invalid objects.
 | 
						|
  - Monitor port can now be accessed with system:monitor_%d
 | 
						|
  - client threads are now created with SCHED_FIFO and module-rt
 | 
						|
    is used to create the other RT threads. This should avoid
 | 
						|
    SIGKILL from RTKit in some cases.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Various bugfixes to improve connections to devices.
 | 
						|
  - Handle delayed UUID connection.
 | 
						|
  - There is now a hardware database that can disable features
 | 
						|
    in listed devices.
 | 
						|
  - Use libusb to detect availability of mSBC.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - The virtual device name can now also contain a media role.
 | 
						|
 | 
						|
 | 
						|
# PipeWire 0.3.30
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
This is a quick emergency release to fix some severe
 | 
						|
problems with the previous release.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Recording from a monitor port should work again.
 | 
						|
  - JACK applications should now be more stable again.
 | 
						|
  - Freewheeling should not lock up anymore.
 | 
						|
  - Fix lockups in many pulseaudio apps.
 | 
						|
  - module-echo-cancel was implemented in pipewire-pulse
 | 
						|
  - Many other stability fixes.
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - Improve module path logic.
 | 
						|
  - Improve logger formatting
 | 
						|
 | 
						|
## PulseAudio server
 | 
						|
  - Make sure to pass 64 bits values for time on ARM 32 bits to
 | 
						|
    avoid protocol errors.
 | 
						|
  - Avoid a crash when unloading module-combine-sink.
 | 
						|
  - Avoid overflow in requested bytes, resulting in stalled
 | 
						|
    audio.
 | 
						|
  - Implement module-echo-cancel.
 | 
						|
 | 
						|
## Bluetooth
 | 
						|
  - Handle latency parameters instead of failing.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Fix locking in many places to avoid deadlocks and crashes.
 | 
						|
  - Fix port rename.
 | 
						|
  - Stop freewheeling correctly instead of deadlocking.
 | 
						|
 | 
						|
# PipeWire 0.3.29
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
## Highlights
 | 
						|
  - Latency reporting is now implemented.
 | 
						|
  - Many documentation updates and cleanups.
 | 
						|
  - module-combine-sink was added to PulseAudio server.
 | 
						|
  - Better handling of multichannel input profiles.
 | 
						|
  - Fix 100% volume issue when monitor suspends or profile
 | 
						|
    changes in some cases.
 | 
						|
  - Bugfixes and crashes
 | 
						|
 | 
						|
 | 
						|
## PipeWire
 | 
						|
  - A new module-rt was added to acquire real-time scheduling
 | 
						|
    privileges without using RTKit.
 | 
						|
  - Documentation fixes and updates. Docs are now using a
 | 
						|
    custom theme.
 | 
						|
  - There is now a MANDATORY flag on properties that influence
 | 
						|
    how properties are filtered.
 | 
						|
  - Filter-chain now parses the LADSPA_PATH correctly when it
 | 
						|
    contains a colon separated list.
 | 
						|
  - Move `#pipewire` IRC channel to oftc.net.
 | 
						|
  - Fix an error where param changes were not emitted in all
 | 
						|
    cases.
 | 
						|
  - Implement Latency reporting. Latency values are propagated
 | 
						|
    through the graph so that each node knows the latency to
 | 
						|
    the output/input device. Synchronization in pw-stream has
 | 
						|
    been updated to use this.
 | 
						|
  - Some more upmix cases are added so that LFE, SIDE and REAR
 | 
						|
    can be generated from a mono channel as well.
 | 
						|
  - pw-stream and pw-filter will now emit the process event from
 | 
						|
    the real-time thread in a safe way, potentially avoiding some
 | 
						|
    of the harder to debug crashes.
 | 
						|
  - Fix potential stack overflow with serialize_dict.
 | 
						|
  - Add PIPEWIRE_NO_CONFIG to run without custom config files.
 | 
						|
  - The WebRTC echo canceler was added. Next versions will
 | 
						|
    integrate this better.
 | 
						|
 | 
						|
## PulseAudio server
 | 
						|
  - module-combine-sink was implemented.
 | 
						|
  - Fix some segfaults when DBus connections fail.
 | 
						|
  - Support for listening on IPv6 was added.
 | 
						|
  - Fix a bug where many flushes could result in requests for too
 | 
						|
    much data from the client, causing sync, latency and garbled
 | 
						|
    sound problems after many seeks.
 | 
						|
 | 
						|
## ALSA
 | 
						|
  - Also probe input paths for multichannel mappings. This makes
 | 
						|
    multichannel input ports show up in more cases.
 | 
						|
  - Fix headphones/front volume issue on some cards.
 | 
						|
  - Fix max volume issue when profile changes.
 | 
						|
  - Fix issue with UCM local config that was not available when the
 | 
						|
    device was opened in the server but the UCM was opened by the
 | 
						|
    session manager. Fixes alsa 1.2.5 compatibility.
 | 
						|
 | 
						|
## JACK
 | 
						|
  - Implement latency reporting with the new Latency params.
 | 
						|
 | 
						|
# PipeWire 0.3.28
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
## 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.
 | 
						|
 | 
						|
## GStreamer
 | 
						|
  - fixes to the pipewiresink plugin.
 | 
						|
 | 
						|
## SPA plugins
 | 
						|
  - Fix a bug where the volume was reset to 0
 | 
						|
  - Add events to dbus plugin. This can be used to detect dbus
 | 
						|
    disconnects.
 | 
						|
 | 
						|
## Media-session
 | 
						|
  - Handle dbus disconnect.
 | 
						|
  - Handle device reservation errors.
 | 
						|
 | 
						|
## PulseAudio server
 | 
						|
  - Implement module-ladspa-sink and a new PipeWire-only
 | 
						|
    module-ladspa-source
 | 
						|
  - Implement module-pipe-sink
 | 
						|
  - Implement module-tunnel-sink and module-tunnel-source
 | 
						|
  - Fix a bug with module argument parsing
 | 
						|
  - Implement module-zeroconf-discover
 | 
						|
 | 
						|
## ALSA plugin
 | 
						|
  - improve error handling
 | 
						|
 | 
						|
PipeWire 0.3.27
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - Fix bug that caused bluetooth devices to stop working.
 | 
						|
  - Fix session-manager crash when switching users caused by
 | 
						|
    the DBus plugin cleanup errors.
 | 
						|
  - Improve volume handling of monitor ports.
 | 
						|
  - Fix GStreamer v4l2 support.
 | 
						|
  - Implement module-remap-sink and module-remap-source in
 | 
						|
    pipewire-pulse.
 | 
						|
  - More fixes and improvements.
 | 
						|
 | 
						|
 | 
						|
- PipeWire
 | 
						|
  - Move the loopback code into a module. Use this in pw-loopback
 | 
						|
    and pipewire-pulse. Fix some cleanup crashes.
 | 
						|
  - A dummy echo-cancel module was added. Later versions will
 | 
						|
    include the webrtc echo-canceler.
 | 
						|
  - State files don't have the X permission anymore.
 | 
						|
  - Move i18n core into a private header file.
 | 
						|
  - Stream can now advertise properties and receive property
 | 
						|
    updates.
 | 
						|
  - Fix an issue where the wrong index was used to address a port.
 | 
						|
    It caused Bluetooth devices to stop working.
 | 
						|
 | 
						|
- SPA plugins
 | 
						|
  - Only do LFE filtering on channels we created.
 | 
						|
  - Improve name and description of devices.
 | 
						|
  - Improve cleanup in DBus connections and sources to avoid crash
 | 
						|
    when destroying.
 | 
						|
  - Improved volume handling. Hardware, Software and Monitor
 | 
						|
    volumes are now properly separated and handled.
 | 
						|
  - Support for S8 and S8P formats was added.
 | 
						|
 | 
						|
- Tools
 | 
						|
  - pw-cli can now also create Struct from JSON arrays.
 | 
						|
 | 
						|
- Session-manager
 | 
						|
  - The session manager can now also create passive links. This
 | 
						|
    makes is possible to suspend effect chains together with the
 | 
						|
    sinks when not in use.
 | 
						|
  - Match rules now check the complete property value instead of
 | 
						|
    only the start.
 | 
						|
  - Handle multiple pending param enumerations, take only last
 | 
						|
    result. This fixes some volume update issues.
 | 
						|
 | 
						|
- GStreamer plugins
 | 
						|
  - GStreamer plugins now advertise handling DMABUF explicitly. This
 | 
						|
    is currently the only way to avoid a memcpy for v4l2 devices.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - sync ACP with pulseaudio, merge upstream patch instead of our
 | 
						|
    hack to workaround missing duplex devices.
 | 
						|
  - V4l2 devices don't expose their fd anymore. Previously the fd
 | 
						|
    and mmap offsets were passed to the client to access the buffer
 | 
						|
    memory but that could create security issues.
 | 
						|
 | 
						|
- Bluetooth
 | 
						|
  - Don't unregister the profiles on shutdown because this can cause
 | 
						|
    delay, just close the dbus connection.
 | 
						|
  - Bluetooth devices now try to use the global samplerate from the
 | 
						|
    graph.
 | 
						|
 | 
						|
- PulseAudio server
 | 
						|
  - Implement remap-sink and remap-source modules using the
 | 
						|
    new loopback module.
 | 
						|
 | 
						|
PipeWire 0.3.26
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - I18n support, with translations merged from PulseAudio.
 | 
						|
  - New pw-link tool.
 | 
						|
  - Many Bluetooth improvements, support for hardware volumes.
 | 
						|
  - Support for 64 channel devices.
 | 
						|
  - Stability fixes and improvements.
 | 
						|
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - The link factory can now also make links between nodes and
 | 
						|
    ports by name so that it can be used in scripts.
 | 
						|
  - Add module-protocol-simple that can stream raw audio on a
 | 
						|
    socket.
 | 
						|
  - Added i18n support. Merge PulseAudio translations for the ACP
 | 
						|
    library so that we don't cause regressions.
 | 
						|
  - Support more than 19 channels in the channel mixer.
 | 
						|
    This makes all channels usable on 32 and 64 channel cards.
 | 
						|
  - Detect if we're running in a VM and allow for tweaking some
 | 
						|
    settings such as the max-quantum to make things work better in
 | 
						|
    VMs.
 | 
						|
  - Fix a potential crash when connecting a client and updating
 | 
						|
    permissions.
 | 
						|
  - Fix a potential crash when trying to link incompatible ports.
 | 
						|
  - Lingering links in error will now be destroyed automatically.
 | 
						|
 | 
						|
- Tools
 | 
						|
  - Added new pw-link tool to list and monitor ports and to
 | 
						|
    list, monitor, create and destroy links between them.
 | 
						|
  - pw-cli can now also list params by name.
 | 
						|
  - pw-dump now outputs Spa:String:JSON types in metadata as properly
 | 
						|
    parsed and formatted JSON so that tools can parse the
 | 
						|
    metadata values using a JSON parser.
 | 
						|
 | 
						|
- Session-manager
 | 
						|
  - Add logind support. The bluetooth monitor can only be started
 | 
						|
    for one user at the time, so use logind detect active seats.
 | 
						|
  - ALSA icon names were improved to match what PulseAudio does.
 | 
						|
  - Improve the bluetooth icon name. Also use the device alias
 | 
						|
    as the device description, like PulseAudio.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - When devices become inaccessible, they are now removed from
 | 
						|
    the PipeWire graph.
 | 
						|
  - Fix datatype selection for buffers in v4l2 and libcamera.
 | 
						|
 | 
						|
- Bluetooth
 | 
						|
  - Various memory leaks and crashes are fixed.
 | 
						|
  - Added support for AVRCP hardware volume.
 | 
						|
  - Added support for HSP/HFP hardware volume.
 | 
						|
 | 
						|
- PulseAudio server
 | 
						|
  - Fix module-loopback connections to monitor ports.
 | 
						|
  - Implement module-native-protocol-tcp.
 | 
						|
  - Handle nodes and streams with > 32 channels. The PulseAudio
 | 
						|
    API only supports up to 32 channels so only make those 32
 | 
						|
    first channels available with the PA API.
 | 
						|
  - Implement module-simple-protocol-tcp.
 | 
						|
  - Improve events emitted by the server.
 | 
						|
  - Improvements to channels and channel_map properties on
 | 
						|
    modules. one can imply the other and they should match when
 | 
						|
    both given.
 | 
						|
  - null-sink will now have their volume work correctly by
 | 
						|
    default.
 | 
						|
 | 
						|
- JACK
 | 
						|
  - JACK development files can now optionally be installed.
 | 
						|
 | 
						|
PipeWire 0.3.25
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - Many stability improvements.
 | 
						|
  - Plug fd leak in flatpak detection
 | 
						|
  - add pw-loopback tool and support module-loopback
 | 
						|
  - volume restore for virtual sinks/sources or other sink/sources
 | 
						|
    without hardware volume.
 | 
						|
  - Fix cracks and pops in audio capture.
 | 
						|
  - Many bluetooth improvements and compatibility fixes.
 | 
						|
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - Hex encode invalid SEC_LABEL properties to avoid generating
 | 
						|
    invalid json.
 | 
						|
  - Small fixes to how nodes are started to avoid crashes.
 | 
						|
  - Make sure ports are only scheduled after being fully
 | 
						|
    negotiated to avoid crashes.
 | 
						|
  - Implement coverity into CI, fix some bugs detected by
 | 
						|
    coverity.
 | 
						|
  - Plug leak in flatpak detection.
 | 
						|
  - Fix crash when removing globals in some cases.
 | 
						|
  - Fix crash because the mixer info was not removed from a
 | 
						|
    port in all cases.
 | 
						|
  - Add PIPEWIRE_AUTOCONNECT environment variable to disable
 | 
						|
    stream autoconnect. Also add a config option to disable
 | 
						|
    autoconnect.
 | 
						|
  - Improve wildcard in format helpers.
 | 
						|
  - Add env variable to disable journald logging.
 | 
						|
 | 
						|
- Tools
 | 
						|
  - Add a new pw-loopback tool to loop a capture device to a
 | 
						|
    playback device.
 | 
						|
  - Display localized strings correctly in pw-top
 | 
						|
  - Add some more options to pw-dot
 | 
						|
 | 
						|
- Session-manager
 | 
						|
  - When a new node is configured and some stream have this
 | 
						|
    as the default target, move them to it.
 | 
						|
  - Fix some crashes.
 | 
						|
  - Implement volume restore on nodes without routes. This makes
 | 
						|
    it possible to restore volume on purely software nodes like
 | 
						|
    null-sinks.
 | 
						|
  - Also try to suspend errored nodes so that they may leave the
 | 
						|
    error state and be reused again.
 | 
						|
  - Break endless link loops when something went wrong.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - Fix monitor volumes, they are now separate from the hardware
 | 
						|
    volume.
 | 
						|
  - Fix cracks and pops in alsa capture caused by mismatch between
 | 
						|
    resampler and capture source.
 | 
						|
  - Add start-delay config option to alsa sink.
 | 
						|
  - Ensure the PipeWire midi ports start from a higher number so
 | 
						|
    that the lower port numbers are available to apps as before.
 | 
						|
 | 
						|
- Bluetooth
 | 
						|
  - source devices are now removed when idle
 | 
						|
  - Support using pipewire as Audio Gateway.
 | 
						|
  - LDAC encoding quality can be configured now
 | 
						|
  - Implement codec switching for HFP
 | 
						|
  - Implement codec switching with new device property.
 | 
						|
  - Improved stability and compatibility
 | 
						|
  - Autoconnect device profiles at startup
 | 
						|
  - Add AAC bitrate mode configuration
 | 
						|
  - Make it possible to use an A2DP source as an input device. You
 | 
						|
    can then use your phone as an A2DP microphone, for example.
 | 
						|
  - Remove battery reporting when RFCOMM connections is closed.
 | 
						|
 | 
						|
- PulseAudio server
 | 
						|
  - Add some workarounds for Blueman
 | 
						|
  - Set correct errno values, fixes a hang in load-module of a
 | 
						|
    non-existing module
 | 
						|
  - Try to not send inconsistent information to clients.
 | 
						|
  - Fix some crashes.
 | 
						|
  - Add support for the new send-message API, use this to
 | 
						|
    switch bluetooth codecs.
 | 
						|
  - Fix draining by making sure we are started.
 | 
						|
  - Handle 0 sink and source as the default sink/source.
 | 
						|
  - Implement module-loopback
 | 
						|
 | 
						|
- JACK
 | 
						|
  - Fix some memory leaks when closing a client
 | 
						|
  - Add self-connect config option to limit where clients
 | 
						|
    can connect themselves.
 | 
						|
  - Don't crash when apps call _port_get_buffer() on a
 | 
						|
    port that is not their own but simply return NULL.
 | 
						|
    This fixes a crash in Ardour6.
 | 
						|
  - Improve client added/removed callbacks. Sometimes it would
 | 
						|
    emit a client remove when there were still ports for the
 | 
						|
    client.
 | 
						|
  - make sure midi port names are stable across reboots.
 | 
						|
 | 
						|
PipeWire 0.3.24
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - Many JACK midi improvements and device support.
 | 
						|
  - Fixes in gnome-control-center default sink/source handling.
 | 
						|
  - Many small performance improvements in alsa device handling
 | 
						|
    and latency. There should also be less cracks/pops and xruns
 | 
						|
    now.
 | 
						|
  - Fixes for gnome-control-center default sink/source handling.
 | 
						|
  - More bluetooth compatibility improvements.
 | 
						|
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - Implement simple upmixing.
 | 
						|
  - Disable the resampler when not used. This improves latency
 | 
						|
    and CPU usage.
 | 
						|
  - Handle max-quantum on devices and try to not make the quantum
 | 
						|
    larger than the device buffer size.
 | 
						|
  - Improvements to how nodes and links are activated. It should
 | 
						|
    now result in less xruns and cracks/pops.
 | 
						|
  - meson uses the feature options everywhere now.
 | 
						|
  - Handle volume remap in the channelmixer. This fixes the channels
 | 
						|
    on multichannel devices.
 | 
						|
  - Try to escape invalid JSON string characters.
 | 
						|
  - Keep better track of changed parameters in audioconvert.
 | 
						|
  - Improve config files, make arrays where needed.
 | 
						|
  - Respect NO_COLOR where possible
 | 
						|
  - Support in-place config file parsing to avoid allocations and
 | 
						|
    improve startup performance.
 | 
						|
  - There is now a config option to enable non-power-of-two quantums.
 | 
						|
  - Preliminary support for upmixing and generating LFE channels.
 | 
						|
 | 
						|
- Session-manager
 | 
						|
  - Default nodes are not stored as JSON in the metadata. This
 | 
						|
    is more readable and introspectable.
 | 
						|
  - More default-nodes and default-routes improvements. Port
 | 
						|
    switching should work better now.
 | 
						|
  - Wait until all devices are scanned before linking clients.
 | 
						|
  - Fixes some crashes.
 | 
						|
  - Sinks (monitors) can now be set as default sources.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - Fix startup timers for alsa devices.
 | 
						|
  - Improve timers in alsa when quantum changes. It should cause
 | 
						|
    less xruns and cracks.
 | 
						|
  - Fix UCM setup of capture devices.
 | 
						|
  - Only disable IRQ in alsa when not batch. For batch devices the
 | 
						|
    hw pointers are updated each IRQ so we need to keep them enabled.
 | 
						|
    This massively improves latency on USB batch devices to the same
 | 
						|
    level as JACK (with small enough period size).
 | 
						|
 | 
						|
- Bluetooth
 | 
						|
  - Improvements to profile switches.
 | 
						|
  - Improvements to volume handling.
 | 
						|
  - Fixes for A2DP sources
 | 
						|
  - Add support for battery status when available.
 | 
						|
  - Many other small improvements.
 | 
						|
 | 
						|
- PulseAudio server
 | 
						|
  - Handle NULL in set_default_sink/source to clear the default.
 | 
						|
  - Implement a workaround for gnome-control-center when setting
 | 
						|
    the default sink/source. It also sets the target in
 | 
						|
    stream-restore to the new default. This fixes moving streams
 | 
						|
    in gnome-control-center.
 | 
						|
  - Fix some races by replying to some requests after the operation
 | 
						|
    completed.
 | 
						|
  - Prefer formats of the extended format API.
 | 
						|
  - Create a pid file on startup to improve compatibility with apps
 | 
						|
    that look for it.
 | 
						|
  - Capture streams can now be moved to monitors with pavucontrol.
 | 
						|
  - Fixes for crashes.
 | 
						|
 | 
						|
- JACK
 | 
						|
  - jack clients can now connect to the 'default' server.
 | 
						|
  - Move midi ports back to the midi client.
 | 
						|
  - Only mark midi hardware ports as terminal/physical.
 | 
						|
  - Use the same midi names as a2jmidid.
 | 
						|
  - match system ports in get_ports.
 | 
						|
  - Improve compatibility with some apps that require a
 | 
						|
    fixed latency.
 | 
						|
  - Beginnings of the libjackserver implementation.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.23
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - Fixes for some critical bugs in last release.
 | 
						|
  - Fix bug where audio was not drained properly at the end of
 | 
						|
    playback, causing repeating sound.
 | 
						|
  - Profile and route switching was improved and should mimic
 | 
						|
    more what pulseaudio did.
 | 
						|
  - Various fixes for xruns in capture and playback.
 | 
						|
  - Bluetooth now supports delay adjustment and various other
 | 
						|
    improvements.
 | 
						|
  - The pulseaudio server now correctly identifies AC3 and DTS
 | 
						|
    streams and returns a not supported error instead of playing
 | 
						|
    static.
 | 
						|
  - Multichannel support was improved in the alsa plugin and
 | 
						|
    the channel mixer. Channels should now play on the right
 | 
						|
    speakers in all cases.
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - Small fixes and improvements in JSON parsing and encoding.
 | 
						|
  - Improvements to param handling in audioconverter. It would
 | 
						|
    previously not always notify of changes.
 | 
						|
  - Avoid updating some properties that we use internally such
 | 
						|
    as the object id and the node.id.
 | 
						|
  - log.level in the config files is now actually used.
 | 
						|
  - the PIPEWIRE_LATENCY env variable should always override
 | 
						|
    any application settings in filter/stream/jack.
 | 
						|
  - The config file can now contain filer and stream properties
 | 
						|
    to, for example, control the resampler, mixer and latency.
 | 
						|
  - Add sandboxing to the systemd services
 | 
						|
  - Various FreeBSD fixes.
 | 
						|
  - Improve draining and a way to exit the drain state as well.
 | 
						|
  - Many multichannel fixes. Channel remapping should now be
 | 
						|
    correct.
 | 
						|
  - Fix bug with repeating audio at the end of playback because
 | 
						|
    the drain in the resampler was not draining all channels.
 | 
						|
  - RTKit default rt.prio has been increased to 88. This will
 | 
						|
    likely still be clamped to 20 until distros increase the
 | 
						|
    max priority.
 | 
						|
 | 
						|
- Session-manager
 | 
						|
  - Don't try to switch to Pro Audio profile, this should be
 | 
						|
    a user choice only.
 | 
						|
  - Don't crash when metadata was disabled such as when not
 | 
						|
    using the audio features of pipewire.
 | 
						|
  - Rework the profile and route handling.
 | 
						|
  - Add systemd unit files for the media-session
 | 
						|
  - Device names should now also have sane names so that tab
 | 
						|
    pactl completion works on them.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - Fix ALSA format enumeration in more cases. Use the channels
 | 
						|
    and rate as a filter.
 | 
						|
  - Make sure the graph doesn't ever use buffers larger than
 | 
						|
    the alsa device buffer size or we get xruns.
 | 
						|
  - Tuning of the alsa device timeout handling and dynamic
 | 
						|
    resampler. There should now not be any xruns when streams
 | 
						|
    appear and disappear or when the quantum changes.
 | 
						|
  - Fix bug in alsa device when reassigning to a new driver,
 | 
						|
    in some cases the dynamic resampler was not activated and
 | 
						|
    things would drift out of sync and fail.
 | 
						|
  - Fixes in quantum changes for ALSA capture and how the
 | 
						|
    resampler is drained and fed with the new samples.
 | 
						|
 | 
						|
- Bluetooth
 | 
						|
  - Delay adjustment has been implemented now. Bluetooth
 | 
						|
    devices should now be more synchronized with video due
 | 
						|
    to proper delay reporting. Because BT delays can be
 | 
						|
    large, it can cause hickups in some players.
 | 
						|
  - Fix volume in bluetooth devices.
 | 
						|
  - Codec switch improvements.
 | 
						|
 | 
						|
- PulseAudio server
 | 
						|
  - Latency offset adjustment is now implemented and functional
 | 
						|
    for bluetooth devices. It is not working for alsa devices
 | 
						|
    yet.
 | 
						|
  - Handle unsupported formats. Previously we would accept encoded
 | 
						|
    formats and play noise. This fixes AC3 playback in vlc.
 | 
						|
  - Move some of the configurable parameters to the config file.
 | 
						|
  - Fix a fatal use after free when playing samples
 | 
						|
  - Improve module handling. loaded modules now show up in the
 | 
						|
    list of modules and can be unloaded. This also prepares the
 | 
						|
    core for more module implementations later.
 | 
						|
 | 
						|
- ALSA plugin
 | 
						|
  - Fix drain with very large buffers, we need to manually start
 | 
						|
    the stream before draining.
 | 
						|
  - Fix the channel layout handling.
 | 
						|
  - Improve compatibility with apps that expect the poll to only
 | 
						|
    return when there is activity.
 | 
						|
  - Fix drain for capture
 | 
						|
 | 
						|
- JACK
 | 
						|
  - Add a config option to shorten and filter client names
 | 
						|
  - Increase the length of the client name size and make sure
 | 
						|
    we don't exceed the allocated size.
 | 
						|
  - We now include our own jack header files so we can build
 | 
						|
    without depending on another jack-devel package. We don't
 | 
						|
    yet install the headers or provide pkgconfig files.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.22
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - Per client config files replace the module-profiles. It's
 | 
						|
    now possible to tweak settings and load custom modules.
 | 
						|
  - Pro Audio card profile support. You can now select the
 | 
						|
    Pro Audio profile and have raw device access with the
 | 
						|
    maximum number of channels and no mixer controls. This is
 | 
						|
    the usual setup for managing high end Pro Audio cards.
 | 
						|
  - Many fixes and improvements in the JACK library to make
 | 
						|
    devices look and integrate better.
 | 
						|
  - Many bluetooth improvements. Playback should be more
 | 
						|
    reliable and better synchronized. Support for the HFP HF
 | 
						|
    profile.
 | 
						|
  - Small fixes and improvements all over the map.
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - Add support for restrictions requested by a client. This
 | 
						|
    makes it possible to implement Flatpak policy for emulated
 | 
						|
    PulseAudio clients as well.
 | 
						|
  - Fix removal of params in objects. Previously they would not
 | 
						|
    be removed from the cache.
 | 
						|
  - Remove mlock warnings by default. There is an option to enable
 | 
						|
    them again if you want to check if your system is optimized.
 | 
						|
  - Remove LimitMEMLOCK lines from the service files. They can
 | 
						|
    only lower the system settings and are thus not useful.
 | 
						|
  - Implement per-client config files. Each pipewire client will
 | 
						|
    now read a config file that you can use to configure the
 | 
						|
    context of the client.
 | 
						|
  - Implement state and config load/save in pipewire. This is used
 | 
						|
    by the session manager or other apps.
 | 
						|
  - Make an option to disable dbus support.
 | 
						|
  - Add tool to convert pipewire config to JSON.
 | 
						|
 | 
						|
- Session-manager
 | 
						|
  - Give all permissions to Manager flatpak apps. In the future
 | 
						|
    we will use the Permission store to remember user settings.
 | 
						|
  - Improvements to default audio/sink handling.
 | 
						|
  - Add option to configure device suspend time.
 | 
						|
  - Small fixes in route handling.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - Complain when ACP profile files are not found and use
 | 
						|
    a fallback in order to get something working.
 | 
						|
  - Add volume support to monitor ports.
 | 
						|
  - Fix resume from suspend for ALSA in more cases.
 | 
						|
  - ALSA ACP cards now have a Pro Audio profile that exposes
 | 
						|
    the raw card devices.
 | 
						|
 | 
						|
- Bluetooth
 | 
						|
  - Enable A2DP delay reporting. This improves audio/video sync
 | 
						|
    when playing audio over bluetooth.
 | 
						|
  - Fix stuttering in A2DP source
 | 
						|
  - Tweak buffer size and latency settings to avoid stuttering
 | 
						|
  - More work on HSP and HFP support
 | 
						|
  - Fix initial profile configuration
 | 
						|
  - Add HFP HF support
 | 
						|
 | 
						|
- PulseAudio server
 | 
						|
  - Small tweaks in capture packet size to avoid crashes in some
 | 
						|
    apps.
 | 
						|
  - Detect Flatpak apps and requests the flatpak permissions from
 | 
						|
    the session manager. This means that Flatpak pulseaudio apps
 | 
						|
    will now run with reduced permissions.
 | 
						|
 | 
						|
- ALSA plugin
 | 
						|
  - Reduce min buffer size in the plugin for lower possible
 | 
						|
    latency.
 | 
						|
 | 
						|
- JACK
 | 
						|
  - implement some missing methods to make qjackctl work again.
 | 
						|
  - Use the context data thread instead of making our own. This
 | 
						|
    fixes the issue where the data thread was not given RT
 | 
						|
    priority correctly.
 | 
						|
  - Pass extra jack flags around in port properties. This makes
 | 
						|
    CV ports in carla work.
 | 
						|
  - Many tweaks to the port names and aliases. Unwanted characters
 | 
						|
    are filtered out, giving better names to jack apps. Default
 | 
						|
    device names are now equal to those seen in pulseaudio apps.
 | 
						|
  - Add an option to make a separate client for the monitor ports
 | 
						|
    of a device. This makes it more usable in apps.
 | 
						|
  - add support for system:playback_N and system:capture_N port
 | 
						|
    names for apps that hardcode these port names.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.21
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - Many PulseAudio compatibility fixes. Handling of corked
 | 
						|
    streams, the prebuf setting, seek modes and stream flags
 | 
						|
    are now implemented correctly.
 | 
						|
  - Ports and Profiles are now managed by the session manager
 | 
						|
    and can save and restore previous settings.
 | 
						|
  - ALSA device handling has been tweaked for maximum
 | 
						|
    compatibility at the expense of latency. There are tuning
 | 
						|
    options in the config file.
 | 
						|
  - Improved Bluetooth support. HSP is disabled by default
 | 
						|
    because it is old and deprecated and in some cases causes
 | 
						|
    conflicts with the newer HFP profile. Codec switching is
 | 
						|
    now implemented as well.
 | 
						|
  - PipeWire accepts donations with liberapay now.
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - Improve draining in pw-stream.
 | 
						|
  - pw-stream now uses busy metadata by default. This makes sure
 | 
						|
    that no writer can write to buffers when readers are still
 | 
						|
    busy.
 | 
						|
  - Fix handling of empty array/choice instead of failing.
 | 
						|
  - Fix crashes when creating properties from empty strings.
 | 
						|
  - Make it possible to pass an array to module-access
 | 
						|
    access.allowed variables
 | 
						|
  - Fix small bug in argument parsing in pw-cat
 | 
						|
 | 
						|
- Session-manager
 | 
						|
  - Restore route volumes in all cases, also when switching
 | 
						|
    routes.
 | 
						|
  - Use a default route volume for unknown routes instead of
 | 
						|
    letting the system decide on a default.
 | 
						|
  - Improve profile handling. Don't try to restore unavailable
 | 
						|
    profiles. Implement the profile switching in the session
 | 
						|
    manager now.
 | 
						|
  - Fix handling of Virtual sources as defaults.
 | 
						|
  - Handle port switching in the session manager. Implement
 | 
						|
    save and restore of default ports per profile.
 | 
						|
 | 
						|
- GStreamer
 | 
						|
  - Fix a crash with zero SPA_PARAM_BUFFERS_size
 | 
						|
 | 
						|
- Device support
 | 
						|
  - v4l2-source will now respect the requested memory types.
 | 
						|
  - ALSA buffering has been tweaked. USB devices should have
 | 
						|
    less XRuns by default. Parameters can be tweaked to
 | 
						|
    decrease the latency on capable devices. Also fix a case
 | 
						|
    where a quantum change would cause an xrun.
 | 
						|
  - Fix mute in bluetooth devices
 | 
						|
  - bluetooth devices are not paused in idle anymore for
 | 
						|
    improved compatibility.
 | 
						|
  - Codec switching for bluetooth is implemented along with
 | 
						|
    config options to select the codecs manually.
 | 
						|
  - HSP for bluetooth is now disabled by default. Most devices
 | 
						|
    support the newer HFP profile and some devices fail when
 | 
						|
    both are available.
 | 
						|
  - Reduce the amount of events the ALSA plugins emit by bundling
 | 
						|
    them.
 | 
						|
 | 
						|
- PulseAudio server
 | 
						|
  - Implement the suspend command
 | 
						|
  - Fixes volume in sample info
 | 
						|
  - Fix playback of samples, sometimes samples would be clipped
 | 
						|
    short. Also implement the target sink for the sample.
 | 
						|
  - Use rate match to feed samples. This way the latency can
 | 
						|
    be kept to a minimum.
 | 
						|
  - Latency has been tuned some more, more closely emulating
 | 
						|
    pulseaudio behaviour.
 | 
						|
  - Improve default sink/source handling. Make sure all events
 | 
						|
    are sent correctly when defaults change.
 | 
						|
  - Handle underrun better without causing sync issues. Make sure
 | 
						|
    to pause in corked state.
 | 
						|
  - Implement rewind due to seeks, fixes GStreamer seeking.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.20
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - Latency was reduced in ALSA and PulseAudio and time
 | 
						|
    reporting has improved a lot.
 | 
						|
  - Bluetooth now has a native HFP backed, SBC XQ and
 | 
						|
    mSBC support.
 | 
						|
  - Many bugfixes and improvements, improved device
 | 
						|
    support.
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - pw-dump can now dump all objects such as Endpoints
 | 
						|
  - pw-dump has a -m option to monitor changes
 | 
						|
  - pw-dump can now dump metadata
 | 
						|
  - pw-stream can now use the rate-match io to exactly
 | 
						|
    produce the required number of samples for the
 | 
						|
    current cycle. When using this feature, a stream can
 | 
						|
    achieve the same low-latency as pw-filter.
 | 
						|
  - spa-acp-tool can now load a custom profile-set and
 | 
						|
    correctly parses the volume updates
 | 
						|
  - There is now a nofail option when loading modules
 | 
						|
  - The connection has been made reentrant to fix some
 | 
						|
    strange random problems with metadata.
 | 
						|
  - Turn some errors into warnings or simply info.
 | 
						|
  - Executables are now built with PIE
 | 
						|
  - S24OE formats should work now (MAudio FastTrack Pro)
 | 
						|
  - Remove mlock warnings. Add support for mlockall with
 | 
						|
    a config option.
 | 
						|
 | 
						|
- Session-manager
 | 
						|
  - There are now config files for bluez and v4l2 modules
 | 
						|
  - Improve ALSA device and node properties
 | 
						|
  - Bluetooth devices have better properties now.
 | 
						|
  - The default device routing has been improved.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - Port priorities are updated for UCM devices
 | 
						|
  - ACP devices notify change in routes in all cases
 | 
						|
  - There is now RW support in ALSA devices to increase
 | 
						|
    compatibility.
 | 
						|
  - Many improvements to Bluetooth. SBC XQ support can now
 | 
						|
    be enabled with a config option. mSBC can be enabled
 | 
						|
    with an option.
 | 
						|
  - Bluetooth devices not expose Routes so that they look
 | 
						|
    more like how PulseAudio handles them
 | 
						|
  - Gracefully handle missing profile-sets
 | 
						|
  - There is now a native HFP backend
 | 
						|
  - Improve card names in some cases.
 | 
						|
  - pause-on-idle is now disabled for ALSA devices. This can
 | 
						|
    reduce pops and clicks when the device is stopped.
 | 
						|
 | 
						|
- ALSA plugin
 | 
						|
  - Use rate-match to reduce the latency
 | 
						|
  - Implement a _delay() function to get smoother timestamps.
 | 
						|
  - Fix property parsing. Fixes volume changes in alsamixer.
 | 
						|
 | 
						|
- PulseAudio server
 | 
						|
  - Use rate-match to reduce the latency. This also reduces
 | 
						|
    the buffering in audioconvert and improves timestamp
 | 
						|
    reporting.
 | 
						|
  - Implement rate changes now that we have rate-match
 | 
						|
    support.
 | 
						|
  - pactl stats will now work
 | 
						|
  - Fix excessive memory usage when a capture client doesn't
 | 
						|
    read fast enough.
 | 
						|
 | 
						|
PipeWire 0.3.19
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - Startup after login should be fixed now with inotify
 | 
						|
    used to wait for permissions.
 | 
						|
  - Channels should be mapped correctly now.
 | 
						|
  - Many bluetooth improvements in LDAC, AptX-HD. AAC was
 | 
						|
    also added. Headsets should work better now.
 | 
						|
  - pipewire-libpulse was removed. It is now completely
 | 
						|
    replaced by pipewire-pulse.
 | 
						|
  - Fix a crasher bug in pipewire-pulse and some memory leaks.
 | 
						|
  - Fix a bug with feedback loop that would cause 100% CPU.
 | 
						|
  - A new pw-top tool to display real-time graph performance.
 | 
						|
  - The example session manager now has config files.
 | 
						|
  - The config file format was changed to use the SPA JSON
 | 
						|
    tokenizer. This makes it more flexible and extensible.
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - Fix debug of id in format channels
 | 
						|
  - Audioconvert should now remap channels correctly in all
 | 
						|
    cases.
 | 
						|
  - Feedback loops were not scheduled correctly and would
 | 
						|
    cause 100% CPU usage.
 | 
						|
  - Small improvements to the profiler to also log incomplete
 | 
						|
    graph status.
 | 
						|
  - a new tool pw-top was added that prints real-time performance
 | 
						|
    stats of the graph.
 | 
						|
  - the rtkit module now sets the nice level to -11
 | 
						|
 | 
						|
- Session-manager
 | 
						|
  - The session manager would sometimes link dont-reconnect
 | 
						|
    nodes to another node, which would leak monitor streams in
 | 
						|
    pipewire-pulse.
 | 
						|
  - The session manager now has configuration files. Config files
 | 
						|
    can also be placed in the user home directory to make custom
 | 
						|
    configurations.
 | 
						|
  - The session managers now creates unique device and node
 | 
						|
    names for alsa and v4l2 devices.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - Many improvements in Bluetooth codecs, LDAC stuttering,
 | 
						|
    AptX-HD negotiation, LDAC ABR support
 | 
						|
  - Bluetooth supports AAC audio now.
 | 
						|
  - Many fixes to Bluetooth SCO transport used in headsets.
 | 
						|
  - inotify support in device monitors
 | 
						|
  - ACP was synced with the latest pulseaudio code
 | 
						|
  - Fix a bug in enumeration of device ports.
 | 
						|
 | 
						|
- PulseAudio server
 | 
						|
  - seek flags and offset are now supported, making gstreamer
 | 
						|
    pulse elements work better.
 | 
						|
  - Fix a crasher bug in pipewire-pulse, we sometimes would
 | 
						|
    write too much to the ringbuffer
 | 
						|
  - Fix some memory leaks in error cases.
 | 
						|
  - Fix handling of NULL string to locate default sink/source
 | 
						|
 | 
						|
- JACK layer
 | 
						|
  - Ports can also be found with the aliases now, making
 | 
						|
    qjackctl work in more cases.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.18
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - More work in the PulseAudio server. It should be compatible
 | 
						|
    with more applications.
 | 
						|
  - Bluetooth now support extra codecs such as AptX/HD and LDAC.
 | 
						|
  - Support for virtual sources and sink was improved a lot.
 | 
						|
  - Added a new pw-dump tool to dump the objects in JSON formats
 | 
						|
    and for filtering them with tools like jq.
 | 
						|
  - Many more stability fixes and improvements.
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - Silence some harmless warnings
 | 
						|
  - pw-cli can now be used to set parameters.
 | 
						|
  - Streams now perform the correct channel mapping when linked
 | 
						|
    to non-standard multichannel devices. Previously channels
 | 
						|
    would get swapped.
 | 
						|
  - port, node and device params are now cached in the server.
 | 
						|
    This avoids opening and closing devices whenever some client
 | 
						|
    enumerates formats, which improves performance a lot,
 | 
						|
    especially in cases where opening a device is slow.
 | 
						|
  - Add a command to keep a device open during negotiation. This
 | 
						|
    is used to enumerate and set a format while opening the
 | 
						|
    device just once, improving performance.
 | 
						|
  - The null-sink scheduling was fixed.
 | 
						|
  - A memory corruption bug was fixed in format conversion, this
 | 
						|
    could cause crashes, silent channels or other undefined
 | 
						|
    behaviour.
 | 
						|
  - There is now a simple JSON parser.
 | 
						|
 | 
						|
- Session-manager
 | 
						|
  - Settings files are now stored in JSON. With the json parser
 | 
						|
    this is easier to parse and extend
 | 
						|
 | 
						|
- Device support
 | 
						|
  - Bluetooth now supports additional codecs: LDAC, AptX and
 | 
						|
    AptX HD. LDAC is known to not work very well yet.
 | 
						|
  - ALSA devices will now default to the max supported channels
 | 
						|
    if nothing else is specified. This makes it possible to use
 | 
						|
    8+ channel cards with the alsa-pcm module, which is not
 | 
						|
    supported with the default alsa-acp module.
 | 
						|
  - Enable mSBC support in oFono.
 | 
						|
  - Add an option to disable hardware mixers
 | 
						|
  - ALSA now improves support for batch devices.
 | 
						|
  - The udev rules had references to Pulseaudio removed in order
 | 
						|
    to not create conflicts.
 | 
						|
  - Fix a potential crash in bluetooth devices when
 | 
						|
    disconnecting.
 | 
						|
  - UCM cards now use HW volume when possible.
 | 
						|
 | 
						|
- PulseAudio server
 | 
						|
  - The id can now be used as the name to locate cards and
 | 
						|
    devices
 | 
						|
  - Report streams with planar formats as well
 | 
						|
  - Better error reporting when stream create fails
 | 
						|
  - module-null-sink can now handle channels, rate and
 | 
						|
    channel_map properties
 | 
						|
  - Add support for 3 types of virtual devices: source,
 | 
						|
    sink and duplex.
 | 
						|
  - set-port was fixed
 | 
						|
  - Some buffer parameters were tweaked to improve
 | 
						|
    performance, compatibility and stuttering with lower
 | 
						|
    latency.
 | 
						|
  - NULL can be used as a name for the device sink/source
 | 
						|
  - Support lookup of monitor names
 | 
						|
  - Set properties more like pulseaudio so that some
 | 
						|
    clients (Teamspeak) don't crash anymore
 | 
						|
 | 
						|
PipeWire 0.3.17
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - Fix crasher bug for kwin when screensharing stopped.
 | 
						|
  - Massive improvements and compatibility fixes in the
 | 
						|
    PulseAudio server.
 | 
						|
  - The session manager now has a config directory in
 | 
						|
    /etc/pipewire/media-session.d/ It will look for files there
 | 
						|
    to activate session manager modules. Packagers can use
 | 
						|
    this to only activate the audio modules when the PulseAudio
 | 
						|
    server, libjack.so or the alsa modules are installed.
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - We now clear hooks before adding them. Some application
 | 
						|
    did not clear them and had random data for the destroy
 | 
						|
    callback.
 | 
						|
  - Return -ENOENT from unknown resources so apps can handle
 | 
						|
    this better. It's a common problem when an app tries to
 | 
						|
    introspect and object but it disappeared before the message
 | 
						|
    reached the server. Apps should ignore this.
 | 
						|
  - channelmap information is now passed with the volume
 | 
						|
    settings.
 | 
						|
  - DMABuf is not mmapp()ed anymore with the FLAG_MAP_BUFFERS in
 | 
						|
    the stream or filter. This is because DMABuf usually
 | 
						|
    requires more that just a simple mmap and is better left
 | 
						|
    for the application.
 | 
						|
  - increase the maximum number of ports for a client-node.
 | 
						|
  - adapter and node-factory now support the linger option to
 | 
						|
    keep the objects alive after the creating client disconnected.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - ALSA now handles error in close(), like when unplugging a
 | 
						|
    USB device.
 | 
						|
 | 
						|
- Session-manager
 | 
						|
  - The session manager is now handling DONT_RECONNECT streams
 | 
						|
    without a target node. They get connected to a default node
 | 
						|
    once and then fail to reconnect.
 | 
						|
  - The session manager now exposes the stream setting as
 | 
						|
    metadata. This makes it possible for other components, such
 | 
						|
    as pulse-server to use this information. Information is stored
 | 
						|
    as a json object for easier consumption.
 | 
						|
  - The session manager now has a config directory in
 | 
						|
    /etc/pipewire/media-session.d/ packagers can use this
 | 
						|
 | 
						|
- PulseAudio server
 | 
						|
  - Pulse server now acquire the dbus name.
 | 
						|
  - Improvements in timing and compatibility with many apps.
 | 
						|
  - The stream-restore extension is now implemented so that
 | 
						|
    the event volume can be configured.
 | 
						|
  - Many stability fixes and improvements.
 | 
						|
  - Fix some issues with module-load/unload
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.16
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - Fix screensharing for old 0.2 clients
 | 
						|
  - Many pulse-server improvements. There is now a
 | 
						|
    pipewire-pulse binary that is the preferred solution for
 | 
						|
    PulseAudio compatibility. The replacement libpulse
 | 
						|
    libraries are now deprecated. This also makes audio in
 | 
						|
    Flatpak work.
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - Fix cleanup of listeners everywhere. Force remove of
 | 
						|
    listeners in _destroy to avoid crashes.
 | 
						|
  - Add support for a journald logger module.
 | 
						|
  - Various memory leak fixes
 | 
						|
  - Silence some warnings that spammed the logs.
 | 
						|
  - Fix flush in pw_stream. This fixes small glitches when
 | 
						|
    switching streams in music players.
 | 
						|
  - Various FreeBSD fixes and improvements.
 | 
						|
  - Fix some crashes when destroying objects.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - Reload the ALSA configuration when creating a node so that
 | 
						|
    hotplugged devices work in all cases.
 | 
						|
  - Fix memory leaks in ACP library. This also fixes issues
 | 
						|
    where the mixer device was not closed.
 | 
						|
  - Bluetooth now has support for the mSBC codec for SCO
 | 
						|
    source and sink.
 | 
						|
 | 
						|
- pulse-server
 | 
						|
  - Many introspection and compatibility improvements. It should
 | 
						|
    now be as good or better than the replacement library.
 | 
						|
  - Implement sample cache to make notification events work.
 | 
						|
 | 
						|
- JACK layer
 | 
						|
  - handle errors when linking, fixes jack_connect hang when
 | 
						|
    the ports were already linked.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.15
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - This is a quick update to fix critical issues with the
 | 
						|
    0.3.14 update, which broke screen sharing and accidentally
 | 
						|
    enabled the experimental pulse-server.
 | 
						|
  - Fix some compatibility issues in pulse-server with
 | 
						|
    pavucontrol and fix an issue that would block the complete
 | 
						|
    server.
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - Permission checks for new clients are now done from a
 | 
						|
    global context, which makes it possible to assign initial
 | 
						|
    permissions to objects.
 | 
						|
  - Handle EINTR everywhere
 | 
						|
  - Fix an issue with the node state changes where a quick
 | 
						|
    pause/play would hang a client.
 | 
						|
 | 
						|
- Session manager improvements
 | 
						|
  - Disable the bluez5 and pulse-bridge modules by default because
 | 
						|
    they interfere with pulseaudio. These options should only be
 | 
						|
    enabled if pulseaudio is removed or disabled in the system.
 | 
						|
  - Fix an issue where the session manager could end up in
 | 
						|
    infinite recursion while scanning for things to do.
 | 
						|
  - The session manager will now always configure nodes to remix
 | 
						|
    to the channel configuration of the device. This fixes the case
 | 
						|
    where mono streams would only end up on one channel of a stereo
 | 
						|
    device.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - Initial merge of A2DP extra codec support using the new bluez5
 | 
						|
    API.
 | 
						|
 | 
						|
- pulse-server
 | 
						|
  - Create the runtime directory when it doesn't exist.
 | 
						|
  - Don't ever block the server, use non-blocking IO everywhere.
 | 
						|
  - Fill description of profiles with the name if not otherwise set,
 | 
						|
    this fixes a crash in pavucontrol.
 | 
						|
  - the connection debug category will now also debug pulse
 | 
						|
    messages.
 | 
						|
  - Respect the no_remix flag to make the control panel channel
 | 
						|
    check work.
 | 
						|
 | 
						|
- ALSA plugin
 | 
						|
  - implement pause
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.14
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Highlights
 | 
						|
  - This release focuses on bugfixes and stability
 | 
						|
    improvements.
 | 
						|
  - A new experimental pulse-server module was added. This
 | 
						|
    module implements the pulseaudio protocol on top of
 | 
						|
    PipeWire and can be used to make flatpaks work with
 | 
						|
    PipeWire. It looks like this might be a better way
 | 
						|
    forward compared to the libpulse.so replacement library.
 | 
						|
  - A2DP bluetooth was reworked. Playback should work a lot
 | 
						|
    better now. Support was also added to automatically link
 | 
						|
    an A2DP source to a playback device, which makes it possible
 | 
						|
    to use PipeWire as a bluetooth receiver as well.
 | 
						|
  - Improvements to the routing and volume restore features
 | 
						|
    of the session manager.
 | 
						|
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  - The channelmixer does not normalize volumes anymore. Volumes
 | 
						|
    are only normalized for monitoring streams now.
 | 
						|
  - Streams can actually start in the inactive state now.
 | 
						|
  - The channelmixer can now also convert volume updates from one
 | 
						|
    channel layout to another. This makes saved volumes work
 | 
						|
    even when streams have different channel layouts.
 | 
						|
  - Clients are only registered after the properties have been
 | 
						|
    updated.
 | 
						|
  - Links now have a new active state.
 | 
						|
  - Drivers can now also specify a minimum quantum. This makes it
 | 
						|
    possible for bluetooth devices to specify an optimum quantum
 | 
						|
    for the given codec settings and MTU.
 | 
						|
  - The amount of data sent over the socket was reduced by only
 | 
						|
    sending the data that changed.
 | 
						|
  - Client objects are now exposed after they uploaded their
 | 
						|
    properties, which makes the new object more useful.
 | 
						|
 | 
						|
- Tools improvements
 | 
						|
  - pw-cat will now add metadata to the PipeWire streams.
 | 
						|
 | 
						|
- Session manager improvements
 | 
						|
  - Fix crashes when reading bad data in stored settings.
 | 
						|
  - volume and routing is improved. Settings are now remembered
 | 
						|
    per application or media-role.
 | 
						|
  - The session manager remembers the last device used per stream
 | 
						|
  - Fix a bug when moving streams where it could sometimes end
 | 
						|
    up with linking a stream to multiple devices.
 | 
						|
  - Use RTKit to set realtime priority on the data thread in the
 | 
						|
    session manager. This improves performance of the pulse-server
 | 
						|
    and bluetooth devices.
 | 
						|
  - Add a new property to mark streams that want to capture from
 | 
						|
    the monitor of the default sink.
 | 
						|
  - NODE_TARGET can now also contain the node name. This avoids
 | 
						|
    some lookups in the pulseaudio layer when selecting target
 | 
						|
    nodes by name.
 | 
						|
  - the -e and -d options are more usable now and can be used to
 | 
						|
    add and remove modules from the default list of modules.
 | 
						|
 | 
						|
- Device support
 | 
						|
  - v4l2: add some workarounds for buggy drivers. Add Limited
 | 
						|
    support for droidcam.
 | 
						|
  - ACP: improve selection of default port and profiles.
 | 
						|
  - ACP: add support for using the hardware mixer for more than
 | 
						|
    8 channel streams.
 | 
						|
  - ACP: support the new port type and availability group found
 | 
						|
    in PulseAudio.
 | 
						|
  - A2DP bluetooth timings were reworked. Automatic linking of
 | 
						|
    A2DP sources was added to make it possible for PipeWire to
 | 
						|
    act as a bluetooth receiver. The code was reworked to allow
 | 
						|
    other codecs such as APTX and LDAC in the future.
 | 
						|
  - Try harder to recover from ALSA errors.
 | 
						|
 | 
						|
- GStreamer improvements
 | 
						|
  - Fix some crashes in the monitor that cause
 | 
						|
    gnome-initial-setup to crash.
 | 
						|
 | 
						|
- PulseAudio layer improvements
 | 
						|
  - Many compatibility improvements. Improved playback in
 | 
						|
    chrome. Fix a crash in firefox when the daemon is stopped.
 | 
						|
  - Fix a leak in the formats.
 | 
						|
  - Fix !ADJUST_LATENCY streams like paplay.
 | 
						|
  - Make the device option in paplay work.
 | 
						|
  - Fix volume/mute notifications, this makes plasma volume updates
 | 
						|
    work again.
 | 
						|
  - Do the conversion between PulseAudio cubic volumes and PipeWire
 | 
						|
    linear volumes. Volume levels should behave now like they did
 | 
						|
    with PulseAudio.
 | 
						|
 | 
						|
- JACK layer improvements
 | 
						|
  - Return an error when we run out of midi events. Some application
 | 
						|
    rely on this behaviour.
 | 
						|
 | 
						|
- ALSA plugin improvements
 | 
						|
  - The ALSA plugin now also supports the node name in the
 | 
						|
    playback_node and capture_node properties.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.13
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- 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.
 | 
						|
  - Fix soft volume. After setting the volume to 0, it would stay
 | 
						|
    at 0 until pushed over the max volume. This should fix
 | 
						|
    various volume related issues.
 | 
						|
 | 
						|
- PulseAudio layer improvements
 | 
						|
  - Rework the buffering and latency measurements and tweak the
 | 
						|
    buffer attributes. This should make browsers and media
 | 
						|
    players work better. This should also improve speechd
 | 
						|
    performance.
 | 
						|
 | 
						|
- JACK layer improvements
 | 
						|
  - Fix compilation against newer JACK.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.12
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  * the channelmap converter now handles unknown and strange
 | 
						|
    channellayouts much better.
 | 
						|
  * the resampler is now cleared correctly, avoiding clicks and
 | 
						|
    pops at the start of sound.
 | 
						|
  * Fixes for various crasher bugs. (paplay drain, vlc shutdown,
 | 
						|
    pactl info, ...)
 | 
						|
  * Fix a race condition in the node state changes that caused
 | 
						|
    all kinds of sync and other issues (vlc, mpv, ...)
 | 
						|
  * Improve the binary name property of applications
 | 
						|
  * Fix the scheduling again of nodes that always need a driver
 | 
						|
    such as the jack clients.
 | 
						|
 | 
						|
- Session manager improvements
 | 
						|
  * fix routing to default nodes. Sometimes nodes were not routed to
 | 
						|
    the default node (bluetooth)
 | 
						|
 | 
						|
- Device support
 | 
						|
  * disable channelmap from ALSA by default. This is what PulseAudio
 | 
						|
    does and thus provides better compatibility.
 | 
						|
  * fix a bug in how the resampler was used in the ALSA source,
 | 
						|
    causing distortion and errors when using low latency capture
 | 
						|
    clients. (Discord, webrtc, ...)
 | 
						|
  * Small bluetooth improvements. More work is needed for reliable
 | 
						|
    bluetooth playback.
 | 
						|
 | 
						|
- GStreamer plugins
 | 
						|
  * the device provider now stops the processing loop before shutting
 | 
						|
    down, which avoids crashes (gnome-initial-setup).
 | 
						|
 | 
						|
- PulseAudio layer improvements
 | 
						|
  * the buffer attributes were reworked to ensure compatibility with
 | 
						|
    many more applications such as mpv and audacious.
 | 
						|
  * the pulseaudio layer will now try hard to not hand out invalid
 | 
						|
    channel maps to the application. (avoids crashes in
 | 
						|
    gnome-volume-control). The channel map will now also look more
 | 
						|
    like what PulseAudio does.
 | 
						|
  * the @DEFAULT_SINK/SOURCE/MONITOR@ wildcards now work. This
 | 
						|
    fixes the problem with volume keys when they are bound to
 | 
						|
    scripts using pactl and the default sink/source wildcards.
 | 
						|
  * the PIPEWIRE_LATENCY environment variable now works again
 | 
						|
  * Fix some leaks of ports and port info. Also fix the leak of the
 | 
						|
    context when the mainloop is stopped.
 | 
						|
  * The sink/source format_info array is now filled up completely,
 | 
						|
    this is actually not implemented yet in the real PulseAudio.
 | 
						|
 | 
						|
- JACK layer improvements
 | 
						|
  * jack now returns version 3.0.0 and has PipeWire in the version
 | 
						|
    string so that apps can report this.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.11
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- PipeWire improvements
 | 
						|
  * Properly cleanup the mixer structures when a port is removed,
 | 
						|
    this should fix client crashes related to port config changes
 | 
						|
    and other random crashes.
 | 
						|
  * Optimize the preferred formats in the audio converter. Higher
 | 
						|
    quality formats with higher performance are chosen first.
 | 
						|
  * Make sure the time reported by pw_stream is always increasing,
 | 
						|
    even when the driver and clock changes.
 | 
						|
  * There is now also a system service and socket that can be used
 | 
						|
    to enable PipeWire systemwide. This is however not recommended
 | 
						|
    and disabled by default.
 | 
						|
  * Fix channelmixer 5.1 to stereo mix matrix. It was not reading
 | 
						|
    the conversion matrix correctly and cause channels to be
 | 
						|
    dropped. The channelmixer will now also normalize the volume,
 | 
						|
    like what pulseaudio does.
 | 
						|
  * The channelmixer will now just copy channels when no layout
 | 
						|
    has been given. It has also optimized paths for this. This
 | 
						|
    makes it possible for apps to request > 8 channels from the
 | 
						|
    alsa plugin (ardour).
 | 
						|
  * Port, Node and Link will now also emit an error on the
 | 
						|
    resources in addition to updating the error in the info. This
 | 
						|
    would make it easier to track negotiation errors in the session
 | 
						|
    manager later.
 | 
						|
  * many small fixes and cleanups.
 | 
						|
  * Fix compatibility:
 | 
						|
	+ DOSBox: fix crash because of double free in pw_stream
 | 
						|
 | 
						|
- Session manager improvements
 | 
						|
  * The session manager will now try to configure the client to
 | 
						|
    the channel configuration of the sink/source. It will only
 | 
						|
    do this for downmixing, never for upmixing and also never
 | 
						|
    when the client has the dont-remix property set. It will
 | 
						|
    also renegotiate the channel layout when moving a stream to
 | 
						|
    a new sink/source.
 | 
						|
  * Configuration state is now saved in XDG_CONFIG_HOME.
 | 
						|
    Previously it was saved in $HOME/.pipewire-media-session/
 | 
						|
    You can migrate the state by moving the files to
 | 
						|
    $XDG_CONFIG_HOME/pipewire-media-session (or
 | 
						|
    $HOME/.config/pipewire-media-session as a fallback when
 | 
						|
    XDG_CONFIG_HOME is not set).
 | 
						|
 | 
						|
- Device support
 | 
						|
  * Bluetooth sources and sinks should work better now.
 | 
						|
  * There is now also a new bluetooth backend using hsphfpd.
 | 
						|
  * fix the ALSA UCM Off profile for alsa pcm devices
 | 
						|
  * improve ALSA port and profile switching. The ACP device will
 | 
						|
    now switch to the best port and profile when availability
 | 
						|
    changes.
 | 
						|
 | 
						|
- PulseAudio layer improvements
 | 
						|
  * Implement some more callbacks. The pulse layer will now also
 | 
						|
    notify applications of stream moved, started and latency
 | 
						|
    changes.
 | 
						|
  * Fix error code when an object was not found. We now return
 | 
						|
    PA_ERR_NOENTITY instead of PA_ERR_INVALID.
 | 
						|
  * Add some support for loading new null sinks. Applications such
 | 
						|
    as pulseeffects use this. Note that pulseeffects does not yet
 | 
						|
    work reliably but can start now.
 | 
						|
  * Improve handling of profile and port updates, it should work
 | 
						|
    much more reliable now. Apps should now also again receive
 | 
						|
    volume updates from sinks/sources.
 | 
						|
  * Fix compatibility:
 | 
						|
	+ openal-soft 1.20
 | 
						|
	+ pavucontrol (checks PA_ERR_NOENTITY)
 | 
						|
 | 
						|
- JACK layer improvements
 | 
						|
  * improve default source and sink handling. It was not updated
 | 
						|
    correctly in all cases.
 | 
						|
  * add samplerate and period to the pw-jack wrapper to easily
 | 
						|
    configure the desired samplerate and period for the app.
 | 
						|
 | 
						|
- ALSA plugin improvements
 | 
						|
  * Add a mixer entry in the alsa config file.
 | 
						|
  * Implement support for planar types, rework the processing
 | 
						|
    function to make it more robust.
 | 
						|
  * refuse to load the alsa plugin when linked against 0.2. This
 | 
						|
    catches some old apps linked against 0.2 that want to use the
 | 
						|
    alsa plugin.
 | 
						|
  * Fix compatibility:
 | 
						|
	+ linphone (ALSA SIGFPE when _status() is called
 | 
						|
	  before _prepare()).
 | 
						|
 | 
						|
PipeWire 0.3.10
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Many improvements to the pulse layer.
 | 
						|
  * GStreamer pulsesink element now works.
 | 
						|
  * Fixes some segfaults.
 | 
						|
  * Enable rtkit for client threads.
 | 
						|
  * fixes capture of monitor stream by name
 | 
						|
  * implement some more extensions, this makes paman
 | 
						|
    work and removes some warnings.
 | 
						|
 | 
						|
- Many improvements to the GStreamer elements
 | 
						|
  * negotiation rework, avoid calling GStreamer methods from
 | 
						|
    the PipeWire callbacks because they might block and cause
 | 
						|
    deadlocks.
 | 
						|
  * Add support for non-string property values.
 | 
						|
  * improve stability after buffer and format
 | 
						|
    renegotiation.
 | 
						|
  * Rework the device provider.
 | 
						|
  * pipewiresink can now provide a stream that can
 | 
						|
    be consumed by apps like cheese.
 | 
						|
 | 
						|
- Many improvements to the JACK layer:
 | 
						|
  * Rework the buffer_size callbacks. Make sure we call
 | 
						|
    the callback from a 'safe' thread and that we don't
 | 
						|
    call the process callback while the application is
 | 
						|
    handling the callback. This improves stability in
 | 
						|
    apps like Carla when PipeWire dynamically changes
 | 
						|
    the buffer size.
 | 
						|
  * Improve compatibility with apps that call
 | 
						|
    get_buffer_frames() with a 0 size (calfjackrack)
 | 
						|
  * JACK can now create nodes that can be set as a
 | 
						|
    sink/source in PulseAudio/ALSA apps (you can make an
 | 
						|
    effects rack and set that as default sink for
 | 
						|
    apps).
 | 
						|
 | 
						|
- Added a group id property for nodes. This makes it
 | 
						|
  possible to schedule nodes with the same driver even
 | 
						|
  when they are otherwise not linked together. To make
 | 
						|
  this work well a new flag needed to be added to nodes
 | 
						|
  to signal when they are ready for processing.
 | 
						|
 | 
						|
  Together with the GStreamer fixes, this makes things
 | 
						|
  like:
 | 
						|
 | 
						|
   gst-launch-1.0 -v pipewiresrc path=51 stream-properties="props,node.group=1" !
 | 
						|
         audio/x-raw ! pipewiresink stream-properties="props,node.group=1"
 | 
						|
 | 
						|
  work as expected with PipeWire managing the resampling
 | 
						|
  to keep the clocks of the devices in sync.
 | 
						|
 | 
						|
  This can later also be used to force devices to be grouped
 | 
						|
  together to create a JACK-like scheduling group.
 | 
						|
 | 
						|
- Streams and filter now use PIPEWIRE_NODE and
 | 
						|
  PIPEWIRE_LATENCY env variables as fallback.
 | 
						|
 | 
						|
- ACP add per device port list. This makes UCM devices
 | 
						|
  expose the right ports.
 | 
						|
 | 
						|
- Fix some segfaults in ACP and UCM.
 | 
						|
 | 
						|
- make pw-cat use the metadata to find default devices.
 | 
						|
 | 
						|
- The media session can now save and load audio device
 | 
						|
  Profiles and Routes (volumes), stream volumes and
 | 
						|
  the default sink and sources.
 | 
						|
 | 
						|
PipeWire 0.3.9
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Fix bad audio in chrome
 | 
						|
 | 
						|
- Remove some errors that are not real errors.
 | 
						|
 | 
						|
- Fix 100% cpu when disconnecting devices.
 | 
						|
 | 
						|
- Improve pulseaudio introspection of formats
 | 
						|
 | 
						|
- Fix JACK metadata handling, carla can now monitor the
 | 
						|
  port it creates and insert midi.
 | 
						|
 | 
						|
- Add a new permission bit (M) that is needed to be able
 | 
						|
  to configure metadata on an object. Improve security of
 | 
						|
  metadata some more, only allow metadata on objects that
 | 
						|
  are visible to the client setting the metadata.
 | 
						|
 | 
						|
- Add support for videocrop in the GStreamer elements.
 | 
						|
 | 
						|
- Improve handling of the runtime directory for the
 | 
						|
  server sockets. Add some reasonable fallback when
 | 
						|
  XDG_RUNTIME_DIR is not set, as suggested in the spec.
 | 
						|
 | 
						|
- Improve ALSA device names from ACP.
 | 
						|
 | 
						|
- Fix various crasher bugs. One in the pulse layer, one in
 | 
						|
  the session manager.
 | 
						|
 | 
						|
- Make alsa plugin respect the PIPEWIRE_REMOTE env variable.
 | 
						|
 | 
						|
- Various compile fixes.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.8
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Fix an embarrassing crasher in the JACK layer when
 | 
						|
  metadata keys were removed.
 | 
						|
 | 
						|
- Make it possible to add properties to jack clients with
 | 
						|
  a PIPEWIRE_PROPS env variable. This can be used to make
 | 
						|
  JACK nodes look like a device (like an effects rack).
 | 
						|
 | 
						|
- Improvements in the session manager in how it links
 | 
						|
  ports. Now it will try to link matching channels first
 | 
						|
  and be more intelligent otherwise. The session manager
 | 
						|
  will also configure the stream to the device port
 | 
						|
  configuration when needed.
 | 
						|
 | 
						|
- Add ofono backend for Bluetooth HeadSet support.
 | 
						|
 | 
						|
- Improve default source and sink handling. They are now
 | 
						|
  stored with their id, instead of name, in the metadata.
 | 
						|
  This makes it work better with JACK because of JACK's
 | 
						|
  limited name length.
 | 
						|
 | 
						|
- Improve environment variables to make it possible to
 | 
						|
  create and connect to servers other than "pipewire-0".
 | 
						|
  Implement this in pulseaudio, JACK and alsa layers.
 | 
						|
 | 
						|
- Add an alsa mixer plugin so that alsamixer works with
 | 
						|
  PipeWire. It will configure the default source/sink
 | 
						|
  volumes.
 | 
						|
 | 
						|
- Fix capture devices. There was something wrong with how
 | 
						|
  the resampler was used that caused corruption in the
 | 
						|
  signal when the resampler was active.
 | 
						|
 | 
						|
- We now ship alsa card paths, profile-sets configuration
 | 
						|
  files and udev rules so that we don't have to rely on
 | 
						|
  the pulseaudio ones.
 | 
						|
 | 
						|
- Many build and stability fixes.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.7
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Improved PulseAudio compatibility. The alsa card profile
 | 
						|
  code was reused from PulseAudio. Devices now support
 | 
						|
  all profiles, ports, jack detection, UCM and hardware
 | 
						|
  mixers that PulseAudio implements. There should not
 | 
						|
  be (almost) any difference between PipeWire and PulseAudio
 | 
						|
  in how it presents and manages devices.
 | 
						|
  Other missing API pieces such as the default sink/source
 | 
						|
  and move_stream are implemented now.  At this point
 | 
						|
  it should be possible to replace PulseAudio with the
 | 
						|
  compatibility layer for those who want to try.
 | 
						|
 | 
						|
- Many fixes and improvements to the GStreamer elements.
 | 
						|
  pipewiresrc now has the ability to periodically resend
 | 
						|
  the last frame. This makes it possible for use-cases like
 | 
						|
  screensharing to only update the screen on changes while
 | 
						|
  still keeping the client side encoder busy. PipeWire
 | 
						|
  elements can now also share a connection between them.
 | 
						|
 | 
						|
- Improvements to the bluetooth nodes. Dynamically adding
 | 
						|
  and removing devices should work much smoother now. Many
 | 
						|
  fixes and improvements to a2dp and sco nodes.
 | 
						|
 | 
						|
- Reduced memory usage by using less pre-allocated memory
 | 
						|
  where possible. JACK clients are especially using less
 | 
						|
  memory.
 | 
						|
 | 
						|
- Support for passive links is added again. These are links
 | 
						|
  that don't cause the associated driver to become active.
 | 
						|
  This makes it possible to have blocks of effects+sinks go
 | 
						|
  to suspend as a group when not in use.
 | 
						|
 | 
						|
- Both consumers and producers can now ask to renegotiate
 | 
						|
  the format. This required some cleanups and improvements
 | 
						|
  to how links and node states were handled. More work is
 | 
						|
  needed to implement more use cases.
 | 
						|
 | 
						|
- Important fixes to how memory is shared with clients. Memory
 | 
						|
  was not correctly freed in all cases, which would result
 | 
						|
  in reuse of the wrong memory.
 | 
						|
 | 
						|
- Support for planar formats for audio and video was added.
 | 
						|
 | 
						|
- Improved error handling in the session manager.
 | 
						|
 | 
						|
- Metadata is now used to manage default audio source and
 | 
						|
  sink devices. The session manager will try to link streams
 | 
						|
  to the default device. Changing the default device will
 | 
						|
  move streams to the new device. PulseAudio and JACK layers
 | 
						|
  respect the default source/sinks.
 | 
						|
 | 
						|
- Metadata is used to tag the desired output device for
 | 
						|
  a stream and the session manager will move streams when
 | 
						|
  the metadata changes. The PulseAudio layer uses this to
 | 
						|
  implement the move_stream feature.
 | 
						|
 | 
						|
- Many fixes to the security modules. The session manager now
 | 
						|
  has a flatpak module that grants permissions to flatpak
 | 
						|
  apps. The PulseAudio layer now respects the permissions of
 | 
						|
  objects. Security related properties are made read-only
 | 
						|
  now. Different access modules can now coexist.
 | 
						|
 | 
						|
- The portal module has been split up in 2 parts:
 | 
						|
   1) a part living in the daemon that monitors the portal
 | 
						|
      dbus owner and tags all clients from this PID. This
 | 
						|
      part has to run in the daemon in order to securely
 | 
						|
      tag the clients.
 | 
						|
   2) a part in the session manager that uses the permission
 | 
						|
      store to manage the permissions of portal managed
 | 
						|
      clients.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.6
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Extensive memory leak fixing and stress testing was done.
 | 
						|
  A big leak in screen sharing with DMA-BUF was fixed.
 | 
						|
- Compile fixes
 | 
						|
- Stability improvements in jack and pulseaudio layers.
 | 
						|
- Added the old portal module to make the Camera portal
 | 
						|
  work again. This will be moved to the session manager in
 | 
						|
  future versions.
 | 
						|
- Improvements to the GStreamer source and sink shutdown.
 | 
						|
- Fix compatibility with v2 clients again when negotiating
 | 
						|
  buffers.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.5
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Compiler fixes
 | 
						|
- Add pw-midiplay and pw-midirecord aliases
 | 
						|
- Add pw-mididump tool
 | 
						|
- Add pw-metadata tool to inspect, add and remove metadata
 | 
						|
  for objects.
 | 
						|
- Docs updates, man pages
 | 
						|
- install alsa config files
 | 
						|
- Fix linked sink/source in pulseaudio
 | 
						|
- ratelimit graph processing warnings
 | 
						|
- improve buffer handling in GStreamer elements
 | 
						|
- Fix power usage by removing the queue for the alsa
 | 
						|
  sequencer system announce messages.
 | 
						|
- Fix metadata clear() method dispatch.
 | 
						|
- Improve parameter enumeration, make it possible to detect
 | 
						|
  missing parameters vs no-compatible parameters so that we
 | 
						|
  can use defaults in the first case and error in the second
 | 
						|
  case.
 | 
						|
- Fix cleanup of proxy objects. Stability improvements on
 | 
						|
  plug/unplug in session manager.
 | 
						|
- Make it possible to set log level from config file
 | 
						|
- improve debug of param negotiation errors. Log the
 | 
						|
  parameters to stderr/journal.
 | 
						|
- Make it possible to configure global logger
 | 
						|
  implementation.
 | 
						|
- Fix NEON detection
 | 
						|
- JACK and PulseAudio compatibility improvements
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.4
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- A quick update with some important stability fixes.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.3
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- NEON optimizations for audio conversion (32 and 64 bits)
 | 
						|
- rework of session manager implementation
 | 
						|
- Add option to disable modules in the session manager
 | 
						|
- Release midi hardware devices when suspended
 | 
						|
- various build fixes
 | 
						|
- Clean up options of various utils
 | 
						|
- Stability improvements
 | 
						|
- Mayor improvements in pulseaudio emulation. Improved
 | 
						|
  timings and compatibility.
 | 
						|
- Implementation of drain and flush in pulse and alsa
 | 
						|
  emulation.
 | 
						|
- Implement poll on file descriptors.
 | 
						|
- Improvement of metadata for jack emulation.
 | 
						|
- Fix memory and thread problems in jack emulation.
 | 
						|
- Simplification of state changes. Should make more use
 | 
						|
  cases work in the jack emulation.
 | 
						|
- Improvements in the gstreamer elements. Removal of
 | 
						|
  extra internal queue. pipewiresink can now be used to
 | 
						|
  play audio.
 | 
						|
- Add pw-jack and pw-pulse scripts to run pulseaudio and
 | 
						|
  jack applications with the right library path.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.2
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- build fixes
 | 
						|
- Added support for data type negotiation. This makes it
 | 
						|
  possible for a client to say that it can handle DMABuf
 | 
						|
  and MemFd and then let the server select a compatible
 | 
						|
  format.
 | 
						|
- Handle errors when enumerating parameters better.
 | 
						|
- Add support for rate, format, channels and period_bytes
 | 
						|
  to the alsa config file to restrict what alsa apps can
 | 
						|
  negotiate.
 | 
						|
- Fix JACK midi output.
 | 
						|
- Optimizations in common audio format conversions using
 | 
						|
  AVX2. Small optimizations to plugins.
 | 
						|
- Change the vulkan compute example to an MIT licensed
 | 
						|
  shader.
 | 
						|
- Remove some hardcoded defaults in the audio and video
 | 
						|
  processing and use the values from the processing
 | 
						|
  context. This also fixes the vulkan example.
 | 
						|
- Correct the documentation and defaults in the daemon
 | 
						|
  config file.
 | 
						|
- Fix alsa and v4l2 buffer recycle. A paused client could
 | 
						|
  cause the server to leak all buffers.
 | 
						|
- Remove some warnings that should be ignored.
 | 
						|
- Fix a crash in the bluez5 plugins.
 | 
						|
- Try to select higher quality formats first when
 | 
						|
  negotiating a format with an audio device.
 | 
						|
- Fix an infinite loop in udev detection in some cases.
 | 
						|
- Add non-interactive mode to pw-cli. You can now just
 | 
						|
  do "pw-cli ls Port" to get a listing of all ports.
 | 
						|
  pw-cli will now also connect to the default server by
 | 
						|
  default and has options to select a different server.
 | 
						|
- Allow the server to go up to the maximum quantum (8192
 | 
						|
  samples or ~=180ms) if a client explicitly wants this.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.1
 | 
						|
 | 
						|
This is a bugfix release that is API and ABI compatible
 | 
						|
with previous 0.3.x releases.
 | 
						|
 | 
						|
- Don't load the rtkit module by default. It can cause a
 | 
						|
  sigkill, which is not desirable for mutter, for example.
 | 
						|
  Only enable this for the jack library for now.
 | 
						|
- Don't use pthread cancel by default because it uses a
 | 
						|
  signal that might crash some apps. Only use it for
 | 
						|
  the jack library because jack clients really expect this.
 | 
						|
- Build fixes for -Werror=suggest-attribute=format
 | 
						|
- improve error messages, don't report harmless errors and
 | 
						|
  warnings. Try to send error messages to the proxy that
 | 
						|
  started the operation or is the owner of the object.
 | 
						|
- pw-cat: midi improvement, add midi recording and dump
 | 
						|
  in verbose mode
 | 
						|
- fix properties when loading spa-nodes from the config
 | 
						|
- Fix and update some examples
 | 
						|
- jack: check arguments and don't crash when invalid
 | 
						|
- Fix buffer memory upload.
 | 
						|
- jack: fix compatibility with zrythm. Fix timemaster
 | 
						|
  install, improve sample_rate callback. Fix reposition
 | 
						|
  handling.
 | 
						|
- fix crash in port after buffer negotiation error.
 | 
						|
- add support for control ports in pw_filter
 | 
						|
- fix cleanup of the metadata module
 | 
						|
- improve param enumeration.
 | 
						|
- Clear stream buffers when the format is cleared.
 | 
						|
- Add create-object command in the config file to create
 | 
						|
  object from a factory.
 | 
						|
- Fix crash after the driver was not removed from unassigned
 | 
						|
  nodes. Also properly pause inactive nodes.
 | 
						|
- Use "true" and "false" in properties when we are talking
 | 
						|
  about a boolean.
 | 
						|
- pulseaudio: improve compatibility
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.3.0
 | 
						|
 | 
						|
The 0.3 release is a major milestone in the development of
 | 
						|
PipeWire. It features a complete redesign of the scheduling
 | 
						|
mechanisms that make it possible to run a JACK compatibility
 | 
						|
layer with comparable performance to JACK2.
 | 
						|
 | 
						|
The API has been reworked and is declared stable now. All
 | 
						|
development files and runtime paths are versioned so that
 | 
						|
future incompatible changes can be done without breaking
 | 
						|
existing applications.
 | 
						|
 | 
						|
PipeWire 0.3 also includes a (now mandatory) session manager
 | 
						|
that populates and controls the PipeWire graph. This example
 | 
						|
session manager is very simple and not configurable. It is
 | 
						|
expected that future version will either switch to a more
 | 
						|
flexible session manager (like WirePlumber) or improve the
 | 
						|
configuration options of the example session manager.
 | 
						|
 | 
						|
PipeWire 0.3 includes both PulseAudio, JACK and ALSA
 | 
						|
compatibility libraries that are known to support a wide range
 | 
						|
of applications. The ALSA library is pretty complete at this
 | 
						|
point. The JACK and mostly the PulseAudio compatibility
 | 
						|
libraries need more work. See the Wiki pages for the current
 | 
						|
compatibility problems. We do not yet encourage people to
 | 
						|
switch away from their existing audio solutions (PulseAudio
 | 
						|
or JACK) but we would love to hear from people who try it
 | 
						|
anyways. Future versions will mostly focus on improving
 | 
						|
compatibility further to make PipeWire a drop-in replacement.
 | 
						|
 | 
						|
PipeWire comes with some GStreamer plugins to consume and
 | 
						|
produce data for PipeWire. The consumer (pipewiresrc) is
 | 
						|
working well in most cases. The sink (pipewiresink) is known
 | 
						|
to be somewhat problematic for now.
 | 
						|
 | 
						|
PipeWire 0.2.97
 | 
						|
 | 
						|
Eighth pre-release for upcoming 0.3:
 | 
						|
 | 
						|
- Build fixes
 | 
						|
- pw-cat improvement: Fix remote name, add midi support
 | 
						|
- add device subscribe params for completeness
 | 
						|
- jack and pulseaudio compatibility fixes
 | 
						|
- Fix a bug in resampler, add quality option, tweaked quality
 | 
						|
  settings, tested now against https://src.infinitewave.ca/
 | 
						|
  testsignals and submitted results for publication.
 | 
						|
- Fix awkwardness in buffer negotiations, the default number of
 | 
						|
  buffers was 4 and jack could only handle 2, causing
 | 
						|
  corruption. Also implement negotiation of Step ranges.
 | 
						|
- Fix device reservation to work together with pulseaudio,
 | 
						|
  previously we would block pulseaudio.
 | 
						|
 | 
						|
PipeWire 0.2.96
 | 
						|
 | 
						|
Seventh pre-release for upcoming 0.3:
 | 
						|
 | 
						|
- jack: improve compatibility
 | 
						|
- Fix unit test
 | 
						|
- Fix license of jack and alsa libs
 | 
						|
- Make start/stop more threadsafe
 | 
						|
- Fix rt-kit again, add params to configure things, increase default
 | 
						|
  soft/hard limits to avoid being killed.
 | 
						|
- version 0 compatibility improvements, tested with firefox, cheese,
 | 
						|
  GStreamer and chrome using compat layers.
 | 
						|
- Fix timing for gstreamer source
 | 
						|
- Require libspa in pkg-config file
 | 
						|
- Limit buffers to 16 to support old clients
 | 
						|
 | 
						|
PipeWire 0.2.95
 | 
						|
 | 
						|
Sixth pre-release for upcoming 0.3:
 | 
						|
 | 
						|
- Fix tests for big endian some more
 | 
						|
- Improve v2 compatibility mode: improve type negotiation and
 | 
						|
  update_permissions
 | 
						|
- Workaround for firefox screen sharing
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.2.94
 | 
						|
 | 
						|
Fifth pre-release for upcoming 0.3:
 | 
						|
 | 
						|
- Fix man page names
 | 
						|
- Fix jack set_sync_timeout
 | 
						|
- Improve JACK compatibility with apps that cache buffer pointers.
 | 
						|
- Improve mlock failure warning message, add property to configure
 | 
						|
  if mlock should be used.
 | 
						|
- Improve OBJECT_PATH in alsa objects
 | 
						|
- Install in versioned directory
 | 
						|
- Add pw-profiler tool
 | 
						|
- Improve pulseaudio compatibility wrt pa_operations
 | 
						|
- Thread safety fixes in remote nodes when activating/deactivating
 | 
						|
- Improve JACK names on duplicates
 | 
						|
- Add option to ignore failure when loading modules
 | 
						|
 | 
						|
PipeWire 0.2.93
 | 
						|
 | 
						|
Fourth pre-release for upcoming 0.3:
 | 
						|
 | 
						|
- Fix unit tests on 32 bits
 | 
						|
- Append -pw version to pulse and jack libs. This way we can install
 | 
						|
  it next to the real libraries and use a symlink to enable it.
 | 
						|
- Improve jack support by killing threads with pthread_cancel. This
 | 
						|
  then also remove the eventfd from the data-loop, making it
 | 
						|
  maybe a little faster.
 | 
						|
- Fix jack_client_close() compatibility
 | 
						|
- Fix some segfaults in the session manager
 | 
						|
- Improve debug of protocol messages
 | 
						|
- Add examples options
 | 
						|
- Don't fail when alsa is not found
 | 
						|
- Fix some compiler warnings with a new spa_aprintf() helper.
 | 
						|
- Add pw-cat, the simple audio playback/record tool
 | 
						|
- Rename pipewire tools to pw- prefix
 | 
						|
- Add improve pw-cli object dump feature
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.2.92
 | 
						|
 | 
						|
Third pre-release for upcoming 0.3:
 | 
						|
 | 
						|
- Improve old version check some more
 | 
						|
- Fix unit tests on little/big endian
 | 
						|
- Fix compilation when CPU has no optimisations
 | 
						|
- Install jack and pulse libraries
 | 
						|
- Handle -EACCESS in flatpack access module
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.2.91
 | 
						|
 | 
						|
It is mostly a bugfix release to make the new version install and
 | 
						|
run correctly in distros.
 | 
						|
 | 
						|
- Install session manager, fix path to find the session manager
 | 
						|
- Fix alsa buffer reuse
 | 
						|
- Small fixes for crasher bugs
 | 
						|
- Implement pw_core_set_paused() to suspend/resume even
 | 
						|
  processing. This can be used when using multiple connections
 | 
						|
  to a daemon and one needs to pause one connection until the
 | 
						|
  other one completes an action. Used by session managers.
 | 
						|
- Improve old version check
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.2.90
 | 
						|
 | 
						|
This is the first pre-release of the 0.3 version. It consists of a
 | 
						|
major rewrite and is not API or ABI compatible with the 0.2
 | 
						|
branch.
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.2.7
 | 
						|
 | 
						|
This is mostly a bugfix release and is API/ABI compatible with
 | 
						|
previous 0.2 versions.
 | 
						|
 | 
						|
Work is ongoing in the work branch that features a completely new
 | 
						|
scheduling method that will enable audio support. Some of these
 | 
						|
API changes are backported in this branch.
 | 
						|
 | 
						|
- Add support for alsa-lib 1.1.9 which changed the include path
 | 
						|
- Improve error checking and reporting in the protocol
 | 
						|
- deviceprovider: fix probing without starting
 | 
						|
- add sentinel to some functions
 | 
						|
- compiler fixes for musl
 | 
						|
- Revert object tree permission checks that broke things, this is
 | 
						|
  probably not a good idea (and the tree of objects is going to
 | 
						|
  be removed later)
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.2.6
 | 
						|
 | 
						|
- Improve error checking for threads
 | 
						|
- Fix some memory and fd leaks
 | 
						|
- Fix compilation with C++ compilers and clang
 | 
						|
- DISABLE_RTKIT should now not try to use dbus at all
 | 
						|
- Camera Portal fixes:
 | 
						|
	- add Camera media.role
 | 
						|
	- Rename module-flatpak to module-portal
 | 
						|
	- Use the portal permissions store for camera checks
 | 
						|
- Actually use the passed fd in pipewiresrc
 | 
						|
- Make properties with "pipewire." prefix read-only
 | 
						|
- Add security label to client object
 | 
						|
- Enforce link permissions
 | 
						|
- Permissions of objects are now combined with parent permissions
 | 
						|
- Remove libv4l2 dependency, it is not used
 | 
						|
- Improve format negotiation in autolink #146
 | 
						|
- Try to avoid list corruption with event emission #143
 | 
						|
- Fix destroy of client-node memory corruption
 | 
						|
- Various small improvements
 | 
						|
 | 
						|
PipeWire 0.2.5
 | 
						|
 | 
						|
- build fixes for systemd
 | 
						|
- Add cursor and bitmap metadata. This can be used to send a cursor
 | 
						|
  sprite with the video stream.
 | 
						|
- permissions were set too strict for non-flatpak clients
 | 
						|
- Fix crash in loop caused by thread unsafe hook emission
 | 
						|
- Add more error checking for thread-loop
 | 
						|
- Small cleanups and bugfixes
 | 
						|
 | 
						|
PipeWire 0.2.4
 | 
						|
 | 
						|
- Install man pages in right directory
 | 
						|
- Add systemd socket activation
 | 
						|
- Various memory leak and corruption fixes in properties, dbus and
 | 
						|
  buffer mmapped memory.
 | 
						|
- Fix v4l2 crash on unplug
 | 
						|
- improve stream cleanup
 | 
						|
 | 
						|
PipeWire 0.2.3
 | 
						|
 | 
						|
- Fix deviceprovider caps introspection
 | 
						|
- Refcounting fixes in pipewiresrc
 | 
						|
- Remove clock interpolation from stream
 | 
						|
- Improve clock in gstreamer elements
 | 
						|
- Remove spalib
 | 
						|
- Fix crash with pw_map
 | 
						|
- Add version number to hook list
 | 
						|
- Improve driver mode in gstreamer elements
 | 
						|
- add daemon options
 | 
						|
- add man pages
 | 
						|
 | 
						|
PipeWire 0.2.2
 | 
						|
 | 
						|
- Increment API version and .so version
 | 
						|
 | 
						|
PipeWire 0.2.1
 | 
						|
 | 
						|
- Various fixes to memory handling
 | 
						|
- Fixes for shutdown
 | 
						|
- v4l2 fix enumeration of frame intervals
 | 
						|
- Make the daemon stop when the setup commands fail
 | 
						|
- Improve safety of hooks
 | 
						|
- Update stream API to more future proof version
 | 
						|
- Add more options to stream API such as scheduling in the
 | 
						|
  main thread and automatic mapping of buffers
 | 
						|
- Add version file and macros to check compile time and
 | 
						|
  runtime versions of pipewire
 | 
						|
- Future proof some structs
 | 
						|
 | 
						|
 | 
						|
PipeWire 0.1.9
 | 
						|
 | 
						|
- Various build fixes
 | 
						|
- Do more permission checks
 | 
						|
- Add support for doing async connections. This can be used to
 | 
						|
  make connections through the portal later.
 | 
						|
- Fix device creation from the GStreamer device monitor
 | 
						|
- v4l2 experiment with controls
 | 
						|
- move rtkit to a module to avoid dbus dependency
 | 
						|
- use dmabuf allocator in gstreamer elements
 | 
						|
- Add DSP module for pro audio cases, remove jack module. The
 | 
						|
  idea is to make a replacement jack client library that talks
 | 
						|
  pipewire directly instead of trying to emulate a jack server.
 | 
						|
- Various memory handling improvements
 |