2020-09-28 14:08:10 +00:00
|
|
|
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:
|
|
|
|
|
|
|
|
|
2020-09-18 10:02:08 +00:00
|
|
|
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.
|
|
|
|
|
|
|
|
|
2020-09-10 11:13:36 +00:00
|
|
|
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()).
|
|
|
|
|
2020-08-18 11:19:12 +00:00
|
|
|
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.
|
|
|
|
|
2020-08-04 12:30:27 +00:00
|
|
|
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.
|
|
|
|
|
|
|
|
|
2020-07-28 13:20:04 +00:00
|
|
|
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.
|
|
|
|
|
|
|
|
|
2020-07-21 10:06:39 +00:00
|
|
|
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:
|
|
|
|
|
|
|
|
|
2020-06-10 09:53:32 +00:00
|
|
|
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.
|
|
|
|
|
|
|
|
|
2020-05-11 11:35:32 +00:00
|
|
|
PipeWire 0.3.5
|
2020-04-30 15:55:35 +00:00
|
|
|
|
|
|
|
This is a bugfix release that is API and ABI compatible
|
|
|
|
with previous 0.3.x releases.
|
|
|
|
|
2020-05-11 11:35:32 +00:00
|
|
|
- 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
|
2020-04-30 15:55:35 +00:00
|
|
|
|
|
|
|
|
2020-05-11 11:35:32 +00:00
|
|
|
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.
|
|
|
|
|
|
|
|
|
2020-04-30 11:30:18 +00:00
|
|
|
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.
|
|
|
|
|
|
|
|
|
2020-03-26 11:34:54 +00:00
|
|
|
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.
|
|
|
|
|
|
|
|
|
2020-03-06 18:04:59 +00:00
|
|
|
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
|
|
|
|
|
|
|
|
|
2020-02-20 14:33:31 +00:00
|
|
|
PipeWire 0.3.0
|
|
|
|
|
2020-07-22 18:54:06 +00:00
|
|
|
The 0.3 release is a major milestone in the development of
|
2020-02-20 14:33:31 +00:00
|
|
|
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
|
2020-07-22 18:54:06 +00:00
|
|
|
development files and runtime paths are versioned so that
|
2020-02-20 14:33:31 +00:00
|
|
|
future incompatible changes can be done without breaking
|
2020-07-22 18:54:06 +00:00
|
|
|
existing applications.
|
2020-02-20 14:33:31 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2020-02-19 19:24:51 +00:00
|
|
|
PipeWire 0.2.97
|
|
|
|
|
2020-07-22 18:54:06 +00:00
|
|
|
Eighth pre-release for upcoming 0.3:
|
2020-02-19 19:24:51 +00:00
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
2020-02-11 15:06:27 +00:00
|
|
|
PipeWire 0.2.96
|
|
|
|
|
2020-07-22 18:54:06 +00:00
|
|
|
Seventh pre-release for upcoming 0.3:
|
2020-02-11 15:06:27 +00:00
|
|
|
|
|
|
|
- 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
|
|
|
|
|
2020-02-07 08:39:14 +00:00
|
|
|
PipeWire 0.2.95
|
2019-09-26 14:53:05 +00:00
|
|
|
|
2020-07-22 18:54:06 +00:00
|
|
|
Sixth pre-release for upcoming 0.3:
|
2019-09-26 14:53:05 +00:00
|
|
|
|
2020-02-07 08:39:14 +00:00
|
|
|
- Fix tests for big endian some more
|
|
|
|
- Improve v2 compatibility mode: improve type negotiation and
|
|
|
|
update_permissions
|
|
|
|
- Workaround for firefox screen sharing
|
2019-09-26 14:53:05 +00:00
|
|
|
|
|
|
|
|
2020-02-07 08:39:14 +00:00
|
|
|
PipeWire 0.2.94
|
|
|
|
|
2020-07-22 18:54:06 +00:00
|
|
|
Fifth pre-release for upcoming 0.3:
|
2020-02-07 08:39:14 +00:00
|
|
|
|
|
|
|
- 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
|
|
|
|
|
2020-07-22 18:54:06 +00:00
|
|
|
Fourth pre-release for upcoming 0.3:
|
2020-02-07 08:39:14 +00:00
|
|
|
|
|
|
|
- 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
|
|
|
|
|
2020-07-22 18:54:06 +00:00
|
|
|
Third pre-release for upcoming 0.3:
|
2020-02-07 08:39:14 +00:00
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
2019-09-26 14:53:05 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
2018-02-27 13:00:19 +00:00
|
|
|
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
|