mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			843 lines
		
	
	
	
		
			30 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			843 lines
		
	
	
	
		
			30 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
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.
 | 
						|
 | 
						|
 | 
						|
Older versions:
 | 
						|
 | 
						|
 | 
						|
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
 |