mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-10-29 05:40:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			1463 lines
		
	
	
	
		
			54 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			1463 lines
		
	
	
	
		
			54 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 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.
 | |
| 
 | |
| 
 | |
| 
 | |
| Older versions:
 | |
| 
 | |
| 
 | |
| 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 prefered 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 catergory 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 perdiod 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.
 | |
| 
 | |
| 
 | |
| Older versions:
 | |
| 
 | |
| 
 | |
| 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 emmission #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 mmaped 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
 | 
