7679 lines
346 KiB
Plaintext
7679 lines
346 KiB
Plaintext
-------------------------------------------------------------------
|
||
Sun Sep 29 18:31:08 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 1.2.5:
|
||
+ Highlights
|
||
- Fix an fd mismatch in the protocol in some cases that could
|
||
lead to fd leaks and crashes.
|
||
- Fix a bug where the mixer was not updated after setting the
|
||
port, which would cause muted audio at boot or resume from
|
||
suspend.
|
||
- Fix a potential use-after-free in module-rt when stopping a
|
||
thread.
|
||
- Cached objects are now freed in the JACK API to avoid memory
|
||
leaks.
|
||
- Some more fixes and improvements.
|
||
+ PipeWire
|
||
- RequestProcess commands are now only sent after the node
|
||
completes the state change to RUNNING.
|
||
- More FreeBSD fixes.
|
||
- Handle ACTIVE links going to < PAUSED as well. This improves
|
||
renegotiation in some cases.
|
||
- Fix an fd mismatch in the protocol in some cases that could
|
||
lead to fd leaks and crashes.
|
||
+ Modules
|
||
- Many of the network modules can now also accept hostnames
|
||
instead of IP addresses.
|
||
- Fix a potential use-after-free in module-rt when stopping
|
||
the thread.
|
||
+ SPA
|
||
- Support for elogind was added.
|
||
- Some more errors are checked when converting JSON to POD.
|
||
- Fix a bug where the mixer was not updated after setting the
|
||
port, which would cause muted audio at boot or resume from
|
||
suspend.
|
||
+ JACK
|
||
- The BBT transport handling was improved. Some fields were
|
||
added to be able to handle the JACK semantics correctly.
|
||
- Buffers are now aligned according to the maximum CPU
|
||
alignment instead of the hardcoded 16 bytes alignment.
|
||
- Cached objects are now freed correctly.
|
||
+ Doc
|
||
- Some small doc updates.
|
||
- Don't try to enable apparmor support if without_apparmor is
|
||
defined (as in SLFO).
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Sep 20 09:25:31 UTC 2024 - Frederic Crozat <fcrozat@suse.com>
|
||
|
||
- Update to version 1.2.4:
|
||
+ Highlights:
|
||
- Avoid a crash in cleanup of globals.
|
||
- Use systemd-logind to scan for new devices in v4l2.
|
||
- Some more bugfixes and improvements.
|
||
+ PipeWire:
|
||
- Avoid a crash in cleanup of globals.
|
||
- Improve RequestProcess dispatch.
|
||
+ Tools:
|
||
- Improve float parsing.
|
||
+ SPA:
|
||
- Clear the ringbuffer when stopping in libcamera.
|
||
- Use systemd-logind to scan for new devices in v4l2.
|
||
- Queue dropped first buffer in v4l2.
|
||
- Unlink pcm devices when moving drivers to avoid broken pipe.
|
||
+ JACK:
|
||
- Emit buffer_size callback in jack_activate() to improve
|
||
compatibility with GStreamer.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 12 07:10:47 UTC 2024 - Thorsten Kukuk <kukuk@suse.com>
|
||
|
||
- Add %{_pam_secdistconfdir}/limits.d to filelist
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Aug 27 14:55:37 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Update to version 1.2.3:
|
||
+ Highlights:
|
||
- Implement freewheeling support in the FFADO driver. Also
|
||
improve buffersize and samplerate handling.
|
||
- Improve some locking on spa_loop. Remove a possible deadlock
|
||
when the queue was full.
|
||
- Allocate more space for the libcamera devices string to
|
||
properly deduplicate libcamera and v4l2 devices.
|
||
- Some more bugfixes and improvements.
|
||
+ PipeWire:
|
||
- Improve activation state changes and xrun detection some more
|
||
- Avoid a memory leak when a link in error is destroyed.
|
||
+ Modules:
|
||
- Improve samplerate and buffersize handling in FFADO driver so
|
||
that it is possible to force a rate and buffer size.
|
||
- Implement freewheeling support in the ffado driver.
|
||
- Always set the server side clock.quantum-limit on nodes. This
|
||
fixes a buffer size problem in Midi-bridge.
|
||
+ SPA:
|
||
- Improve some locking on spa_loop. Remove a possible deadlock
|
||
when the queue was full.
|
||
- Allocate more space for the libcamera devices string to
|
||
properly deduplicate libcamera and v4l2 devices.
|
||
- Fix a potential race when enumerating v4l2 udev devices.
|
||
+ Bluetooth: Improve compatibility with some devices (Soundcore
|
||
Motion 300).
|
||
+ Tools:
|
||
- pw-cli can now handle arbitrarily large input and params.
|
||
- Avoid some compiler warnings in pw-top.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Aug 8 08:31:49 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 1.2.2:
|
||
* Highlights
|
||
- Fix some more fallout of the async nodes rewrite. Fixes some
|
||
crackling, xruns and possibly also some crashes in some
|
||
cases.
|
||
- Fix freewheeling timeouts in case of xruns. This fixes ardour
|
||
export.
|
||
- Fix event mixdown in JACK. Fixes qsynth and possibly other
|
||
apps.
|
||
- Some more small fixes and improvements.
|
||
* PipeWire
|
||
- Add a new SPA_IO_CLOCK_FLAG_XRUN_RECOVER flag when the
|
||
process function is called because of xrun recovery.
|
||
- Properly stop nodes in all cases, this avoids spurious xruns
|
||
and scheduling errors. (#4122)
|
||
- Make sure async nodes receive an async link in all cases. Do
|
||
the processing of source output ports slightly differently to
|
||
make sure we don't cause latency for sources. (#4138)
|
||
(#4133)
|
||
- Fix some races when negotiating and starting nodes. (#4094)
|
||
- Actually include the config.h header to use malloc_trim() to
|
||
reduce memory usage in pulse-server.
|
||
* Modules
|
||
- Avoid unloading some modules on stream errors because it is
|
||
possible to recover from the error. (#4121)
|
||
- Fix a (harmless) warning in module-rtp because of comparing
|
||
samples and time. (#4095)
|
||
* SPA
|
||
- Let the freewheel driver detect xrun recovery and handle the
|
||
timeouts correctly. This fixes an issue with ardour export.
|
||
- Remove the HDMI/AC3 profiles. they turn out to fail on some
|
||
hardware with no way to detect this.
|
||
- Signal the eventfd when the loop is full to make sure the
|
||
other thread is woken up to process the queue.
|
||
* JACK
|
||
- Don't check timestamps when mixing down events. The
|
||
timestamps are only checked when writing new events with the
|
||
public API. This fixes an issue where qsynth would not
|
||
receive midi events anymore.
|
||
- Fix the jack_get_time() function, it was returning nano
|
||
instead of micro seconds.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Jul 14 20:25:15 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Update to version 1.2.1:
|
||
* Highlights
|
||
- Fix a regression in the node activation counters that would
|
||
break audio when using KODI.
|
||
- Fix a regression in ardour export because of mishandling of
|
||
sync groups.
|
||
- Fix a regression in KDE screen preview because of the new
|
||
async scheduling.
|
||
- Fix a regression in context.exec argument parsing that would
|
||
break some existing scripts.
|
||
- More small bug fixes and improvements.
|
||
* PipeWire
|
||
- Fix a regression in the node activation counters that would
|
||
break audio when using KODI. (#4087)
|
||
- Fix a regression in ardour export because of mishandling of
|
||
sync groups. (#4083)
|
||
- Fix a regression in KDE screen preview because of the new
|
||
async scheduling. Disable async for driver nodes. (#4092)
|
||
- Slightly improve node shutdown to cause less xruns.
|
||
- Fix a regression in context.exec argument parsing that would
|
||
break some existing scripts.
|
||
- Support custom thread create functions.
|
||
* Modules
|
||
- Improve snapcast address parsing. (#4093)
|
||
* SPA
|
||
- Fix multiple %f parsing in ACP for the new plug+a52 profiles.
|
||
- Improve v4l2 param generation. Improve recovery when
|
||
framesize or rates are unknown, support vivid. (#4063)
|
||
* JACK
|
||
- Use the custom thread create function to correctly let
|
||
module-rt kit manage threads so that we don't end up with
|
||
priorities on the wrong threads. (#4099)
|
||
* GStreamer
|
||
- Fix a crash when destroying a stream.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jun 28 06:11:18 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 1.2.0:
|
||
* This is the 1.2 release that is API and ABI compatible with
|
||
previous 1.1.x and 1.0.x releases.
|
||
* This release contains some of the bigger changes that happened
|
||
since the 1.0 release last year, including:
|
||
- Support for asynchronous processing has been implemented.
|
||
Nodes can choose (or be forced) to be scheduled
|
||
asynchronously. The graph will not wait for the output of the
|
||
node to continue processing but it will use the output of the
|
||
previous cycle (or silence) instead. This adds one cycle of
|
||
latency but it can avoid having some nodes blocking the
|
||
processing graph. Non realtime streams and filters now also
|
||
use this asynchronous processing instead of their own
|
||
slightly broken version.
|
||
- The concept of node.sync-group was added. This groups nodes
|
||
with overlapping sync-group together when one of them sets
|
||
the node.sync = true. This is now used to make sure all nodes
|
||
are scheduled together when JACK transport is started so that
|
||
they all see the same transport time.
|
||
- Config parsing errors are reported earlier and much better
|
||
with line and column numbers where the parsing started to
|
||
fail.
|
||
- Add support for mandatory metadata when negotiating buffer
|
||
parameters. This can be used to only negotiate extra buffer
|
||
planes when certain metadata is negotiated. One use case is
|
||
the explicit sync support that requires 2 extra fds for the
|
||
timelines.
|
||
- Explicit sync metadata and support was added.
|
||
- Support was added for making and using multiple data-loops
|
||
in the server and clients. Support for CPU affinity and
|
||
priorities was added to the data-loops as well.
|
||
- The log topic debug levels can now be changed at runtime with
|
||
metadata.
|
||
- The log levels in the pulse server can be dynamically changed
|
||
with a /core message.
|
||
- The UCM conflicting devices patches were merged.
|
||
- Add snapcast-discover module to stream to snapcast servers.
|
||
- Rework how peers are linked and the counters are updated.
|
||
Resume the peers when a node is unlinked and not yet
|
||
processed. This should cause less occasional dropouts in the
|
||
graph when reconnecting things.
|
||
- Many GStreamer element updates.
|
||
- Many more fixes and improvements.
|
||
* Highlights (since the previous 1.1.83 release)
|
||
- Small fixes here and there.
|
||
* PipeWire
|
||
- Compilation fixes after enabling -Werror=float-conversion
|
||
* Modules
|
||
- The module-rtp-sap now propagates the cleanup.sec property to
|
||
the rtp-source and the rtp-source now sets a property with
|
||
the receiving status.
|
||
- Fix for ROC 0.3, explicitly specify sender encoding. (#4070)
|
||
- Some fixes to the RAOP sink module, including a format fix
|
||
for 32 bit machines.
|
||
* Tools
|
||
- Fix pw-cli monitoring code.
|
||
* SPA
|
||
- Revert peer_enum_params again because it was not used and
|
||
flawed.
|
||
- Fix multichannel processing in webrtc AEC.
|
||
* GStreamer
|
||
- Logging improvements.
|
||
- Fix a race in the bufferpool activation.
|
||
* Bluetooth
|
||
- Improvements to BAP broadcast code parsing.
|
||
- Remove patch already included in 1.2.0:
|
||
* 0001-vulkan-fix-compilation.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jun 26 09:54:23 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 1.1.83:
|
||
* This is the third and hopefully the last 1.2 release candidate
|
||
that is API and ABI compatible with previous 1.0.x releases.
|
||
* Highlights
|
||
- Rework how peers are linked and the counters are updated.
|
||
Resume the peers when a node is unlinked and not yet
|
||
processed. This should cause less occasional dropouts in the
|
||
graph when reconnecting things.
|
||
- Improve xruns in module-ffado.
|
||
- Many GStreamer element updates.
|
||
- More fixes and improvements.
|
||
* PipeWire
|
||
- Rework how peers are linked and the counters are updated.
|
||
Resume the peers when a node is unlinked and not yet
|
||
processed. This should cause less dropouts in the graph when
|
||
reconnecting. (#4026)
|
||
- Improve debug of xruns.
|
||
- Evaluate node.rules and device.rules before loading the
|
||
plugin so that extra properties can be passed to the plugin
|
||
init function.
|
||
* Modules
|
||
- Improve timing reporting in module-ffado some more.
|
||
- Prealloc less memory in the profiler by default.
|
||
- Improve xrun handling in module-ffado.
|
||
* Tools
|
||
- Fix a crash in pw-link when a link fails.
|
||
- Fix pw-dump update for metadata. (#4053)
|
||
* SPA
|
||
- Improve handling of controls. (#4028)
|
||
- Fix the string size in v4l2 to hold the device and vendor id.
|
||
- Support meta_videotransform on buffers in v4l2. This can be
|
||
used to signal that the buffer was rotated for example.
|
||
- Add HDMI/AC3 profile to ALSA when supported.
|
||
- Make it possible to disable the webrtc dependency
|
||
* GStreamer
|
||
- Improve caps handling in the elements.
|
||
- Set buffer duration when we can.
|
||
- Post an element error when all the elements buffers are
|
||
removed. (#1980)
|
||
- Improve DMA_DRM caps selection.
|
||
- Some refactoring work.
|
||
- Improve state handling in the elements.
|
||
* JACK
|
||
- Improve how links are activated.
|
||
- Fix some races when freeing memory.
|
||
* Bluetooth
|
||
- Support multiple BIS in the broadcast source.
|
||
- Add patch recommended by upstream to fix compilation for vulkan:
|
||
* 0001-vulkan-fix-compilation.patch
|
||
|
||
- Update to version 1.1.82:
|
||
* This is the second 1.2 release candidate that is API and ABI
|
||
compatible with previous 1.0.x releases.
|
||
* Highlights
|
||
- Fix problem when moving nodes that could cause nodes to be
|
||
scheduled wrongly and cause errors. (#4017)
|
||
- Add snapcast-discover module to stream to snapcast servers.
|
||
- Work around wrong kernel provided MTU for USB controllers.
|
||
- Fix some spelling mistakes all over the codebase.
|
||
- More small fixes and improvements.
|
||
* PipeWire
|
||
- Remove the private cleanup.h header and use the public SPA
|
||
version.
|
||
- Fix problem when moving nodes that could cause nodes to be
|
||
scheduled wrongly and cause errors. (#4017)
|
||
* Modules
|
||
- Handle IPv6 in module-protocol-simple and support port
|
||
allocation.
|
||
- Add snapcast-discover module to stream to snapcast servers.
|
||
* Bluetooth
|
||
- Work around wrong kernel provided MTU for USB controllers.
|
||
|
||
- Update to version 1.1.81:
|
||
* This is the first 1.2 release candidate that is API and ABI
|
||
compatible with previous 1.0.x releases.
|
||
* Highlights
|
||
- Support for asynchronous processing has been implemented.
|
||
Nodes can choose (or be forced) to be scheduled
|
||
asynchronously. The graph will not wait for the output of the
|
||
node to continue processing but it will use the output of the
|
||
previous cycle (or silence) instead. This adds one cycle of
|
||
latency but it can avoid having some nodes blocking the
|
||
processing graph. Non realtime streams and filters now also
|
||
use this asynchronous processing instead of their own
|
||
slightly broken version.
|
||
- The concept of node.sync-group was added. This groups nodes
|
||
with overlapping sync-group together when one of them sets
|
||
the node.sync = true. This is now used to make sure all nodes
|
||
are scheduled together when JACK transport is started so that
|
||
they all see the same time.
|
||
- Config parsing errors are reported earlier and much better
|
||
with line and column numbers where the parsing started to
|
||
fail.
|
||
- Add support for mandatory metadata when negotiation buffer
|
||
parameters. This can be used to only negotiate extra buffer
|
||
planes when certain metadata is negotiated. One use case is
|
||
the explicit sync support that requires 2 extra fds for the
|
||
timelines.
|
||
- Support was added for making and using multiple data-loops in
|
||
the server and clients. Support for CPU affinity and
|
||
priorities was added to the data-loops as well.
|
||
- The log topic debug levels can now be changed at runtime with
|
||
metadata.
|
||
- The log levels in the pulse server can be dynamically changed
|
||
with a /core message.
|
||
- The UCM conflicting devices patches were merged.
|
||
* PipeWire
|
||
- snap support has been added.
|
||
- Implement async processing. (#3509)
|
||
- Support for explicit sync was added.
|
||
- Config parsing errors are reported earlier and much better.
|
||
- A -P option was added to provide extra properties to the
|
||
context. This can be used to enable some features that use
|
||
rules.
|
||
- properties.rules was added to enhance properties based on
|
||
some rules. This deprecates the vm.overrides.
|
||
- Support was added for security-context. This makes it
|
||
possible for a flatpak to request a socket with specific
|
||
properties from pipewire to mount in the flatpak. The session
|
||
manager can then assign permissions based on the connection
|
||
properties.
|
||
- Support for fixed arrays in pw_array was improved.
|
||
- Pipewire server and clients can now use multiple threads to
|
||
process the nodes in parallel.
|
||
- device.rules and node.rules were added to update device and
|
||
node properties based on rules.
|
||
- device.param and node.param can now be used to configure
|
||
params when devices and nodes are created.
|
||
- Memory will now try to use MFD_NOEXEC_SEAL.
|
||
- The driver id of a node is now placed in the properties.
|
||
- A potential race was fixed when adding and removing ports to
|
||
the scheduling lists.
|
||
* Modules
|
||
- Priorities for the FFADO threads can be configured now.
|
||
- The loopback module now has support for up and downmixing.
|
||
- Extra properties can now be configured per native-connection
|
||
socket.
|
||
- The pulse-tunnel can now automatically reconnect when the
|
||
connection is broken.
|
||
- The RTP module now supports the PTP management protocol.
|
||
- The RTP sender can now use a timer to send out multiple
|
||
packets per quantum.
|
||
- A new module was added for loading Parametric EQ.
|
||
- The simple-protocol module now has per stream configurable
|
||
properties and can also be used to interface with a snapcast
|
||
server.
|
||
- Support for local services was added to raop, rtp and pulse
|
||
avahi discoverers. Support for IPv6 on local services was
|
||
added to RAOP.
|
||
* SPA
|
||
- Support for reporting JSON parsing errors has been added.
|
||
- Some extra checks are added when iterating POD structures.
|
||
- Port and profiles can now be hidden from ALSA nodes with
|
||
api.acp.hidden-ports and api.acp.hidden-profiles properties.
|
||
- The UCM conflicting devices patches were merged.
|
||
- Profiles and Routes can now also be set by name.
|
||
- Hires timestamps are now used when possible in IRQ based
|
||
scheduling to get more accurate wakup times.
|
||
- udev can now be an optional dependency.
|
||
- audioadapter now has an option to automatically configure
|
||
its ports.
|
||
- Camera rotation was added to the libcamera node.
|
||
- invoke on loops can now be done from multiple threads at the
|
||
same time.
|
||
- Make sure we use CLOCK_MONOTONIC everywhere in the io_clock.
|
||
- Vulkan bit and convert filters were added.
|
||
- ALSA will now always read the HW ringbuffer pointer when
|
||
followers are not on the same card.
|
||
- Support for larger MIDI sysex messages was improved.
|
||
Configuration of the client input and output pool was added.
|
||
(#4005)
|
||
* Bluetooth
|
||
- Support Google OPUS codec.
|
||
- Support the LC3-SWB codec.
|
||
- Support the AAC-ELD codec.
|
||
- Broadcast source configuration support was added.
|
||
* pulseaudio-server
|
||
- The GSettings schemas are now optionally installed.
|
||
- Extensions were moved to the modules.
|
||
- The log level of the pulse server can dynamically be changed
|
||
with a core object message.
|
||
- snap access control was added to pulse-server.
|
||
- The old pacmd describe-module functionality is now
|
||
implemented with a core message
|
||
pipewire-pulse:describe-module.
|
||
- An option was added to disable module loading and unloading.
|
||
* JACK
|
||
- OSC messages can now also be placed in JACK MIDI and the
|
||
translation layer will detect and tag the right PipeWire
|
||
control message types.
|
||
- A jack.other-connect-mode was added to limit the connections
|
||
that an app can do to ports it doesn't own.
|
||
- The way the transport is started and how the nodes are
|
||
grouped together in the transport was improved using the new
|
||
sync groups. (#3850)
|
||
- Fix large MIDI messages handling. (#4005)
|
||
* ALSA
|
||
- Fix format renegotiation. (#3858)
|
||
- Handle period events better. (#3676)
|
||
- Improve handling of the eventfd wakeups.
|
||
* GStreamer
|
||
- The GStreamer elements can now negotiate and use DMABUF.
|
||
* Tools
|
||
- The T flag is used in pw-top when the transport is running.
|
||
- A new pw-container tool was added to start a new security
|
||
context and run an application in it.
|
||
- pw-dot handles properties with quotes better. Nodes are
|
||
grouped with the node.link-group.
|
||
- pw-link has a --wait option to wait for all links to be created.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jun 10 10:12:03 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Make sure the pipewire-libjack package doesn't completely
|
||
replace the original jack libraries unless the pipewire-jack
|
||
package which installs the ld.so.conf.d file is installed too
|
||
(boo#1222253).
|
||
|
||
-------------------------------------------------------------------
|
||
Sat May 25 13:28:01 UTC 2024 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 1.0.7:
|
||
* Highlights
|
||
- Fix a potential race/crash.
|
||
- Fix some problems with negotiation of large integers and
|
||
floats.
|
||
- Fix JACK sysex MIDI event handling.
|
||
- Some more smaller fixes and improvements.
|
||
* PipeWire
|
||
- Fix a potential race when adding/removing a port to be
|
||
scheduled.
|
||
* Modules
|
||
- Fix FFADO default device handling.
|
||
* SPA
|
||
- Fix in integer overflow and float/double compare in POD.
|
||
* JACK
|
||
- Copy larger MIDI events correctly.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed May 15 09:21:57 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Move modules jack-tunnel and jackdbus-detect to the
|
||
pipewire-spa-plugins-0_2-jack since those modules should only
|
||
be used when the real jack server is running. This fixes pipewire
|
||
starting jackdbus on start.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri May 10 11:43:21 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 1.0.6:
|
||
* Highlights
|
||
- A bitfield race was fixed that could cause some crashes or
|
||
undefined behaviour when moving nodes between drivers.
|
||
- Fix to some invalid memory access in the pw-mon and pw-dump.
|
||
- A regression in kodi with IEC958 formats playback was fixed.
|
||
- A race in the ALSA plugin was fixed when updating the
|
||
eventfd.
|
||
- Improvements and fixes to module-combine-stream.
|
||
- Negotiation was improved in pipewiresrc.
|
||
- Some more small fixes and improvements.
|
||
* PipeWire
|
||
- Context properties are now set early so that client
|
||
properties can be matched with rules.
|
||
- A bitfield race was fixed that could cause some crashes or
|
||
undefined behaviour when moving nodes between drivers.
|
||
* Tools
|
||
- Fix failure to hide properties in pw-mon. (#3997)
|
||
- Fix some memleaks and a crash in pw-dump. (#4001)
|
||
* Modules
|
||
- The combine-stream module now prevents resampling to avoid
|
||
broken audio because of different samplerates.
|
||
- Fix a potential double free in module-loopback when
|
||
calculating the delay. (#3748)
|
||
- The FFADO module now only starts when ports are negotiated
|
||
to avoid startup races. (#3968)
|
||
- The combine-stream module will now forward tags.
|
||
* SPA
|
||
- Monitor volumes are now also clamped to the min/max volumes.
|
||
(#3962)
|
||
- V4l2 and libcamera now encodes the device ids into a JSON
|
||
array. This is part of the deduplication code of devices.
|
||
- A regression in kodi with IEC958 formats playback was fixed.
|
||
* Bluetooth
|
||
- Improved buffer handling and queued data when stopping.
|
||
* ALSA
|
||
- A race was fixed when updating the eventfd. (#3711)
|
||
* GStreamer
|
||
- Handle some errors better instead of crashing. (#3994)
|
||
- Fix a memleak in the stream params handling.
|
||
- Negotiation was improved in pipewiresrc.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon May 06 15:31:52 UTC 2024 - alarrosa@suse.com
|
||
|
||
- Update to version 1.0.5+git36.60deeb2 to fix several crashes,
|
||
NULL checks, format strings and other issues:
|
||
* spa: libcamera: fix RGB mappings
|
||
* pw-dump: destroy all objects not just those matching the pattern
|
||
* pw-dump: fix string memory leak on error
|
||
* json: fix high surrogate escapes
|
||
* core: handle import errors better
|
||
* gst/src: fix crash when current_caps is NULL
|
||
* gst/src: Avoid unnecessary renegotiations during streaming
|
||
* gst/src: Cleanups for src_negotiate()
|
||
* pw-mon: fix type confusion in core event handler
|
||
* gst: fix stream params memory leak
|
||
* gst: handle some more errors
|
||
* treewide: fix errno assignments
|
||
* alsa-pcm: don't force quantum for iec958 formats
|
||
* journal: prepend code location to messages at debug log levels
|
||
* module-rt: fix compiler warning
|
||
* filter-chain: fix arguments of calloc
|
||
* combine-stream tag forward
|
||
* Add album to tag metadata
|
||
* impl-node: avoid bitfield races
|
||
* treewide: fix some format string issues
|
||
* conf: warn when match actions are missing
|
||
* module-protocol-simple: handle 'node.name' property
|
||
* module-ffado: only start after ports are configured
|
||
* context: fill basic properties early
|
||
* combine-stream: fix latency-compensate with resample.disabled=true
|
||
* profiler: remove unused data-loop
|
||
* v4l2: fix printf format
|
||
* spa: v4l2: encode device id into a json array
|
||
* spa: libcamera: encode device ids into a json array
|
||
* impl-port: avoid doing work when the port is destroyed
|
||
* impl-port: use 0 size when clearing IO
|
||
* stream: log a warning when media.class and direction mismatch
|
||
* module-loopback: only enable delay with valid rate and channels
|
||
* alsa: fix race when updating the eventfd
|
||
* audioconvert: also clamp monitor volume to min/max
|
||
* combine-stream: actually make use of resample.disable
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Apr 17 06:56:33 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 1.0.5:
|
||
* Highlights
|
||
- pw_stream can now report timestamps on buffers and the
|
||
expected amount of samples for the resampler.
|
||
- The GStreamer element now has more correct timestamps using
|
||
the new pw_stream timestamps as a fallback.
|
||
- The FFADO module now handles suspend and resume better.
|
||
- A regression in v4l2 was fixed when parsing malformed
|
||
filters.
|
||
- A potential memory/fd leak was fixed in client-node.
|
||
- Many more small bugfixes and improvements.
|
||
* PipeWire
|
||
- pw_stream now reports the expected resampler input or output
|
||
size in the pw_time structure. (#3750)
|
||
- pw_stream now also adds a time field to the buffer, which
|
||
contains the time of the graph when the buffer was received
|
||
in the stream.
|
||
- Fix a compiler error when compiling with -Werror=shadow.
|
||
(#3915)
|
||
- The config parser will warn when invalid config is detected.
|
||
* Modules
|
||
- The FFADO module now opens and closes when suspending. This
|
||
fixes some problems when FFADO properties are changed while
|
||
suspended. (#3558)
|
||
- Filter-chain will now warn when invalid config is detected.
|
||
- Echo-cancel will now handle manage the state of the
|
||
echo-cancel plugin better, making sure run() is not called
|
||
after deactivate().
|
||
- Fix some potential memory/fd leaks in client-node.
|
||
* SPA
|
||
- Improve reading the bound ALSA controls.
|
||
- The resampler can now also report the number of expected
|
||
output samples.
|
||
- The ALSA ACP device objects have some more properties like
|
||
the card.id and alsa.components. (#3912)
|
||
- Fix a potential string corruption when parsing JSON strings.
|
||
- V4l2 now sets the latency on the port. (#3910)
|
||
- alsa-udev now has an option to expose the device even if
|
||
busy. (#3914)
|
||
- Improve null-audio-sink channel handling. (#3931)
|
||
- v4l2 will now drop the first frame because it often contains
|
||
wrong timestamps or garbage. (#3910)
|
||
- A regression in v4l2 was fixed where invalid/empty properties
|
||
in the filter would make it error early. (#3959)
|
||
* GStreamer
|
||
- The source now falls back to the new pw_buffer time for the
|
||
timestamps.
|
||
* Docs
|
||
- Sync with the master branch.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Apr 11 09:32:10 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Move the jack spa plugin from the pipewire-spa-plugins-0_2
|
||
package to a new pipewire-spa-plugins-0_2-jack package. This
|
||
allows to not Suggest the pipewire-libjack package from
|
||
pipewire-spa-plugins-0_2 since that's only used to connect
|
||
pipewire as a client to a jack server which is not common at all
|
||
(boo#1222253).
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 19 07:42:26 UTC 2024 - Richard Biener <rguenther@suse.com>
|
||
|
||
- Avoid %if %{pkg_vcmp gcc < 8}, instead replicate the condition
|
||
from the BuildRequires section.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Mar 13 10:12:26 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 1.0.4:
|
||
* Highlights
|
||
- Track memfd better to avoid inconsistent memory. Also make
|
||
sure the mixer info is removed correctly in all cases on
|
||
destroyed ports.
|
||
- Correctly handle removed objects in the metadata.
|
||
- Add an option to set the server and client priorities instead
|
||
of using a hardcoded value of 88.
|
||
- The FFADO module has been fixed. Audio and MIDI now works
|
||
with the same latency as the JACK driver. This has now also
|
||
been tested with a Focusrite Saffire Pro 14.
|
||
- The JACK library has seen some important fixes. Some ardour
|
||
crackling has been fixed when looping and multiple MIDI ports
|
||
on a client should now work.
|
||
- Small bugfixes and improvements.
|
||
* PipeWire
|
||
- Track memfd better to avoid inconsistent memory. Also make
|
||
sure the mixer info is removed correctly in all cases on
|
||
destroyed ports.
|
||
- Fix Props param emission again in pw_stream. (#3833)
|
||
- Add MAPPABLE flag to buffer data to indicate that the fd can
|
||
be mmapped directly. Use this on DMABUF from v4l2. (#3840)
|
||
- Correctly handle removed object in the metadata.
|
||
- FreeBSD build and compatibility fixes.
|
||
- Add an option to set the server and client priorities instead
|
||
of using a hardcoded value of 88.
|
||
- Read config overrides in the right order.
|
||
- Fix PIPEWIRE_QUANTUM rate handling in pw_stream and
|
||
pw_filter.
|
||
- Fix pw_context_parse_conf_section(), actually use the conf
|
||
argument.
|
||
- A new pw_stream_get_nsec() and pw_filter_get_nsec() function
|
||
was added to get the current time of the stream/filter
|
||
without having to assume a particular clock.
|
||
- A new default.clock.quantum-floor property was added to
|
||
configure the absolute lowest buffer-size. (#3908)
|
||
* docs
|
||
- Many doc updates.
|
||
* tools
|
||
- Make sure we always quit pw-cli when the server stops.(#3837)
|
||
- pw-top now prints all drivers in batch mode. (#3899)
|
||
* modules
|
||
- Don't destroy the client in protocol-simple on EAGAIN.
|
||
- Handle IPv6 better in the RTP modules. Fix IPv6 SAP header
|
||
parsing. (#3851)
|
||
- The FFADO module has been fixed. Audio and MIDI now works
|
||
with the same latency as the JACK driver. This has now also
|
||
been tested with a Focusrite Saffire Pro 14. (#3558)
|
||
* pulse-server
|
||
- Make sure the peer_name is filled to avoid protocol errors.
|
||
* SPA
|
||
- Small resampler tweaks to improve stability of adaptive
|
||
resampler.
|
||
- Add ALSA option to control htimestamp autodisable.
|
||
- Avoid some potential crashes in audioconvert when ports are
|
||
removed.
|
||
- Improve HDMI jack detection on some SOCs.
|
||
- The audioconvert now has a monitor.passthrough option to pass
|
||
the latency information on the monitor ports. (#3888)
|
||
* GStreamer
|
||
- Don't use timeouts when autoconnect=false in pipewiresrc.
|
||
(#3884)
|
||
- pipewiresrc and pipewiresink can now be automatically
|
||
selected as audio source and sink.
|
||
- An invalid memory access was fixed when destroying the device
|
||
provider.
|
||
* JACK
|
||
- Remove properties correctly with the object id, not serial.
|
||
- Improve sync with the data thread by pausing the core. Also
|
||
improve handling of port io to avoid invalid buffer access.
|
||
- Fix PIPEWIRE_QUANTUM rate handling.
|
||
- Support multiple MIDI input ports per client. (#3901)
|
||
- The output buffer size is now always correctly set. (#3892)
|
||
* ALSA
|
||
- Handle errors from eventfd_create correctly.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 12 11:10:03 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 1.0.3+git51.89d8e8b:
|
||
* module-ffado: make the event buffer per port
|
||
* module-ffado: handle MIDI correctly
|
||
* module-ffado: implement MIDI send and receive
|
||
* module-ffado: various fixes to make things work
|
||
* stream: add pw_stream_get_nsec() to get current time
|
||
* jack: fix multiple midi input ports
|
||
* pw-top: only check terminal size in non-batch mode
|
||
* Specify "Audio" in gstreamer sink/src metadata to fix autodetect
|
||
* Add SOC-style jack names to HDMI audio paths
|
||
* gst: remove timeouts when autoconnect=false
|
||
* audioconvert: handle invalid ports better
|
||
* audioconvert: handle port remove
|
||
* pw_context_parse_conf_section: use the conf argument instead of the context's conf
|
||
* stream: FORCE_RATE should just contain the rate
|
||
* jack: FORCE_RATE should just contain the rate
|
||
* jack: set global_mix safely
|
||
* jack: sync threads by pausing the core
|
||
* alsa: Added handle for controlling htimestamp autodisable
|
||
* And more
|
||
- Remove patch already merged upstream:
|
||
* fix-gst-sink.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 12 11:01:21 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Require pipewire-pulseaudio from pipewire-alsa so when
|
||
pipewire-alsa is installed, pipewire has audio support (or put
|
||
in other words, so pipewire-alsa isn't installed with the real
|
||
pulseaudio). Fixes boo#1221235.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Mar 06 17:01:46 UTC 2024 - alarrosa@suse.com
|
||
|
||
- Add patch from upstream submitted at glfo#pipewire/pipewire#1932
|
||
that fixes selecting the pipewire gstreamer plugins by the
|
||
autoaudiosink/autoaudiosrc plugins:
|
||
* fix-gst-sink.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 29 14:58:44 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||
|
||
- Use %patch -P N instead of deprecated %patchN.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Feb 21 06:48:22 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Force using doxygen-1_10 in SLE where the default doxygen is too
|
||
old and generates broken docs (boo#1217886)
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Feb 20 17:44:12 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add a conflict in -pulseaudio with
|
||
pipewire-modules-%{apiver} < 1.0.0 since the
|
||
libpipewire-module-protocol-pulse.so module was included in
|
||
-modules before 1.0.0 so we should avoid a file conflict.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Feb 3 16:44:06 UTC 2024 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 1.0.3:
|
||
* Highlights
|
||
- Fix ALSA version check. This should allow the alsa plugin to
|
||
work again.
|
||
- Some small fixes and improvements.
|
||
* PipeWire
|
||
- Escape @DEFAULT_SINK@ in the conf files.
|
||
* Modules
|
||
- Improve logging in module-pipe-tunnel.
|
||
* SPA
|
||
- Always recheck rate matching in ALSA when moving drivers.
|
||
This fixes a potential issue where the adaptive resampler
|
||
would not be activated in some cases.
|
||
* ALSA
|
||
- Fix ALSA version check. This should allow the alsa plugin to
|
||
work again.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jan 31 15:45:16 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 1.0.2:
|
||
* Highlights
|
||
- Fix v4l2 enumeration with filter. This should fix negotiation
|
||
in some GStreamer pipelines with capsfilter. Also probe for
|
||
EXPBUF support before using it.
|
||
- Fix max-latency property and Buffer param when dealing with
|
||
small ALSA device buffers. This should fix stuttering with
|
||
some AMD based soundcards.
|
||
- More small cleanups an improvements.
|
||
* Modules
|
||
- Improve netjack2 channel positions.
|
||
- Improve RAOP module state after suspend/resume. (#3778)
|
||
- Avoid crash in some LV2 plugins by configuring the Atom
|
||
ports. (#3815)
|
||
* SPA
|
||
- Bump libcamera requirements to 0.2.0.
|
||
- Try to avoid unaligned load exceptions. (#3790)
|
||
- Fix v4l2 enumeration with filter. (#1793)
|
||
- Fix max-latency property and Buffer param when dealing with
|
||
small ALSA device buffers. This should fix stuttering with
|
||
some AMD based soundcards. (#3744,#3622)
|
||
- Add a resync.ms option to node.driver to make it possible to
|
||
resync fast to clock jumps.
|
||
- Probe for EXPBUF support in v4l2 before using it. (#3821)
|
||
* pulse-server
|
||
- Also emit change events when the port list change.
|
||
* Bluetooth
|
||
- Log a more verbose explanation when other soundservers seem
|
||
to be interfering with bluetooth.
|
||
- Add quirks for Rockbox Brick. (#3786)
|
||
- Add quirks for SoundCore mini2. (#2927)
|
||
* JACK
|
||
- Improve check for the running state of clients. (#3794)
|
||
- Drop patches already included by upstream:
|
||
* 0001-spa-libcamera-use-CameraConfigurationorientation.patch
|
||
* 0002-spa-libcamera-bump-minimum-supported-version-to-0.2.0.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jan 22 11:34:04 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patches from upstream to fix building the package in Factory
|
||
with libcamera 0.2.0:
|
||
* 0001-spa-libcamera-use-CameraConfigurationorientation.patch
|
||
* 0002-spa-libcamera-bump-minimum-supported-version-to-0.2.0.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jan 11 11:09:02 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 1.0.1:
|
||
* Highlights
|
||
- Work around the buggy ALSA backend in libcanberra by forcing
|
||
the pulse backend in module-x11-bell.
|
||
- Fix a race in the device info updates in pulse-server.
|
||
- Fix timing and rate matching in ALSA sequencer.
|
||
- Improve timing information in JACK and from the ALSA driver.
|
||
- More small fixes and improvements.
|
||
* PipeWire
|
||
- Fix a build issue when examples where disabled.
|
||
- Avoid some compiler warnings.
|
||
- Avoid some bitfield data races. (#3706)
|
||
* Modules
|
||
- Bump the PTP driver priority. (#3217)
|
||
- Support the previous "allowed" permission in the access
|
||
module.
|
||
- Fix filename leak in module-filter-chain.
|
||
- Work around the buggy ALSA backend in libcanberra by forcing
|
||
the pulse backend in module-x11-bell. (#3688)
|
||
- Fix a race in the device info updates in pulse-server.
|
||
- Fix compatibility in RAOP. (#3698)
|
||
* SPA
|
||
- Handle ALSA picth control errors correctly
|
||
- Clamp buffer-frames correctly. (#3000)
|
||
- Fix timing and rate matching in ALSA sequencer. (#3657)
|
||
- Revert a commit that could result in current time in the
|
||
future in the timing updates.
|
||
- Improve adapter state checks.
|
||
- Remove the timer from the ALSA pcm.
|
||
- Fix timeout in freewheel driver.
|
||
* Pulse-server
|
||
- Also handle active ports for monitor sources.
|
||
- Fix zeroconf-publish format properties.
|
||
* JACK
|
||
- Improve timing and transport calculations.
|
||
- Handle -ENOENT from the core and don't error out.
|
||
* GStreamer
|
||
- Handle node port removal in the device provider. (#3708)
|
||
- Improve error handling while connecting.
|
||
- Fix dts_offset.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Nov 26 10:39:13 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 1.0.0 (El Presidente):
|
||
* Highlights
|
||
- Fix a memfd/dmabuf leak when uploading buffers while shutting
|
||
down.
|
||
- Handle concurrent jack_port_get_buffer() calls because ardour
|
||
seems to be doing this.
|
||
- Improve time reporting (less jitter) in ALSA when using IRQ.
|
||
- Many doc improvements.
|
||
* PipeWire
|
||
- Respect PIPEWIRE_DLCLOSE everywhere, remove pw_in_valgrind().
|
||
- Remove a warning when a client tries to change ignored
|
||
properties.
|
||
* Modules
|
||
- Fix a memfd/dmabuf leak when uploading buffers while shutting
|
||
down.
|
||
- Fix a potential segfault when copying mix structures. (#3658)
|
||
- Avoid races in setrlimit in module-rt.
|
||
- Fix a memory leak in filter-chain.
|
||
- Set rtp.ptime on senders, not receivers.
|
||
- The ROC modules were ported to ROC 0.3
|
||
* SPA
|
||
- Improve time reporting (less jitter) in ALSA when using IRQ.
|
||
(#3657)
|
||
- Add latency param query in libcamera.
|
||
- Fix some compiler warnings.
|
||
- The EVL plugin was updated.
|
||
* Bluetooth
|
||
- LC3 codec and compatibility improvements.
|
||
* Pulse server
|
||
- Fix emission of events when a sink/source state changes.
|
||
(#3660)
|
||
* JACK
|
||
- Improve transport and time handling. Use unique ids to make
|
||
consistent snapshots of the current time and transport.
|
||
- Avoid enumerating port params that we are not going to use.
|
||
- Optimize buffer reuse.
|
||
- Handle concurrent jack_port_get_buffer() calls because ardour
|
||
seems to be doing this. (#3632)
|
||
* Docs
|
||
- Many doc improvements.
|
||
- Add man pages for pw-dump, pw-loopback, modules,
|
||
pipewire-pulse.
|
||
- Manpages are now made with Doxygen.
|
||
- Add docs for pulse-modules
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Nov 16 15:26:42 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.85 (1.0RC5):
|
||
* Highlights
|
||
- Fix an issue where a link could end up paused while not
|
||
negotiated.
|
||
- Fix an infinite recursion issue when finding runnable nodes.
|
||
- Support XDG base directories when loading ACP config.
|
||
- Fix MIDI event recording preview in Ardour.
|
||
- Many more small fixes, cleanups and improvements.
|
||
* PipeWire
|
||
- Fix an issue where a link could end up paused while not
|
||
negotiated. (#3619)
|
||
- Fix an infinite recursion issue when finding runnable nodes
|
||
by stopping the scan on feedback links around the driver.
|
||
(#3621)
|
||
- The system service now has better socket permissions.
|
||
* Modules
|
||
- Add support for uclamp. This allows the scheduler to make
|
||
better informed decisions about where tasks should be placed,
|
||
and what pstate to set for the CPU it is running on.
|
||
- Emit warnings when applications are not doing the right
|
||
locking instead of crashing.
|
||
- Improve media.name for RAOP sinks. (#3801)
|
||
- Support pause/resume in pipe-tunnel. (#3197)
|
||
- Remove time rlimit when probing for realtime to avoid
|
||
SIGXCPU.
|
||
* SPA
|
||
- Fix a bug where the resampler would be activated even when
|
||
there is an ALSA pitch element. (#3628)
|
||
- Improve resume from suspend in ALSA. (#3646)
|
||
- Add option to expose ALSA controls as prop params.
|
||
- Support XDG base directories when loading ACP config. This
|
||
makes it possible to override the ACP config files.
|
||
* Bluetooth
|
||
- Schedule nodes in the same ISO group together.
|
||
- More BAP fixes and cleanups.
|
||
* JACK
|
||
- Fix MIDI events from peer ports. This makes the MIDI event
|
||
recording preview of Ardour work correctly.
|
||
* GStreamer
|
||
- Fix some error handling in the source and sink.
|
||
* ALSA plugin
|
||
- Improve poll descriptor handling. (#3648)
|
||
* Docs
|
||
- Many improvements to the layout and organization.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Nov 2 11:44:33 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.84 (1.0RC4):
|
||
* Highlights
|
||
- Fix a regression with openal because the queued buffers in
|
||
the stream were not reported correctly.
|
||
- Fix a bug in port busy counters that could cause random
|
||
silent links.
|
||
- Fix a regression in echo-cancel because it was not reporting
|
||
its streams as ASYNC.
|
||
- Fix a JACK regression where not all ports were enumerated in
|
||
all cases.
|
||
- Many more fixes and improvements.
|
||
* PipeWire
|
||
- pw_stream now reports the queued buffers more accurately.
|
||
This fixes a regression when using openal. (#3592)
|
||
- The port busy counters were not updated correctly in some
|
||
cases. This could lead to negotiation errors and silent
|
||
links. (#3547)
|
||
- Ignore latency maximum when forcing rate/quantum. (#3613)
|
||
- Nodes can now be added to multiple groups and link-groups.
|
||
(#3612)
|
||
* Modules
|
||
- The filter-chain now also handles notify port dependencies
|
||
correctly. (#3596)
|
||
- Filter-chain has support for new linear, clamp, recip, exp,
|
||
log, mult, sine builtin plugins.
|
||
- The echo-cancel module now correctly reports its playback and
|
||
capture streams as ASYNC to avoid running out of buffers.
|
||
(#3593)
|
||
- It is now possible to specify an array of remote names to
|
||
connect to with the native protocol.
|
||
- module-rtp-sap and module-rtp-sink now try to bind to the
|
||
specified interface.
|
||
* SPA
|
||
- The alsa plugin now removes the runtime properties such as
|
||
period-num, period-size and max-latency when suspended.
|
||
(#3613)
|
||
* Bluetooth
|
||
- BAP Locations/Context is now set on endpoints as required by
|
||
new bluez.
|
||
- Improve selection of BAP leader.
|
||
* JACK
|
||
- Add a jack_set_sample_rate() extension function.
|
||
- Make sure we get the info of all nodes/ports before
|
||
completing the jack_client_open() operation so that we can
|
||
enumerate the ports correctly in all cases. (#3618)
|
||
* GStreamer
|
||
- Fix types of metadata in pipewiresink.
|
||
- Also copy metadata in buffers in all cases.
|
||
- Fix size allocation in bufferpool for compressed formats.
|
||
- Don't stop streaming thread when unlinked. (#3620)
|
||
* ALSA
|
||
- The ALSA plugin now handles NULL values from mmap_areas.
|
||
(#3600)
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Oct 30 16:49:02 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Disable the WebRTC-based echo canceller in big endian
|
||
architectures since webrtc-audio-processing is not available
|
||
there.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Oct 19 15:30:51 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.83:
|
||
* Highlights
|
||
- A quantum change regression was fixed.
|
||
- Use a 2 socket server now for the manager and the
|
||
applications with (when wireplumber is updated) different
|
||
permissions.
|
||
- Reduce memory usage a little in audioconvert and use fewer
|
||
buffers.
|
||
- Some JACK deadlocks were fixed.
|
||
- More bugfixes and improvements.
|
||
* PipeWire
|
||
- Fix quantum change regression.
|
||
- Use a 2 socket server by default. One for the session-manager
|
||
and one for applications.
|
||
- Fix a potential use-after-free in node and device cleanup.
|
||
* modules
|
||
- Some hardcoded buffer size limits were removed.
|
||
- Fix ASYNC flag on combined-streams.
|
||
- Add support for on-demand combined-streams using metadata.
|
||
* SPA
|
||
- alsa-udev will now ignore PCMs with the ACP_IGNORE udev
|
||
environment variable.
|
||
- The audioadapter now uses at least 2 buffers when the
|
||
follower is async.
|
||
- The number of buffers used by plugins was tweaked a little.
|
||
Most plugins now only ask 1 buffer.
|
||
- Memory usage in audioconvert was reduced.
|
||
- Fix some unaligned reads and writes and undefined left shifts
|
||
reported by ASAN.
|
||
- Rework vulkan dependency checking.
|
||
- Don't try to link ALSA devices when prepare fails. This
|
||
fixes some crashes.
|
||
- Fix a stall when the allowed codecs are changed in ALSA.
|
||
- Improve ALSA rate control for sources to avoid xruns.
|
||
- Try to fix IEC958 TrueHD and DTS playback.
|
||
* Bluetooth
|
||
- Improve fallback SCO mtu when the kernel doesn't tell us.
|
||
* JACK
|
||
- The fixed buffer size limit was removed.
|
||
- Add an option to make input buffers writable (default true).
|
||
- A potential deadlock was fixed when applications lock the
|
||
process function.
|
||
- Use a separate thread to dispatch notifications to avoid
|
||
deadlocks.
|
||
- Potentially fix silent export in ardour in some cases.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Oct 13 14:10:56 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.82:
|
||
* Highlights
|
||
- Fix a regression in some devices when the Pro-Audio profile
|
||
was selected.
|
||
Only enable the IRQ based scheduling and device linking in
|
||
specific safe cases.
|
||
- Improve rate switching. In some cases the graph rate would
|
||
not switch correctly.
|
||
- Fix regression in alsa wakeups that would cause silence in
|
||
VMs.
|
||
- Fix a leak in the SBC codecs for SCO.
|
||
- More improvements to the RAOP module.
|
||
- Other small improvements and fixes.
|
||
* PipeWire
|
||
- Improve client property checks.
|
||
- Allow non-power-of-2 quantums when forced.
|
||
- Improve rate switching. In some cases the graph rate would
|
||
not switch correctly.
|
||
- The PIPEWIRE_QUANTUM env variable now forces the size and
|
||
rate in the graph for the duration of the application.
|
||
The softer PIPEWIRE_LATENCY and PIPEWIRE_RATE can still be
|
||
used to merely suggest a maximum latency and a rate.
|
||
* modules
|
||
- Remove the RTSP FLUSH request in RAOP because it does not
|
||
seem necessary.
|
||
- The RAOP module now uses the common RTP stream functions.
|
||
- Add sockets option to protocol-native to make pipewire listen
|
||
on multiple sockets.
|
||
* SPA
|
||
- Clean up some of the log functions.
|
||
- Add an option in ALSA to disable linking devices together.
|
||
- Only link pcms together when 1 capture and 1 playback pcm.
|
||
For more complex devices we can't be sure which ones can be
|
||
linked.
|
||
- Disable tsched only when using linked devices.
|
||
- Add some extra checks in ALSA to avoid segfaults.
|
||
- Add Tag support to alsa-sink and alsa-source.
|
||
- Use dynamic pod builder when we can.
|
||
- Set priority.driver on midi-bridge to allow it as a fallback
|
||
driver.
|
||
- Fix regression in alsa wakeups.
|
||
- The PTP clock can now be found from the interface in
|
||
node-driver.
|
||
* pulse-server
|
||
- Some small cleanups and internal improvements.
|
||
- Add some memory debugging messages.
|
||
- Add Tag messages to streams.
|
||
* Bluetooth
|
||
- Fix a leak in the SBC codecs for SCO.
|
||
* JACK
|
||
- Patch up midi events in the destination buffer instead of
|
||
writing to the source buffer.
|
||
- Group all jack clients together to avoid transport issues.
|
||
* ALSA-plugins
|
||
- Add also.deny option to block alsa clients from opening the
|
||
PCM.
|
||
- Drop patches already included upstream:
|
||
* 0001-alsa-add-api.alsa.auto-link-option.patch
|
||
* 0002-acp-fix-compilation.patch
|
||
* 0003-acp-only-join-and-link-when-1-capture-and-1-playback.patch
|
||
* 0004-acp-only-disable-tsched-when-linking.patch
|
||
* 0001-alsa-dont-check-early-wakeup-when-PCM-stopped.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Oct 13 08:33:28 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patches from upstream that fix pro-audio not producing any
|
||
sound in 0.3.81:
|
||
* 0001-alsa-add-api.alsa.auto-link-option.patch
|
||
* 0002-acp-fix-compilation.patch
|
||
* 0003-acp-only-join-and-link-when-1-capture-and-1-playback.patch
|
||
* 0004-acp-only-disable-tsched-when-linking.patch
|
||
- Add patch from upstream that fixes issues when PCM is stopped,
|
||
which includes fixing sound in qemu:
|
||
* 0001-alsa-dont-check-early-wakeup-when-PCM-stopped.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Oct 9 11:34:40 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Pipewire now requires vulkan 1.3, so we have to disable vulkan
|
||
support if this requirement is not fulfilled in order to build
|
||
correctly in Leap.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Oct 7 15:11:14 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.81:
|
||
* Highlights
|
||
- jackdbus support is now enabled by default.
|
||
- IRQ based scheduling in ALSA was improved and enabled by
|
||
default for Pro-Audio profile. It will also link the pcms
|
||
together to get lower latency. This now matches what JACK
|
||
does and gives equal latency to PipeWire for Pro-Audio
|
||
profiles.
|
||
- Support both old and new versions of webrtc-audio-processing
|
||
to make the transition easier.
|
||
- Forced quantum changes by nodes or metadata will now also
|
||
force a suspend and resume of the graph, like the rate
|
||
changes to make sure all nodes adapt to the new quantum.
|
||
This is important for Pro-Audio nodes that need to
|
||
reconfigure the hardware to a new period in IRQ-based
|
||
scheduling.
|
||
- Fix a regression in regex parsing.
|
||
- Many bugfixes and improvements.
|
||
* PipeWire
|
||
- jackdbus is by default enabled now. The idea is that when
|
||
jackdbus is installed, the real libjack.so is in the path and
|
||
we can become a real JACK client.
|
||
- Forces quantum changes by nodes or metadata will now also
|
||
force a suspend and resume in the graph, like the rate
|
||
changes to make sure all nodes adapt to the new quantum.
|
||
This is important for Pro-Audio nodes that need to
|
||
reconfigure the hardware to a new period.
|
||
- The stream now has an EARLY_PROCESS option that can be used
|
||
to implement custom buffer fill levels.
|
||
- Fix a regression in regex parsing.
|
||
- Fix a bug in position reporting in the driver node.
|
||
- Destroying a link will now recalculate the graph correctly.
|
||
- Fix the rate comparison for finding the best rate in the
|
||
graph.
|
||
- Use malloc_trim() when available to release memory.
|
||
* Tools
|
||
- pw-cat now supports DFF DSD files.
|
||
- pw-cli avoid some NULL derefs in some cases.
|
||
* Modules
|
||
- The RAOP sink has seen some cleanups and improvements.
|
||
It will now ask for feedback every 2 seconds to keep some
|
||
devices alive.
|
||
- A bug in filter-chain was fixed where it would fail to apply
|
||
the gain when when mixing just one source.
|
||
- The filter-chain can now pass the stream volume to a control
|
||
in the filter-chain graph.
|
||
- Improve volume handling in RAOP sink.
|
||
* Pulse-server
|
||
- Some cleanup in the pending_stream handling.
|
||
- Fix a regression in the event emission code where it failed
|
||
to emit a changed event when a node was linked.
|
||
- Lower the realtime priority of pulseaudio clients.
|
||
- Set pulse.module.id on the echo-cancel streams.
|
||
* SPA
|
||
- Support both old and new versions of webrtc-audio-processing
|
||
to make the transition easier.
|
||
- The ALSA driver now does the synch of all followers directly
|
||
from the wakeup event. This results in more stable rate
|
||
matching.
|
||
- IRQ based scheduling in ALSA was improved and enabled by
|
||
default for Pro-Audio profile. It will also link the pcms
|
||
together to get lower latency. This now matches what JACK
|
||
does and gives equal latency to PipeWire for Pro-Audio
|
||
profiles.
|
||
- GNU/Hurd support was added.
|
||
- Some improvements to passthrough handling.
|
||
* Bluetooth
|
||
- Improvements to the codec handling when PipeWire is used as
|
||
Audio Gateway.
|
||
- Adapt to new Bluez API for BAP devices.
|
||
* JACK
|
||
- When the jack library is set in the default library path,
|
||
avoid using LD_LIBRARY_PATH because this can cause confusion.
|
||
- Handle clearing the latency on a port.
|
||
- jack_property now always manages to actually change the
|
||
metadata because it waits for a roundtrip before exiting.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 14 12:01:09 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.80:
|
||
* Highlights
|
||
- A new Tag param was added that allows arbitrary metadata to
|
||
be transported out-of-band in the graph.
|
||
- Vulkan DMA buf support was merged.
|
||
- The echo-canceller was ported to webrtc-audio-processing-1.
|
||
- Fix a regression in locating monitor sources by id in
|
||
pulse-server.
|
||
- Mixer io areas updates are now synchronized correctly with
|
||
the data thread to avoid potential crashes.
|
||
- Many more bugfixes and improvements.
|
||
* PipeWire
|
||
- Handle driver nodes that refuse to change the quantum or
|
||
rate.
|
||
- A new Tag param was added that allows arbitrary metadata to
|
||
be transported out-of-band in the graph.
|
||
* Modules
|
||
- The pipe-tunnel source has been reworked to use a ringbuffer
|
||
and rate adaption to keep the latency constant. It can now
|
||
also function as a driver to reduce resampling. (#3478)
|
||
* Tools
|
||
- pw-cat will now place media properties in Tag params.
|
||
- pw-mon can now filter props and params.
|
||
* SPA
|
||
- ALSA refuses to change quantum and rate when in IRQ mode.
|
||
- ALSA will now be smarter in selecting the period size for
|
||
batch devices and will make it depend on the samplerate.
|
||
(#3444)
|
||
- Vulkan DMA buf support was merged.
|
||
- ALSA latency will now be reported in the time domain of the
|
||
graph.
|
||
- Add udev based autodetection for compress-offload devices.
|
||
- The echo-canceller was ported to webrtc-audio-processing-1.
|
||
- The v4l2 inotify code was rewritten to avoid a use-after-free
|
||
and by using a separate watch (but same fd) for each device.
|
||
(#3439)
|
||
- The tag and latency handling was improved in audioadpter.
|
||
- Don't use -Ofast on alpha because it can crash on
|
||
denormalized values. (#3489)
|
||
- The mixers now synchronize spa_io_buffers updates with the
|
||
data thread to avoid crashes.
|
||
- Handle NULL param updates. (#3504)
|
||
* Pulse-server
|
||
- Fix a regression in locating monitor sources by id. (#3476)
|
||
- Add support for use_system_clock_for_timing in
|
||
module-pipe-sink.
|
||
- Add support for checking module arguments.
|
||
- Avoid some useless change events.
|
||
* Bluetooth
|
||
- Ports are now marked as physical, which makes the bluetooth
|
||
devices show up as hardware devices in Ardour and other JACK
|
||
apps. (#3418)
|
||
- Some fixes for LE audio support (#3479)
|
||
* JACK
|
||
- Also emit unregister notify even when suppressed when
|
||
creating the client.
|
||
- The notify callbacks now match JACK2 behaviour more.
|
||
- The mixer io areas are updated and handled safely now to
|
||
avoid crashes. (#3506)
|
||
- Drop patches already included upstream:
|
||
* 0001-pulse-server-allow-monitors-when-selecting-source-by-index.patch
|
||
* 0001-Revert-v4l2-handle-inotify-errors.patch
|
||
* 0002-Revert-v4l2-dont-set-inotify-on-_dev.patch
|
||
* 0003-spa-v4l2-use-a-separate-watch-for-each-device.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Sep 11 09:56:03 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch from upstream to fix a regression introduced in 0.3.77
|
||
which made it fail to open a monitor device as source:
|
||
* 0001-pulse-server-allow-monitors-when-selecting-source-by-index.patch
|
||
- Add patch from upstream to fix a bug which caused 100% cpu usage
|
||
under some circumstances:
|
||
* 0001-Revert-v4l2-handle-inotify-errors.patch
|
||
* 0002-Revert-v4l2-dont-set-inotify-on-_dev.patch
|
||
* 0003-spa-v4l2-use-a-separate-watch-for-each-device.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Aug 29 17:32:30 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.79:
|
||
* Highlights
|
||
- Fix a regression in suspend that could cause silence.
|
||
- Fix a regression in JACK port registration that could cause
|
||
all kinds of JACK problems.
|
||
- Fix a typo in the neon sample conversion functions that could
|
||
cause distortion.
|
||
- Add BAP broadcast source and sink support.
|
||
- pw-top now has a batch mode to dump the output to stdout.
|
||
- Many more bugfixes and improvements.
|
||
* PipeWire
|
||
- Fix a regression in shutdown where a node might not first
|
||
suspend properly. This cause loss of sound in some cases.
|
||
- Failure to compile a regular expression in the config file
|
||
will now be reported and ! can be used to negate the match.
|
||
- Fix a regression where some nodes might not set running in
|
||
some cases.
|
||
- Nodes are now suspended before the format is cleared, which
|
||
might fix some crashes.
|
||
* Tools
|
||
- pw-top now has a batch mode to dump the output to stdout.
|
||
* SPA
|
||
- The queued samples in audioconvert are now correctly reported
|
||
in the delay.
|
||
- Make it easier to add a custom profile in ACP.
|
||
- Fix a typo in the neon sample conversion functions that could
|
||
cause distortion.
|
||
- device.profile.pro=true is added for pro audio nodes.
|
||
- An xrun counter was added to spa_io_clock to detect and track
|
||
skipped data because of xruns.
|
||
* Pulse-server
|
||
- Add alsa-sink and alsa-source modules.
|
||
* Bluetooth
|
||
- Fix a regression where only the BAP off profile is shown.
|
||
- Add BAP broadcast source and sink support.
|
||
* JACK
|
||
- Also emit a latency notify when the buffer size changes.
|
||
- Fix a regression in JACK port registration.
|
||
- jack_port_tie() is now supported.
|
||
* ALSA
|
||
- Improve property handling, support lists and ranges in
|
||
addition to fixed values.
|
||
- Remove patches already included upstream:
|
||
* 0001-jack-make-sure-we-can-always-find-our-own-ports.patch
|
||
* 0001-audioconvert-fix-typo-in-neon-function.patch
|
||
* 0001-impl-node-improve-suspend.patch
|
||
* 0001-bluez5-fix-BAP-profiles-showing.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Aug 25 09:15:38 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.78:
|
||
* Highlights
|
||
- An old regression was fixed with where some nodes would not
|
||
run.
|
||
- A regression was fixed where removed events would not be
|
||
shown in some cases. This would result in duplicate entries
|
||
in audio clients.
|
||
- Fix an off-by-one in the vban audio receiver. Tweak the rate
|
||
adaption a little.
|
||
- ACP will now set a UCM verb before probing the pro-audio
|
||
devices.
|
||
- More bugfixes and improvements.
|
||
* PipeWire
|
||
- An old regression was fixed with where some nodes would not
|
||
run. (#3405)
|
||
- Suspend was improved a little to avoid races when the session
|
||
manager would suspend right when a driver was starting.
|
||
* Modules
|
||
- module-rtp-sap does not use the deprecated inet_aton anymore.
|
||
- Fix an off-by-one in the vban audio receiver. Tweak the rate
|
||
adaption a little. (#3380)
|
||
* SPA
|
||
- ACP will now set a UCM verb before probing the pro-audio
|
||
devices. (#3407)
|
||
- The mandatory flag will be set now on the video modifiers.
|
||
- EVL was updated to Xenomai4 r46 and xbuf creation was
|
||
improved.
|
||
- An option was added to force colors in the log even when
|
||
logging to !tty.
|
||
- The return type of spa_pod_builder_control() was fixed.
|
||
- inotify errors are handled better now. (#3439)
|
||
* pulse-server
|
||
- A regression was fixed where removed events would not be
|
||
shown in some cases. (#3414)
|
||
* Bluetooth
|
||
- Improve compatibility with more devices, avoid reusing the
|
||
same transport for different media-sink instances to avoid
|
||
encoder resets.
|
||
- Improve enumeration of codec profiles for BAP and A2DP.
|
||
* JACK
|
||
- Ensure we can't iterate ports from a deactivated client. Also
|
||
make sure the JACK clients with the node.always-process=false
|
||
always show their ports. (#3416)
|
||
* GStreamer
|
||
- A potential crash was fixed in the device provider when
|
||
stopping.
|
||
- Remove patches already included upstream:
|
||
* 0001-context-Dont-stop-setting-runnable-when-meeting-the-driving.patch
|
||
* 0001-gst-Prevent-a-crash-when-stopping-device-provider.patch
|
||
* 0001-jack-ports-become-visible-when-the-registration-is-queued.patch
|
||
* 0002-jack-handle-node.always-process-=-false-jack-nodes.patch
|
||
* 0001-pulse-server-set-all-change_mask-flags-when-removing.patch
|
||
- Add patch from upstream to fix jack clients:
|
||
* 0001-jack-make-sure-we-can-always-find-our-own-ports.patch
|
||
- Add patch from upstream to fix typo in neon function that makes
|
||
pipewire produce noise:
|
||
* 0001-audioconvert-fix-typo-in-neon-function.patch
|
||
- Add patch from upstream to fix (among others) a race when a node
|
||
is suspended at the same time it is started causing silence:
|
||
* 0001-impl-node-improve-suspend.patch
|
||
- Add patch from upstream to fix BAP only showing off profile:
|
||
* 0001-bluez5-fix-BAP-profiles-showing.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Aug 18 12:01:36 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Fix from upstream to ensure effect and sink nodes are set to
|
||
running:
|
||
* 0001-context-Dont-stop-setting-runnable-when-meeting-the-driving.patch
|
||
|
||
- Fix from upstream to prevent a crash when stopping a device
|
||
provider:
|
||
* 0001-gst-Prevent-a-crash-when-stopping-device-provider.patch
|
||
|
||
- Fix from upstream to fix a regression that makes plugins/effects
|
||
disappear in Carla Patchbay when there's no playback:
|
||
* 0001-jack-ports-become-visible-when-the-registration-is-queued.patch
|
||
* 0002-jack-handle-node.always-process-=-false-jack-nodes.patch
|
||
|
||
- Fix from upstream to fix pavucontrol and plasma-pa showing
|
||
duplicated sinks after resume or switching audio device profiles
|
||
(boo#1214374):
|
||
* 0001-pulse-server-set-all-change_mask-flags-when-removing.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Aug 5 12:23:12 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.77:
|
||
* Highlights
|
||
- Fix a bug in ALSA source where the available number of
|
||
samples was miscaluclated and resulted in xruns in some
|
||
cases.
|
||
- A new L permission was added to make it possible to force a
|
||
link between nodes even when the nodes can't see eachother.
|
||
- The VBAN module now supports midi send and receive as well.
|
||
- Many cleanups and small fixes.
|
||
* PipeWire
|
||
- Global objects now only show permissions that apply to them.
|
||
The permissions required to perform various API calls are
|
||
documented.
|
||
- A new L permission was added to make it possible to force a
|
||
link between nodes even when the nodes can't see eachother.
|
||
- Config files need to end with .conf.
|
||
- The client.api is added the to global properties of a node.
|
||
* modules
|
||
- The VBAN module now supports midi send and receive as well.
|
||
- Fix module-profiler alignment and make sure we don't overrun
|
||
our buffers with many nodes.
|
||
- Protect libcanberra calls with a mutex because it is not
|
||
thread safe.
|
||
* SPA
|
||
- Support older compilers for spa_clear_ptr().
|
||
- Fix a bug in ALSA source where the available number of
|
||
samples was miscaluclated and resulted in xruns.
|
||
- Don't set inotify on /dev but on the videoX devices directly.
|
||
Setting inotify on /dev would cause a lot of spurious wakeups
|
||
and lock contention in the fsnotify subsystem on some
|
||
benchmarks.
|
||
- Audioconvert now rate limits the warnings when it runs out of
|
||
buffers.
|
||
* pulse-server
|
||
- Some bugs and inconsistencies were fixed in device lookup.
|
||
- Improve subscribe event emission, detect changes to the sink
|
||
or the monitor and send the right sink/source event.
|
||
* JACK
|
||
- The libjack.so now has a minor version of 3 and a micro
|
||
version of the pipewire version.
|
||
- JACK clients will now see portregistration from other jack
|
||
clients when they activate/deactivate like real JACK.
|
||
* bluetooth
|
||
- Use some more autoptr cleanups, fix some leaks.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jul 28 10:35:03 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.76:
|
||
* Highlights
|
||
- Fix a regression that would cause the MPV pipewire backend
|
||
to fail because of a spurious thread-loop signal.
|
||
- Fix a crash when DBus is not found.
|
||
- ALSA hires timestamps are now disabled by default.
|
||
- Some more fixes and improvements.
|
||
* PipeWire
|
||
- A new option was added to pw-thread-loop to signal when the
|
||
thread starts.
|
||
- This is only used in module-rt to avoid regressions in mpv.
|
||
(#3374)
|
||
- Fix a compilation problem.
|
||
- Stream flags now only set the properties when not already
|
||
set. This fixes a regression with node autoconnect. (#3382)
|
||
* Tools
|
||
- pw-cat will now stop when the stream is disconnected. (#2731)
|
||
- Improve the pw-cat man page, mention that stdin/stdout
|
||
handling is only on raw data.
|
||
* modules
|
||
- module-rt will now not crash when dbus is not available but
|
||
error out as before.
|
||
- A new VBAN (vb-audio.com) sender and receiver was added.
|
||
(#3380)
|
||
* SPA
|
||
- Add an option in audioconvert to disable volume updates.
|
||
(#3361)
|
||
- ALSA hires timestamps are disabled by default because many
|
||
drivers seem to give wrong timestamps and cause extra delay.
|
||
* bluetooth
|
||
- LE Audio support is now enabled by default when liblc3 is
|
||
available now that bluez has support for detecting the
|
||
hardware features.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jul 25 08:19:55 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add code in the spec file to modify the patch file
|
||
reduce-meson-dependency.patch (used to build in SLE/Leap) so that
|
||
we don't need to rebase it manually for every version update.
|
||
- Use gcc 11 in SLE/Leap since gcc 9 fails to build 0.3.75 with
|
||
../spa/include/spa/utils/cleanup.h:52:13: error: dereferencing pointer to incomplete type ‘DIR’ {aka ‘struct __dirstream’}
|
||
52 | __typeof__(*(ptr)) *_old_value = spa_steal_ptr(ptr); \
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Jul 23 01:16:45 UTC 2023 - llyyr <llyyr.public@gmail.com>
|
||
|
||
- Update to version 0.3.75:
|
||
* Highlights
|
||
- Link permissions between nodes are now enforced. This avoids
|
||
potential portal managed screencast nodes to link to the
|
||
camera even though it was not assigned permissions to do so
|
||
by the session manager (boo#1213682).
|
||
- Libcamera and v4l2 devices now have properties so that
|
||
duplicates can be filtered out by the session manager.
|
||
- A bug with draining was fixed where a buffer would be marked
|
||
EMPTY and would not play when it contained drained samples.
|
||
- Many fixes and improvements.
|
||
* PipeWire
|
||
- Permissions for links between nodes are now enforced. The
|
||
link will now check that the owner clients of the nodes can
|
||
see each other before allowing the link. This avoids
|
||
screensharing clients to accidentally being linked to the
|
||
camera nodes by the session manager. A side effect is that
|
||
patchbay tools will no longer be able to link portal managed
|
||
screencast nodes to the camera, for this we need a new
|
||
permission for those patchbay clients.
|
||
- The stream.rules/filter.rules are now evaluated when
|
||
connecting the stream/filter so that more properties can be
|
||
matched.
|
||
- Move some internal events from the context to the nodes to
|
||
better handle per-node threads in the future.
|
||
- The thread-loop will now signal when the thread is started.
|
||
* modules
|
||
- A timestamp workaround in module-raop was reverted because it
|
||
does not work in all cases. Instead latency was increased to
|
||
1.5 seconds, which also makes the problematic device in
|
||
question work.
|
||
- The profiler module was reworked a bit to use the new node
|
||
realtime events. It should now also handle dynamically added
|
||
and removed drivers.
|
||
- The module-rt now does the rtkit calls from a separate thread
|
||
so that it does not block the main thread. This could cause
|
||
deadlocks during startup in some cases.
|
||
* SPA
|
||
- Atomic operation macros were move from internal pipewire API
|
||
to public API.
|
||
- The video-info structure now has a new
|
||
SPA_VIDEO_FLAG_MODIFIER_FIXATION_REQUIRED flag to instruct
|
||
the application to fixate the modifiers. This simplifies some
|
||
logic in applications a lot.
|
||
- The libcamera and v4l2 nodes now have properties to enumerate
|
||
the device id they are using. This can be used to match v4l2
|
||
devices and libcamera devices and filter out duplicates.
|
||
- A bug with draining was fixed where a buffer would be marked
|
||
EMPTY and would not
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jul 12 10:03:52 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.74:
|
||
* Highlights
|
||
- Fix a critical bug where audio to bluetooth devices would cut
|
||
out randomly.
|
||
- Improve RAOP compatibility.
|
||
- Avoid crashes after an update.
|
||
- Small fixes and improvements.
|
||
* PipeWire
|
||
- Mix info on port is now created explicitly.
|
||
- Remove the node as a driver peer when stopping. This caused
|
||
some problem with playback on and other remote bluetooth
|
||
devices.
|
||
- Work on avoiding crashes when loading new modules that use
|
||
internal API with old libpipewire. This is typical after an
|
||
update where the old library is still loaded by an
|
||
application but when a new stream is created, updated modules
|
||
are loaded.
|
||
* Modules
|
||
- The RTP source module now has an option to ignore the SSRC,
|
||
which is useful to continue to receive the stream when the
|
||
sender is restarted.
|
||
- The native protocol will refuse to load twice now instead of
|
||
silently ignoring the error.
|
||
- module-raop is compatible with more devices.
|
||
* SPA
|
||
- plugins will now warn when running out of buffers. This is
|
||
always a bad thing.
|
||
- Merge scope based cleanup macros.
|
||
- Add ratelimit function.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Jul 8 15:24:48 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.73:
|
||
* Highlights
|
||
- Fixes an ALSA resume after suspend error.
|
||
- Handle and disable seemingly wrong hires timestamps from
|
||
ALSA.
|
||
- Filter-chain now has loadable plugin modules. The LV2 and
|
||
sofa plugins are moved to a separate .so file to make things
|
||
more modular.
|
||
- Rate changes in the graph should now be handled more
|
||
gracefully by loopback and filter-chain.
|
||
- A regression in the rtp-sap module was fixed where it would
|
||
in some cases fail to start.
|
||
- A potential crash in the peaks resampler was fixed.
|
||
- Many cleanups and other small bug fixes.
|
||
* PipeWire
|
||
- Fix a potential segfault when no fallback driver was set in
|
||
the config.
|
||
- Improve OPUS detection.
|
||
- Add ASYNC flag to pw-filter and pw-stream when queue/dequeue
|
||
is not called from the process function. This ensure we
|
||
allocate an extra buffer.
|
||
- Discard pending process callbacks when disconnecting.
|
||
- Cleanups and improvements to the debug environment variable
|
||
parsing.
|
||
- The graph rate was tweaked to better handle very low rates
|
||
such as those requested by pavucontrol when it does the
|
||
signal monitoring.
|
||
* Modules
|
||
- An example filter module was added.
|
||
- Filter-chain and loopback now disable the resamplers if no
|
||
rate is specified and will always follow the graph rate.
|
||
- Improve setup of filter-chain. The graph is now created when
|
||
starting because this ensure the target graph rate is known.
|
||
- Filter-chain can now link notify ports to control ports in
|
||
the graph.
|
||
- Filter-chain now has loadable plugin modules. The LV2 and
|
||
sofa plugins are moved to a separate .so file.
|
||
- A regression in the rtp-sap module was fixed where it would
|
||
in some cases fail to start.
|
||
- Module-rt now has options to disable rlimits, portal and
|
||
rtkit.
|
||
- module-raop-discover now has an options to set the latency.
|
||
* Tools
|
||
- pw-cat now supports overriding all stream properties.
|
||
* SPA
|
||
- Disable rate negotiation when the resampler is disabled. We
|
||
will always follow the graph rate.
|
||
- Set device.icon property for UCM ports as well.
|
||
- Improve ALSA recover when using hires timestamps. This fixes
|
||
some problems after resume from suspend.
|
||
- ALSA will now warn and disable hires timestamp when they seem
|
||
wrong.
|
||
They can also be disabled manually with a property.
|
||
- V4l2 will now gracefully handle ENOTTY when enumerating frame
|
||
sizes and frame rates.
|
||
- A potential crash in the peaks resampler was fixed.
|
||
* pulse-server
|
||
- A client crash in pavucontrol is avoided by always setting a
|
||
card name.
|
||
- The graph rate is now taken correctly when using the FIX
|
||
flags.
|
||
- An option was added to ignore the FIX flags of a stream. Also
|
||
the documentation for those options was updated.
|
||
- module-raop-discover now support latency_msec.
|
||
* Bluetooth
|
||
- Remove an assert and issue a warning/recover instead when a
|
||
buffer is too small.
|
||
* GStreamer
|
||
- The device provider does locking when destroying the
|
||
registry.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jun 26 09:30:37 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.72:
|
||
* Highlights
|
||
- Fix a critical bug that would refuse to update the samplerate
|
||
or buffersize in JACK clients.
|
||
- A new module-netjack2-driver and module-netjack2-manager were
|
||
added that are compatible with NETJACK2. This allows PipeWire
|
||
to become a NETJACK2 manager or a driver between JACK2 or
|
||
PipeWire servers.
|
||
- Support was added for firewire devices with FFADO. This is
|
||
untested for now and MIDI is not implemented yet.
|
||
- The node scheduling was optimized some more. External drivers
|
||
are now as efficient as in-server ones. This should improve
|
||
performance of various drivers such as bluetooth and JACK
|
||
based drivers.
|
||
- Many, many bug fixes and a ton of improvements.
|
||
* PipeWire
|
||
- pw-filter can now be used to write sinks and sources.
|
||
- The node activation for drivers was changed. The driver now
|
||
does not need to go to the server to start the processing
|
||
cycle. This makes out-of-server drivers as efficient as
|
||
in-server drivers.
|
||
- Don't try to use drivers with 0 priority as fallback drivers.
|
||
This avoids making the screencast driver a driver for audio.
|
||
- Improve xrun count reporting in pw-top and the profiler. Now
|
||
each node has their own xrun counter updated when it fails to
|
||
complete processing during the cycle.
|
||
- pw-filter now also has support for TRIGGER.
|
||
- A potential fd leak was found when fds were send to a zombie
|
||
client.
|
||
- Fix a bug where monitor or capture streams were logged twice
|
||
in the profiler.
|
||
- Remove stream hooks safely.
|
||
- A bug in serialization of container properties was fixed.
|
||
This could result in truncated property values.
|
||
- The PIPEWIRE_AUTOCONNECT environment variable now always
|
||
overrides the autoconnect settings of streams.
|
||
- Node, port and link destroy now avoids some useless work.
|
||
- Port will now try to renegotiate a new format when idle.
|
||
* Modules
|
||
- The module-sap now is more compatible with AES67.
|
||
- A new FFADO driver module was added. This is completely
|
||
untested because of lack of hardware. Please test and report
|
||
issues.
|
||
- A new NETJACK2 driver and a NETJACK2 manager module were
|
||
added. These should be drop in replacements for the JACK2
|
||
parts.
|
||
- The RAOP discover module now tries harder to only list
|
||
devices once.
|
||
- The zeroconf discover module now tries harder to only list
|
||
devices once.
|
||
- The RAOP sink module now handles latency better and is
|
||
compatible with some more devices.
|
||
- The loopback and filter-chain modules now always dequeue the
|
||
last input buffer to avoid stuttering in some cases.
|
||
- The SPA node factory module can now also export nodes. This
|
||
is used to export the PTP clock from the AES67 config file.
|
||
- A bug in module-jack-tunnel was fixed that would cause
|
||
stuttering and corrupted output in some cases.
|
||
- The resampler is now disabled in module-loopback and
|
||
filter-chain when the samplerate is set to follow the graph
|
||
rate.
|
||
- The way the mixer peer is sent to clients was improved. It is
|
||
now also possible to let a remote node know about mixer port
|
||
removes, which can avoid memory leaks and some code
|
||
simplifications.
|
||
* SPA
|
||
- Monitor ports now report latency correctly.
|
||
- The ALSA plugin now uses htimestamp to get a more accurate
|
||
ringbuffer position to estimate the clock skew.
|
||
- The channelmixer now has min/max-volume settings to limit or
|
||
fix the volume.
|
||
- The ALSA plugin can now control the playback and capture rate
|
||
of USB gadgets. This can avoid resampling and instead use the
|
||
USB feedback to control the rate.
|
||
- The ALSA output to multiple devices has been improved, some
|
||
lockups are avoided when the device ringbuffer is full.
|
||
- The compress-offload sink has improved negotiation.
|
||
* pulse-server
|
||
- Only try to use GSettings when the schema exists.
|
||
- @DEFAULT_SOURCE@, @DEFAULT_SINK@ and @DEFAULT_MONITOR@ are
|
||
now correctly handled as targets in playback and capture
|
||
streams.
|
||
- 2 new quirks are added to disable volume updates on
|
||
sinks/sources.
|
||
- The virtual-sink and virtual-source modules were added. These
|
||
are really example modules but actually also work and are
|
||
useful on PulseAudio so implement them as well.
|
||
- Fix initial stream volumes.
|
||
* Bluetooth
|
||
- Only register A2DP or BAP when we have codecs.
|
||
- Include codec into the media.name
|
||
* JACK
|
||
- Fix a critical bug that would refuse to update the samplerate
|
||
or buffersize.
|
||
- Improve updates of samplerate/buffersize, delay the updates
|
||
until the client is activated.
|
||
- Use the new mix-info updates to simplify the mixer setup and
|
||
peer detection.
|
||
* GStreamer
|
||
- Fill default strides instead of 0 on pipewire video buffers.
|
||
- Remove patch already included upstream:
|
||
* 0001-jack-update-bufsize-and-samplerate-when-skipping-not.patch
|
||
- Move libjack* conflicts from package pipewire-libjack-0_3 (which
|
||
has coinstallable libraries) to pipewire-jack (which includes
|
||
the ld.so.conf.d file).
|
||
|
||
-------------------------------------------------------------------
|
||
Wed May 31 06:50:17 UTC 2023 - Dominique Leuenberger <dleuenberger@suse.com>
|
||
|
||
- Have pipewire-spa-plugins-0_2 suggest pipewire-libjack-%{apiver_str}:
|
||
this package requires libjack.so.0, so we best use our own
|
||
implementation.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri May 19 17:26:12 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Add patch from upstream to fix JACK buffersize updates:
|
||
* 0001-jack-update-bufsize-and-samplerate-when-skipping-not.patch
|
||
- Create a pipewire-jack package that provides jack-daemon (and
|
||
conflicts with any other) and requires the pipewire-libjack
|
||
library.
|
||
Move the ld configuration from pipewire-libjack, so that only
|
||
pipewire-jack forces PipeWire to be the default JACK.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed May 17 15:18:10 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.71:
|
||
* Highlights
|
||
- A new zero-latency jackdbus bridge was added. This works
|
||
similar to what PulseAudio has to offer and creates a
|
||
sink/source when jackdbus is started. It is however much more
|
||
efficient and runs the complete PipeWire graph as a
|
||
synchronous JACK client with no added latency.
|
||
- Many performance improvements. Activation of remote nodes is
|
||
more efficient, fewer eventfds are required on the clients,
|
||
less callback overhead in performence critical paths and an
|
||
optimized poll function was added. This was mainly driven by
|
||
the jackdbus module to get the lowest possible overhead when
|
||
running the graph.
|
||
- The JACK notify callback implementation was reworked to
|
||
emulate better what JACK does, improving compatibility with
|
||
ardour7 and the JACK stress test.
|
||
- More work on BAP devices. Device latency is now passed on to
|
||
applications also for multi-device headsets, and channel
|
||
allocation is handled better.
|
||
- Many more improvements and bugfixes.
|
||
* PipeWire
|
||
- Remove the hardcoded limit on io_areas. This is used to link
|
||
nodes together and exchange buffers, it was limited to 2048
|
||
but now dynamically scales based on requirements.
|
||
- Rate and quantum changes are now applied correctly in more
|
||
cases. (#3159)
|
||
- Updates to client-node to more efficiently process the
|
||
driver.
|
||
- The profiler information was improved to be more accurate.
|
||
It should now work better for remote drivers.
|
||
- Some potential memory map errors were fixed in the protocol
|
||
because in some case with large messages, some fds were
|
||
closed too soon.
|
||
- pw-filter now implements the pw_filter_set_active() method.
|
||
- A potential out-of-buffers case was fixed in capture
|
||
pw-streams where buffers were not moved to the recycle queue
|
||
when the node suspended.
|
||
- Nodes are now always woken up with the eventfd. Previously
|
||
there were some optimiztions in the server to directly call
|
||
into the node process function but that optimization is not
|
||
necessary. Without this optimization it is now possible to
|
||
run nodes in different threads.
|
||
- pw-stream trigger is now implemented correctly in all cases.
|
||
- Remote nodes now use one eventfd less because they get
|
||
triggered with the node eventfd directly.
|
||
- Monitor ports are now ignored in latency updates.
|
||
- A potential race when reporting an error to a client was
|
||
fixed. (#3192)
|
||
- Fix a bug where always_process nodes would sometimes IDLE.
|
||
(#3189)
|
||
- Optimize peer activation. Nodes are now activated more
|
||
efficiently and independent of the number of links. It also
|
||
reduces the number of eventfds and memory in remote clients.
|
||
- A bug in property serialization was fixed. Values with spaces
|
||
would only serialize the first part of the value.
|
||
* Modules
|
||
- Correctly handle the echo-canceler plugin init method
|
||
fallback. The samplerate was not correctly configured. This
|
||
is only a regression for people that have external
|
||
echo-canceler plugins.
|
||
- RAOP sink now only sets the volume on the remote end when the
|
||
stream is recording. (#3175)
|
||
- RAOP discover now tries to deduplicate entries from the same
|
||
host.
|
||
- A new zero-latency jackdbus bridge was added. This works
|
||
similar to what pulseaudio has to offer and creates a
|
||
sink/source when jackdbus is started. It is however much more
|
||
efficient and runs the complete PipeWire graph as a
|
||
synchronous JACK client.
|
||
- The access module uses a more secure way to check the
|
||
application executable.
|
||
- module-combine-stream now has configurable delay and latency
|
||
for each stream. This can be used to align sinks/sources with
|
||
different latencies.
|
||
- A potential crash in module-pulse-tunnel was fixed when
|
||
shutting down. (#3199)
|
||
- Module-rt will now clamp the nice value to the min allowed
|
||
value to avoid errors from rtkit. (#3186)
|
||
- Fix a bug with the session counters in module-rtp-sap. Also
|
||
use the right format for L24. Improve the AES67 example
|
||
config.
|
||
- Improve some warning and info messages in module-rt. (#3194)
|
||
- module-rtp-session should now do something when started
|
||
without arguments.
|
||
- A potential crash in module-rtp-session was fixed. (#3217)
|
||
- module-filter-chain has better error reporting when a
|
||
convolver fails to load. (#3223)
|
||
* SPA
|
||
- Move some things around to avoid compiler warnings. (#3171)
|
||
- Increase mixer ports. Reorganize some things and bump mixer
|
||
input ports from 128 to 512.
|
||
- Fix a potential crash when a node is scheduled before it
|
||
completes the setup.
|
||
- The JACK sink and source SPA plugins have seen some
|
||
improvements.
|
||
- Allow the peaks resampler still if we disabled resampling.
|
||
- Perform more cleanup in audioadapter when in error.
|
||
- An optimized non-cancellable loop implementation was added.
|
||
- Callbacks were optimized with a _fast() varsion that doesn't
|
||
check the version and method. When this check is performed
|
||
earlier, it can be skipped in performance critical places.
|
||
- Some of the callbacks and system methods are now using the
|
||
fast function calls in critical paths.
|
||
- A potential division by zero was fixed in the ALSA plugins.
|
||
- Improve rate and quantum when starting audioconvert.
|
||
- Make it possible to override node.driver in the SPA
|
||
null-audio-driver. (#3220)
|
||
* pulse-server
|
||
- The audio info parameter parsing was refactored and improved.
|
||
- Fix some races with clients exiting when playing samples.
|
||
- An option was added to change or disable the dbus name
|
||
registration. (#2987)
|
||
* Bluetooth
|
||
- Implement battery reporting using AT+XEVENT.
|
||
- Disable hardware volume for 3M WorkTunes.
|
||
- Implement BAP audio locations (channel positions) by using
|
||
the new bluez properties.
|
||
* JACK
|
||
- Fix some errors reported by JACK test.cpp. (#2638)
|
||
- Add jack.show-midi option to show/hide midi ports.
|
||
- Add jack.max-client-ports option. JACK also has a port limit
|
||
and so PipeWire needs it as well to make the tests happy.
|
||
- Call the shutdown callback only when the server stopped, not
|
||
when there is a random error. (#3070)
|
||
- Avoid registering the same port name twice.
|
||
- Call port registration callbacks in activate/deactivate.
|
||
- Improve jack_port_connected().
|
||
- Improve some error reporting.
|
||
- The JACK headers were updated to a newer version.
|
||
- JACK callbacks are now managed with an event queue to
|
||
simulate more what JACK does. This avoids emiting callbacks
|
||
when a method is blocking for a reply and causing deadlocks.
|
||
(#3183)
|
||
- Assign unique names to JACK clients. (#2833)
|
||
- Fix a potential crash when the thread_utils was used after
|
||
free.
|
||
- Aliases are now not filled in by default to improve JACK
|
||
compatibility. (#3154)
|
||
* ALSA
|
||
- The ALSA plugin will now wait for negotiation to complete or
|
||
an error before _prepare() completes. This makes more
|
||
applications deal correctly with the potential errors.
|
||
* Docs
|
||
- A new document about how scheduling is implemented was added.
|
||
- Update the pw-cli man page. (#2988)
|
||
- Document the SPA Pod serialization.
|
||
- Document the PipeWire native protocol.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue May 2 11:41:03 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Make pipewire-alsa conflict with alsa-plugins-pulse as both
|
||
provide /etc/alsa/conf.d/99-*-default.conf
|
||
- Replace "ffmpeg-5" with the ffmpeg_pref macro.
|
||
- Drop patches already included upstream:
|
||
* 0001-Revert-alsa-mixer-allow-to-re-attach-the-mixer-control.patch
|
||
* 0002-alsa-fix-area-pointers.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Apr 20 15:41:53 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.70:
|
||
* Highlights:
|
||
- Fix a regression in the scheduler that could keep some nodes
|
||
IDLE.
|
||
- Fix a regression in the biquad filters in filter-chain.
|
||
- Fix a regression and potential crash in the ALSA mixer
|
||
probing.
|
||
- Fix a regression in pipewiresrc with timestamps that could
|
||
cause cheese to record video with wrong timestamps.
|
||
- Beamforming support was enabled in the echo-canceler.
|
||
- pulse-tunnel and raop-sink will now proxy local volume
|
||
changes to the remote end.
|
||
- More bugfixes and improvements.
|
||
* PipeWire
|
||
- Fix a bug in the graph scheduler where some nodes might stay
|
||
IDLE in some cases (like when connecting the source of the
|
||
echo-canceler to the sink).
|
||
- pw-metadata can now be created from the factory with initial
|
||
values for the metadata. (#3076)
|
||
- Conditions were added to the pipewire config file to make it
|
||
possible to configure the access module and the exec sections.
|
||
- Support was added in pw-stream to intercept and override
|
||
properties for the adapter. This can be used to implement
|
||
custom volume control, for example.
|
||
* Tools
|
||
- pw-metadata can now list all available metadata objects with
|
||
the -l option.
|
||
- A new pw-config tool was added to debug configuration file
|
||
loading and parsing.
|
||
* Modules
|
||
- The webrtc echo canceler now supports beamforming. You can
|
||
provide the coordinates of the microphones and let webrtc
|
||
perform beamforming on the captured samples to improve
|
||
quality and remove noise.
|
||
- Fix a regression in the filter-chain with biquad filters.
|
||
(#3161) and improve error reporting.
|
||
- The pulse-tunnel will now proxy the volume changes to the
|
||
remote end.
|
||
- The RAOP sink will now send volume parameters to control the
|
||
volume remotely. (#2061)
|
||
* SPA
|
||
- One ALSA commit was not correctly reverted and might cause
|
||
crashes.
|
||
- The ALSA sink and source now calculate the ALSA ringbuffer
|
||
memory location more correctly wich might improve
|
||
compatibility with some hardware.
|
||
- v4l2 now sets the values of the controls in the Props param.
|
||
* Pulse-server
|
||
- The echo-canceler aec_args are now parsed like they would be
|
||
under pulseaudio.
|
||
* Bluetooth
|
||
- More work on synchronizing BAP devices.
|
||
* GStreamer
|
||
- The GStreamer source can now renegotiate the format when it
|
||
changes.
|
||
- The GStreamer source now uses the BaseSrc clocking code to
|
||
implement the clock and timing code.
|
||
- Rebase patch:
|
||
* reduce-meson-dependency.patch
|
||
- Enable the ffmpeg plugin only in TW, since ffmpeg-5-mini doesn't
|
||
seem to be available in Leap/SLE
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Apr 18 20:14:27 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||
|
||
- reenable ffmpeg plugin by building against ffmpeg-5-mini
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Apr 15 10:08:51 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Add patch from upstream for https://bugs.archlinux.org/task/78195
|
||
* 0001-Revert-alsa-mixer-allow-to-re-attach-the-mixer-control.patch
|
||
- Add patch from upstream to fix some potentially broken devices:
|
||
* 0002-alsa-fix-area-pointers.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Apr 14 11:10:46 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Only apply reduce-meson-dependency.patch when meson present
|
||
during build is too old.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Apr 14 08:58:53 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch to build pipewire in Leap 15.4:
|
||
* reduce-meson-dependency.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Apr 13 19:23:05 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.69:
|
||
* Highlights:
|
||
- Reverted the UCM changes, they seem to cause regressions
|
||
causing audio to be muted in some cases.
|
||
- Fix a regression in the scheduler where a driver node might
|
||
not be marked as runnable in some cases, like when
|
||
echo-cancel is used.
|
||
- Handle links from the driver to itself. This makes the midi
|
||
bridge work again.
|
||
- ALSA rate matching for sources was fixed. It would previously
|
||
wait too long for rate matching and then cause drift. This
|
||
should reduce crackling and stuttering whan capturing in
|
||
low latency.
|
||
- Fix the GStreamer clock to make cheese video recording work
|
||
again.
|
||
- More fixes and improvements.
|
||
* PipeWire:
|
||
- Fix a regression in the scheduler where a driver node might
|
||
not be marked as runnable in some cases, like when
|
||
echo-cancel is used.
|
||
- Handle links from the driver to itself. This makes the midi
|
||
bridge work again.
|
||
- Some man pages were improved.
|
||
- Fix a potential crash when thread-loop is destroyed before
|
||
the loop.
|
||
* Modules:
|
||
- A new raw biquad filter was added to filter-chain. You can
|
||
manually set the 6 parameters and you can use this to create
|
||
custom filters per sample rate.
|
||
- The echo-canceller now supports different channels for the
|
||
capture and playback streams.
|
||
* SPA:
|
||
- A SB Audigy specific profile set was added to make better use
|
||
of the controls.
|
||
- More ALSA IRQ based scheduling improvements.
|
||
- ALSA rate matching for sources was fixed. It would previously
|
||
wait too long for rate matching and then cause drift. This
|
||
should reduce crackling and stuttering whan capturing in
|
||
low latency.
|
||
- The echo-cancel plugin API has a new method to make it
|
||
possible to have different channels for capture, source and
|
||
playback.
|
||
- Reverted the UCM changes, they seem to cause regressions
|
||
causing audio to be muted in some cases.
|
||
* Bluetooth:
|
||
- Many more BAP fixes and improvements. Devices are now
|
||
created as a set and can be combined into one device by the
|
||
session manager.
|
||
* GStreamer:
|
||
- Fix the GStreamer clock to make cheese video recording work
|
||
again.
|
||
- Enable gstreamer-device-provider (rh#2183691).
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Apr 6 14:12:51 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.68:
|
||
* Highlights:
|
||
- Symbolic links to the pipewire binary are now used instead of
|
||
recompiling the same binary multiple times.
|
||
- Changes to the graph scheduler related to quantum/rate
|
||
updates and calculation of the node states. Things should
|
||
start and switch between quantums and rates more smoothly now
|
||
and especially virtual devices should now only run when
|
||
required.
|
||
- A new RTP session module was added. This uses the Apple MIDI
|
||
protocol to configure low-latency bidirectional MIDI (and
|
||
with a PipeWire specific extension, also audio) between
|
||
machines. OPUS encoding was added to the RTP formats.
|
||
The SAP module was separated from the rtp-sink/source module
|
||
to make it more usable.
|
||
- A new runtime debug property was added to all streams and
|
||
nodes to trigger a save of the raw samples to a wav file.
|
||
Support for this has also been added to the echo-canceler to
|
||
debug potential issues.
|
||
- Module pulse-tunnel has improved rate matching and
|
||
synchronisation support. It should also not drift anymore for
|
||
capture devices.
|
||
- The link-factory now ignores by default the link.passive
|
||
property. This means that tools like pw-link or jack clients
|
||
and wireplumber can't make passive links anymore. The reason
|
||
is that there is now much more advanced logic in PipeWire
|
||
itself to handle passive links based on node and port
|
||
properties.
|
||
- The RAOP sink was ported to new OpenSSL functions. Digest
|
||
passwords are handled correctly now and support for more
|
||
devices was added.
|
||
- The ACP code was updated with new PulseAudio UCM code:
|
||
"Create multiple profiles per verb for conflicting devices".
|
||
This might change the names of devices, profiles and ports so
|
||
scripts might need to be updated.
|
||
- Upmixing is disabled again by default. We now ship config
|
||
files that distros can install to enable upmixing again. The
|
||
reason being that PipeWire should not apply fancy DSP
|
||
processing to audio by default.
|
||
- Many cleanups and bugfixes, including some crashes and memory
|
||
corruption bugs.
|
||
* PipeWire:
|
||
- Don't crash when calling _connect twice in stream/filter.
|
||
- Links are now installed instead of compiling the pipewire
|
||
binary multiple times.
|
||
- There is now a new core event bound_props that augments the
|
||
bound_id event with the global properties. This can be used
|
||
to get the global.serial among other global properties.
|
||
It also makes it possible in the future to let the server
|
||
allocate unique names or uuids.
|
||
- Fix a bug where the server could go into an infinite
|
||
reconfigure loop when the samplerate of a driver would
|
||
change.
|
||
- When a samplerate was forced, restore the previous best
|
||
samplerate when the samplerate is no longer forced.
|
||
- Rework how the states of the nodes in the graph are
|
||
calculated. A more refined algorithm is now used that only
|
||
runs nodes that need to run.
|
||
- Rework how the quantum change is applied to the graph.
|
||
Drivers are now responsible for using the new updated
|
||
rate/quantum before starting a new cycle. This avoids
|
||
starting a cycle with an old quantum first.
|
||
- pw-stream and pw-filter will now ensure that the Trigger
|
||
event is called from the main thread.
|
||
- node.force-rate=0 will now force the node.rate on the graph,
|
||
forcefully switching the hardware into the new rate if
|
||
possible.
|
||
- Additional checks were added to the thread-loop to check
|
||
locking order.
|
||
- Additional checks were added to pw-stream and pw-filter to
|
||
check if methods are called from the right thread context.
|
||
* modules:
|
||
- A new RTP session module was added. This uses the Apple MIDI
|
||
protocol to configure bidirectional MIDI (or audio) between
|
||
machines.
|
||
- SAP support was removed from module-rtp-source and
|
||
module-rtp-sink and moved to a separate module. This makes it
|
||
possible to use the RTP modules without SAP support as well.
|
||
- The echo-cancel module now has support to save the signals to
|
||
a wav file for debugging purposes.
|
||
- The RTP modules now have support for the OPUS codec.
|
||
- The RAOP module was ported to new openssl encryption
|
||
functions and handles digest passwords correctly now.
|
||
- module-raop-discover now has match rules to be able to select
|
||
the streams and set properties.
|
||
- Module pulse-tunnel has improved rate matching and
|
||
synchronisation support.
|
||
- Fix potential memory corruption and infinite loops because
|
||
module-pulse-tunnel was unloaded from the wrong thread.
|
||
- The link-factory now ignores by default the link.passive
|
||
property. This means that tools like pw-link or jack clients
|
||
and wireplumber can't make passive links anymore. The reason
|
||
is that there is now much more advanced logic in PipeWire
|
||
itself to handle passive links based on node and port
|
||
properties.
|
||
- module-echo-cancel will now clear its buffers after a suspend
|
||
to avoid playing stray samples.
|
||
- module-raop-sink will now handle 0 timing_port replies.
|
||
* SPA:
|
||
- The adapter module now has support for saving the raw audio
|
||
to a wav file for debugging purposes.
|
||
- The ACP code was updated with new PulseAudio UCM code:
|
||
"Create multiple profiles per verb for conflicting devices".
|
||
This might change the names of devices, profiles and ports so
|
||
scripts might need to be updated.
|
||
- Upmixing was disabled again by default. We now ship config
|
||
files that distros can install to enable upmixing again.
|
||
- audioadapter and audioconvert have seen improvements in the
|
||
experimental non-DSP/passthrough mode.
|
||
- Fix a potential race where the dummy drivers could fail to
|
||
stop a timer and cause endless warnings in the logs.
|
||
- The ALSA plugin has experimental support for IRQ based
|
||
scheduling. This should decrease latency for some
|
||
(mostly USB) drivers. This should bring latency within JACK
|
||
latency.
|
||
- Audioconvert now has support for volume ramping.
|
||
- A new loop method was added the check if a thread is
|
||
currently running the loop.
|
||
- channelmix.disable and resample.disable now generate an error
|
||
when true and channelmixing or resampling is required in the
|
||
converter.
|
||
* Bluetooth:
|
||
- Fix a crash in some cases when a device was disconnected.
|
||
- Support async transport state changes. This avoids some
|
||
lockups when the bluetooth backend is having issues.
|
||
- Align BAP sinks. This improves synchronization between
|
||
earpieces.
|
||
* ALSA:
|
||
- Improve properties in pw-top and pavucontrol.
|
||
* pulse-server:
|
||
- Improve error handling from pulse-tunnel.
|
||
- Generate silence correctly for unsigned formats as well.
|
||
- Review buffer params. The streams should now just work with
|
||
1 or 2 buffers.
|
||
- module-rtp-send and module-rtp-recv now have support for the
|
||
OPUS codec.
|
||
* JACK:
|
||
- Make sure we don't call any callbacks anymore when
|
||
deactivating.
|
||
* GStreamer:
|
||
- Sort the device by priority in deviceprovider.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Mar 19 08:51:17 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Add pkgconfig(lc3) BuildRequires, and pass
|
||
bluez5-codec-lc3=enabled to meson.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Mar 9 13:57:10 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Update to version 0.3.67:
|
||
* Highlights:
|
||
- The loopback module and other couples streams will now not
|
||
randomly fail in some cases.
|
||
- The RTP module now has support for sending and receiving MIDI
|
||
as well.
|
||
- The compress offload sink has seen many improvements. It now
|
||
uses ioctls directly to bypass limitations of tinycompress
|
||
(to be able to detect the available codecs, for example).
|
||
- Pulse server compatibility was improved for some apps by
|
||
improving the format parsing and FIX_ stream flag handling.
|
||
- The min quantum in the pulse server was changed from
|
||
256/48000 to 128/48000 to fix some issues with games that
|
||
expect 5ms or less of latency.
|
||
- The Bluetooth plugin has seen many improvements in packet
|
||
scheduling to attempt to reduce stuttering on some devices.
|
||
- The ALSA plugin now handles some impossible cases better.
|
||
This fixes recording in QEMU again.
|
||
* PipeWire:
|
||
- SPDX tags were added to the code for copyright information.
|
||
- The random number functions were made more usable.
|
||
- The port property code was moved from the adapter to the port
|
||
implementation itself to make it more useful and unified for
|
||
the cases where no adapter is used (midi and video).
|
||
- Fix a potential overflow in mixer areas.
|
||
- Improve runnable state calculations of nodes. This is part of
|
||
ongoing work to avoid running nodes that should not need to
|
||
run.
|
||
- The stream will now always call the process function when
|
||
using trigger, even if there are no buffers. This avoids
|
||
stalls of the processing graph in some cases.
|
||
- Links are now marked as passive by PipeWire itself so that
|
||
the right thing happens in all cases.
|
||
- Implement the in/out/true values for the node.passive
|
||
property.
|
||
- Place a passive state on ports to make passive links on a
|
||
port by port basis.
|
||
* Tools: pw-cat has seen improvements in the encoded file
|
||
playback case.
|
||
* Modules:
|
||
- The rtp module has support for MIDI now.
|
||
- DSCP is now configurable in the RTP module.
|
||
- The loopback module doesn't randomly fail to work anymore.
|
||
* SPA:
|
||
- The null-audio sink can now be given a format and it will
|
||
return this instead of the default float ones. This makes it
|
||
possible to make a null-sink that has a given format.
|
||
- The compress offload sink has seen many improvements. It now
|
||
no longer uses tinycompress to be able to detect the
|
||
available codecs.
|
||
- The ALSA plugin now handles some impossible cases better.
|
||
- Fix compilation on older compilers.
|
||
* Pulse-server:
|
||
- The FIX_ flags are now implemented more correctly by fixating
|
||
the stream to the format of the sink/source they ask to be
|
||
connected to.
|
||
- There is now also an option to override the fixation based on
|
||
rules.
|
||
- Format parsing was improved and should now support all format
|
||
strings supported by pulseaudio including upper and lower
|
||
case variants and shortcuts.
|
||
- Channelmap parsing was improved and should now reject invalid
|
||
channelmaps as well as support the shortcuts supported by
|
||
pulseaudio.
|
||
- Escape codes in module arguments now work as it does in
|
||
pulseaudio.
|
||
- The min quantum was changed from 256/48000 to 128/48000 to
|
||
fix some issues with games that expect 5ms or less of
|
||
latency.
|
||
* JACK:
|
||
- jack.passive-links can now be used to have a JACK client make
|
||
passive links and the node.passive property is no longer used
|
||
for this because it has a different function.
|
||
- The qsynth rule was updated to the new node.passive features.
|
||
It is now only passive on the output side.
|
||
* Bluetooth:
|
||
- BAP delay and transport latency are handled now.
|
||
- A2DP and SCO can now use bigger buffers to improve quality
|
||
when the reception is jittery.
|
||
- The AT+BCC command is now implemented.
|
||
- Packet encoding now happens ahead of time when possible to
|
||
avoid delays before sending it.
|
||
- Source should now always produce complete (padded) buffers to
|
||
avoid sync problems.
|
||
- Don't set unnecessary socket options.
|
||
* GStreamer:
|
||
- The pipewiresrc now has an autoconnect argument.
|
||
- The metadata plane count is now handled correctly in more
|
||
cases.
|
||
- Stream errors are now handled correctly to stop the GStreamer
|
||
elements.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Feb 28 13:08:53 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||
|
||
- add a suggests on the pipewire-jack packages to avoid the jack
|
||
versions getting picked for dependency resolution
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 16 13:08:02 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.66:
|
||
* Highlights
|
||
- Fix a regression in the pulseaudio module-combine-stream
|
||
because the new module-combine-stream was not installed.
|
||
- PipeWire can now generate a limits.d config file with our
|
||
recommended settings for priorities and memlock.
|
||
- Modules, exec and objects can now be loaded depending on
|
||
conditions. One example is the X11-bell module that can now
|
||
be disabled with a custom property override.
|
||
- Filter-chain has a new mysofa based spacialiser plugin.
|
||
- Support was added for different clocks that allow the RTP
|
||
modules to work with a PTP clock, for example.
|
||
- Many bugfixes and improvements.
|
||
* PipeWire
|
||
- Avoid rate switches when the graph is idle.
|
||
- The rate selection algorithm was improved. This ensures
|
||
minimal performance and quality loss when resampling.
|
||
- The default min.quantum was set to 32 again after it got
|
||
erronously changed to (the too low) 16 in version 0.3.45.
|
||
- Fix compilation issues with rust bindings because of macros
|
||
in defines. Work around it for now.
|
||
- Invalid file mappings are now refused.
|
||
- Modules, exec and objects can now be loaded depending on
|
||
conditions. One example is the X11-bell module that can now
|
||
be disabled with a custom property override.
|
||
- Filter now also supports _trigger_process() to drive the
|
||
graph.
|
||
- TID is now added to the journald log.
|
||
- PipeWire generates and installs
|
||
`/etc/security/limits.d/25-pw-rlimits.conf` that by default
|
||
contains project's recommended settings. Creation of the
|
||
pipewire group is left to the distro or user
|
||
( `groupadd -r pipewire` ). See the rlimits-* Meson options
|
||
for controlling this behaviour.
|
||
- Additionally there is now by default disabled Meson option
|
||
that will install
|
||
`/etc/security/limits.d/20-pw-defaults.conf` with the current
|
||
Linux default memlock value. Distros with only kernels >=5.16
|
||
or always using systemd v251 or newer do not need this.
|
||
But all other builds should set the
|
||
`-Dpam-defaults-install=true` Meson option to ensure that the
|
||
memlock value is always large enough.
|
||
* modules
|
||
- Install module-combine-stream.
|
||
- RTP source now has support for custom channel names.
|
||
- RTP source will now stop when inactive.
|
||
- Filter-chain has a new mysofa based spacializer plugin.
|
||
- The RTP modules can now use direct clock timestamps to send
|
||
and receive packets. This makes it possible to synchronise
|
||
sender and receiver with a PTP clock, for example.
|
||
- Filter-chain now has an invert plugin to invert the polarity
|
||
of a signal.
|
||
* SPA
|
||
- There is now an option to set the channels used for probing
|
||
Pro Audio devices. This could unlock more samplerates for
|
||
some devices when they are probed with fewer channels.
|
||
- Support was added for other clocks than the MONOTONIC clock
|
||
in the driver nodes. This can be used to synchronise the
|
||
graph to a PTP clock, for example.
|
||
- The ALSA source has some more headroom when rate matching to
|
||
avoid stuttering when following another driver.
|
||
- libcamera controls are now mapped to standard PipeWire
|
||
property values.
|
||
- The channelmixer has seen some improvements.
|
||
MONO and undefined channel layouts are now upmixed and
|
||
downmixed more correctly.
|
||
* Bluetooth
|
||
- Many BAP support fixes.
|
||
* GStreamer
|
||
- The gstreamer elements now support buffer video metadata so
|
||
that strides are correctly handled.
|
||
- pipewiresrc will now error out correctly in more cases.
|
||
* JACK
|
||
- The frame to/from time functions are improved to also work
|
||
with negative time and frame offsets.
|
||
- Drop patches already included upstream:
|
||
* 0001-modules-also-install-module-combine-stream.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jan 26 12:21:31 UTC 2023 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.65:
|
||
* Highlights
|
||
- Add back the deprecated symbols but make sure a deprecated
|
||
warning is emitted for them. This fixes compilation issues in
|
||
bindings.
|
||
- Fix an error in the AVX code that could cause crackling in
|
||
filter-chain when using the mixer.
|
||
- The convolver in filter-chain can now select an IR from a
|
||
list of IRs that best matches the current samplerate. Also
|
||
resampling of the IR has been improved.
|
||
- A new native module-combine-stream was added. You can use
|
||
this to create a 5.1 device from 3 stereo soundcards, for
|
||
example, or direct the output to multiple sinks at once.
|
||
- Support for Bluetooth MIDI was added. This requires a
|
||
wireplumber addition as well.
|
||
- An ALSA plugin rule was added to tweak the buffer settings in
|
||
Davinci Resolve so that it now runs with acceptable latency.
|
||
- Support for compress offload was added using tinycompress.
|
||
This allows compressed formats to be decoded in hardware
|
||
using ALSA on some devices.
|
||
- Many more buffixes and improvements.
|
||
* PipeWire
|
||
- Add back the deprecated symbols but make sure a deprecated
|
||
warning is emitted for them.
|
||
- Fix a regression when running older servers and newer clients
|
||
(such as flatpaks on older server) where the server would run
|
||
clients too soon, causing crashes.
|
||
- Ensure that environment variables override any config values.
|
||
* Tools
|
||
- pw-cli has received some improvements in the output.
|
||
- pw-cat can now use ffmpeg to demux streams for compress
|
||
offload.
|
||
* modules
|
||
- The convolver IR volume is now preserved after resampling.
|
||
- Adapter ports can now have a custom prefix.
|
||
- module-rt now clamps the realtime priority to the user
|
||
allowed one if it is within an acceptable range. Before it
|
||
would fall back to RTKit immediately.
|
||
- The module-echo-cancel can now have per stream channel
|
||
layouts which makes it possible to link to specific audio
|
||
ports on a device.
|
||
- Fix an error in the AVX code that could cause crackling in
|
||
filter-chain when using the mixer.
|
||
- The convolver in filter-chain can now select an IR from a
|
||
list of IRs that best matches the current sample-rate.
|
||
- module-pipe-* now better matches the pulseaudio properties.
|
||
- A new combine-stream module was added to combine multiple
|
||
sinks into one sink. It is also possible to merge multiple
|
||
sources into one.
|
||
- module-rtp-source now has match rules to select what SAP
|
||
sessions to stream from. There were also improvements to the
|
||
buffering and latency handling.
|
||
- module-rtp-sink now handles multicast loopback correctly.
|
||
- module-rtp-sink implements min-ptime and max-ptime to control
|
||
the send packet latency.
|
||
* SPA
|
||
- A new modifier flag was added to the video format parser
|
||
helper to allow 0 (linear) as a valid modifier.
|
||
- Params includes were reorganized to make it more scalable.
|
||
Many compressed audio formats were added.
|
||
- The alsa pcm plugin now handles invalid values from the
|
||
driver gracefully.
|
||
- Fix some potential stuttering cause by wrong scaling and
|
||
overflow of the output buffers in audioconvert.
|
||
- Debug output is now also sent to the log instead of stdout.
|
||
- A debug context was added to debug macros to implement custom
|
||
debug handling. This is used to redirect the debug of pods to
|
||
the debug log instead of using some custom duplicated code.
|
||
- Fix some warnings for potentially undefined shifts in format
|
||
conversion.
|
||
- Support for compress offload was added using tinycompress.
|
||
This is mostly used on some embedded hardware where decoding
|
||
of audio formats can be done in hardware.
|
||
* Bluetooth
|
||
- Some fixes for LE audio were added.
|
||
- Support for Bluetooth MIDI was added. This requires a
|
||
wireplumber addition as well.
|
||
- Reply OK to empty commands.
|
||
- Improve compatibility with some devices that send stray \n
|
||
such as the Sennheiser HD 350BT.
|
||
* pulse-server
|
||
- Devices with unsupported formats (by the pulseaudio API) are
|
||
now also listed in the pulseaudio API (with invalid formats).
|
||
- The native module-combine-stream is used for
|
||
module-combine-sink.
|
||
* JACK
|
||
- Make jack.merge-monitor default to true to better match the
|
||
jack1/2 behaviour. Add an exception for mixxx, which is more
|
||
usable with unmerged monitors.
|
||
* ALSA
|
||
- The property handling in the ALSA plugin was improved.
|
||
alsa.properties and alsa.rules can now be added to the config
|
||
file.
|
||
- A rule was added to tweak the buffer settings in
|
||
Davinci Resolve so that it can run with acceptable latency.
|
||
- ALSA volume will now also use cubic volumes, like pulseaudio.
|
||
- The ALSA ctl plugin now also uses the client-rt.conf file.
|
||
- A new alsa.volume-method was added to configure cubic or
|
||
linear volume.
|
||
This can be set per application using the rules.
|
||
* GStreamer
|
||
- pipewiresrc will now advertise DMABUF support if the pipeline
|
||
supports this.
|
||
- pipewiresrc will now always be a live source unless told
|
||
otherwise.
|
||
- Drop reduce-meson-dependency.patch: openSUSE Leap 15.3 is
|
||
no longer supported.
|
||
- Add patch to install module-combine-stream:
|
||
* 0001-modules-also-install-module-combine-stream.patch
|
||
- Drop patches already included upstream:
|
||
* 0001-cpu-arm-Fix-incorrect-free.patch
|
||
* 0001-alsa-guard-against-some-invalid-values.patch
|
||
* 0001-spa-Fix-audioconvert-overflow-when-scaling.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jan 17 08:28:49 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch from upstream to avoid division by 0 and other issues
|
||
with invalid values (glfo#pipewire/pipewire#2953):
|
||
* 0001-alsa-guard-against-some-invalid-values.patch
|
||
- Add patch from upstream to fix causing an overflow resulting in
|
||
choppy sound in some cases (glfo#pipewire/pipewire#2680):
|
||
* 0001-spa-Fix-audioconvert-overflow-when-scaling.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jan 16 08:21:05 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch from upstream to fix a crash on arm:
|
||
* 0001-cpu-arm-Fix-incorrect-free.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jan 13 07:46:11 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.64:
|
||
* Highlights
|
||
- Clear old buffer memory on ports to fix some SIGBUS errors.
|
||
- It is now possible to assign custom port names to the ports
|
||
from an adapter. This feature is helpful to those who use a
|
||
multichannel interface with long-term connections. This way
|
||
they can label each port with its designation, such as an
|
||
instrument name or anything else to be displayed in a
|
||
patchbay or DAW.
|
||
- Fix some issues with node suspend and quantum and rate
|
||
calculations.
|
||
- Fix some regressions in pulse-tunnel and RTP-source adaptive
|
||
resampling that could cause synchronization problems.
|
||
- UCM devices now also have a Pro Audio profile.
|
||
- NODE_TARGET (with the object.id) is now deprecated, use
|
||
TARGET_OBJECT (with the object.serial, which is not reused
|
||
and can avoid races).
|
||
* PipeWire
|
||
- Clear all peer input port buffers when suspending. This fixes
|
||
some SIGBUS errors when some plugins were using old memory.
|
||
(glfo#pipewire/pipewire#2914)
|
||
- Fix a case where nodes that were not supposed to be
|
||
suspended, were kept suspended on a rate change.
|
||
(glfo#pipewire/pipewire#2929)
|
||
- Fix an error in the quantum and rate calculations that could
|
||
cause nodes to run with wrong quantum and rates when multiple
|
||
rates were allowed. (glfo#pipewire/pipewire#2925)
|
||
* Tools
|
||
- pw-dump will now sort dictionaries to make it easier to
|
||
compare different outputs.
|
||
- Improve output of pw-reserve.
|
||
- pw-loopback uses TARGET_OBJECT so you will need to use the
|
||
serial id (or better the name) as the target instead of the
|
||
object id.
|
||
* modules
|
||
- The filter-chain modules has seen some cleanups, refactoring
|
||
and optimizations in the various DSP functions.
|
||
- The ROC module now supports setting a custom samplerate.
|
||
- ROC 0.2.X is now required.
|
||
- The pulse tunnel and RTP source were not updating the rate
|
||
field correctly which could cause synchronization problems.
|
||
(glfo#pipewire/pipewire#2891)
|
||
- The filter-chain now supports an arbitrary number of control
|
||
properties. (glfo#pipewire/pipewire#2933)
|
||
- It is now possible to assign custom port names to the ports
|
||
from an adapter with the PW_KEY_NODE_CHANNELNAMES.
|
||
- Support was added for capture and playback props in
|
||
echo-cancel. (glfo#pipewire/pipewire#2939)
|
||
* SPA
|
||
- The ACP code now has an option to set the probe samplerate.
|
||
(glfo#pipewire/pipewire#1599)
|
||
- UCM devices now also have a Pro Audio profile.
|
||
- Filtering of Step ranges is now implemented.
|
||
* Pulse-Server
|
||
- The channel-map is now set correctly on the echo-cancel
|
||
module.
|
||
- source_master and sink_master are now correctly handled in
|
||
module echo-cancel.
|
||
- Fix a regression in DRAIN where resuming after a DRAIN would
|
||
fail. This caused problems for espeak.
|
||
(glfo#pipewire/pipewire#2928)
|
||
- TARGET_OBJECT is now used to make it possible to use the
|
||
indexes as a target.
|
||
- ladspa-source and remap-source can now also link to monitors.
|
||
* ALSA
|
||
- The ALSA plugin now handles the target.object correctly when
|
||
set to -1. (glfo#pipewire/pipewire#2893)
|
||
* V4L2
|
||
- The v4l2 replacement library now also follows symlinks.
|
||
- Support for getting and setting controls was added.
|
||
- Support for G_PARM was added.
|
||
- The environment variable PIPEWIRE_V4L2_TARGET can be used to
|
||
force an application onto a specific camera.
|
||
* Bluetooth
|
||
- Fix compilation without ldac_abr.
|
||
- Fix a missing brace in CIND reply. This could cause some
|
||
devices to fail.
|
||
- Fix configuration of the initial latency.
|
||
* GStreamer
|
||
- The device provider now supports setting an fd so that it can
|
||
connect to PipeWire sessions from the portal.
|
||
- DMABuf support was re-enabled in gstpipewiresrc.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
- Remove patches from upstream
|
||
* 0001-pulse-server-add-channel-map-in-echo-cancel-module.patch
|
||
* 0003-bluez5-backend-native-fix-missing-brace-in-CIND-reply.patch
|
||
* 0001-alsa-dont-set--1-as-node.target.patch
|
||
* 0001-modules-fix-rate-update.patch
|
||
* 0001-alsa-fix-memory-leak-of-properties.patch
|
||
* 0001-module-rt-fix-warning-when-xdg-desktop-portal-isnt-running.patch
|
||
* 0001-midifile-error-won-invalid-track-size.patch
|
||
* 0001-impl-node-move-2-state-variables-to-private.patch
|
||
* 0001-context-rename-a-method.patch
|
||
* 0002-impl-node-restore-running-state-after-reconfigure.patch
|
||
* 0001-context-keep-per-node-quantum-and-rate-settings.patch
|
||
* 0001-fix-use_buffers-checks.patch
|
||
* 0001-pulse-server-clear-the-drained-state-correctly.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jan 11 09:44:52 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add several patches from upstream to fix several issues
|
||
(glfo#pipewire/pipewire#2925, glfo#pipewire/pipewire#2928,
|
||
glfo#pipewire/pipewire#2929):
|
||
* 0001-module-rt-fix-warning-when-xdg-desktop-portal-isnt-running.patch
|
||
* 0001-midifile-error-won-invalid-track-size.patch
|
||
* 0001-impl-node-move-2-state-variables-to-private.patch
|
||
* 0001-context-rename-a-method.patch
|
||
* 0002-impl-node-restore-running-state-after-reconfigure.patch
|
||
* 0001-context-keep-per-node-quantum-and-rate-settings.patch
|
||
* 0001-fix-use_buffers-checks.patch
|
||
* 0001-pulse-server-clear-the-drained-state-correctly.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jan 5 20:07:10 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Disable ffmpeg support, only needed for pw-play and pw-record.
|
||
Break a circular dependency with ffmpeg-5. Do this via disabling
|
||
pkgconfig(libavcodec), pkgconfig(libavfilter) and
|
||
pkgconfig(libavformat) BuildRequires as well as passing
|
||
ffmpeg=disabled to meson.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jan 4 11:25:48 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch from upstream to fix pulse tunnel getting out of
|
||
sync/overruns (glfo#pipewire/pipewire#2891):
|
||
* 0001-modules-fix-rate-update.patch
|
||
- Add patch from upstream to fix memory leak of properties:
|
||
* 0001-alsa-fix-memory-leak-of-properties.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Dec 30 13:45:32 UTC 2022 - Predrag Ivanović <predivan@mts.rs>
|
||
|
||
- Ship only X11 bell module in module-x11 sub-package
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Dec 27 20:12:09 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Split the X11 bell implementation into a separate package
|
||
(overlaps with implementations in e.g. Marco).
|
||
- Add patch from upstream to fix a Bluetooth regression
|
||
(glfo#pipewire/pipewire#2898):
|
||
* 0003-bluez5-backend-native-fix-missing-brace-in-CIND-reply.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Dec 19 11:00:49 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch from upstream to remember last routing after a reboot
|
||
(glfo#pipewire/pipewire#2893):
|
||
* 0001-alsa-dont-set--1-as-node.target.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 15 17:37:52 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.63:
|
||
* Highlights
|
||
- Fix a critical bug that causes audio distortion in some cases
|
||
when using AVX2.
|
||
- Fix a crash in mpv caused by deinit of PipeWire.
|
||
- Resample the convolver IR to match the graph samplerate for
|
||
better results.
|
||
- Many more small bugfixes and improvements.
|
||
* PipeWire
|
||
- Fix a segfault in the PipeWire deinit code triggered by mpv
|
||
in some cases.
|
||
- Fix docs about SPA_PLUGIN_DIR.
|
||
- Always dlclose by default (even under valgrind). Add an
|
||
option with PIPEWIRE_DLCLOSE to select alternative behaviour.
|
||
- Improve PIPEWIRE_DEBUG category handling.
|
||
* modules
|
||
- Resample the IR for the convolver when the IR samplerate and
|
||
graph rate don't match.
|
||
* SPA
|
||
- Handle spurious reads from timerfd gracefully.
|
||
- Fix potential stack-use-after-scope when starting Audacity.
|
||
- Fix distorted audio when using AVX2.
|
||
- Remove fallback to default channel map in channelmix.
|
||
- Improve sorting of MIDI events, use the same order as Ardour.
|
||
- Enable LFE downmixing by default.
|
||
- Make IEC958/AC3 and IEC958/DTS work better by enforcing a
|
||
fixed minimal buffering for the encoder to avoid stuttering.
|
||
* Pulse-Server
|
||
- Add a new pulse.cmd config section to execute pulse commands,
|
||
currently only for loading modules. This removes the
|
||
dependency on pactl.
|
||
- Improve debug of messages.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
- Add patch to add channel-map in the echo-cancel module:
|
||
* 0001-pulse-server-add-channel-map-in-echo-cancel-module.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Dec 10 14:04:50 UTC 2022 - Predrag Ivanović <predivan@mts.rs>
|
||
|
||
- Refresh reduce-meson-dependency.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Dec 9 13:25:35 UTC 2022 - Predrag Ivanović <predivan@mts.rs>
|
||
|
||
- Update to version 0.3.62:
|
||
* Highlights
|
||
- A regression in screensharing was fixed. It was caused by a race when
|
||
activating links and driver nodes.
|
||
- Video transform metadata was added so that cameras and screen sharing
|
||
can report the video orientation and transformations.
|
||
- Support for the PulseAudio module-gsettings was added to make paprefs
|
||
work.
|
||
- Support for bluetooth offloading was added. This allows for the bluetooth
|
||
reception, decoding and playback to happen completely in hardware.
|
||
This also requires some support in WirePlumber.
|
||
- Many bugfixes and improvements.
|
||
|
||
* PipeWire
|
||
- More work on stopping nodes in a more controlled way.
|
||
- Fix a race in starting nodes and drivers. In some cases the driver
|
||
node would already be started while the link to the peer node was not
|
||
ready yet. This caused regressions in screen sharing. The driver is
|
||
now only started after all the followers and links completed.
|
||
- Fix a case where a slow capture stream would not recycle buffers
|
||
anymore and stall. (glfo#pipewire/pipewire#2874)
|
||
- Fix a subtle bug in pw_loop_invoke that could cause callbacks to be
|
||
delayed and cause crashes in some cases.
|
||
- Fix a case where IPC was done from the data-thread and could cause
|
||
crashes.
|
||
|
||
* Tools
|
||
- Silence some expected errors in the pw-top output.
|
||
|
||
* modules
|
||
- The filter-chain has seen some optimizations in the copy plugin and
|
||
the convolver.
|
||
- The zeroconf plugin will now only unpublish services from the server
|
||
that was removed.
|
||
- Fix a potential crash when stopping pw-loopback.
|
||
- Some harmless errors were turned into info messages.
|
||
- Fix some cases where pw_stream methods were called from the data-thread
|
||
that could cause segfaults. (glfo#pipewire/pipewire#2633)
|
||
|
||
* SPA
|
||
- There is now a video transform metadata that indicates how a video
|
||
frame was transformed (rotated/flipped). libcamera and the GStreamer
|
||
elements now have support for this metadata.
|
||
- The SPA volume plugin is now disabled from the default build.
|
||
- Handle missing control info in libcamera.
|
||
- Handle errors from loop better, don't call the callbacks on errors.
|
||
- Somewhat improve performance in some audioconvert AVX2 code for format
|
||
conversion.
|
||
- Fix PortConfig and EnumPortConfig params in audioconvert and
|
||
audioadapter to reflect what is actually going on instead of using
|
||
hardcoded values.
|
||
- Pass ignore-dB property correctly in all cases.
|
||
- Probing is now done in 48KHz again. (glfo#pipewire/pipewire#2857)
|
||
|
||
* Pulse-server
|
||
- IPv4 addresses are now added first to the list and exposed first with
|
||
zeroconf discover.
|
||
- module-gsettings was added to make paprefs work.
|
||
- The pulse.idle.timeout option was disabled by default and only enabled
|
||
for selected apps (speech-dispatcher) because it caused some problems
|
||
for other apps. (glfo#pipewire/pipewire#2880)
|
||
|
||
* JACK
|
||
- Only process valid ports. Could fix some crashes. (glfo#pipewire/pipewire#2863)
|
||
|
||
* Bluetooth
|
||
- Support was added for offloading bluetooth handling. Some hardware can
|
||
receive, decode and play the bluetooth audio directly in hardware.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Dec 4 15:48:22 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
|
||
|
||
- Drop dependency on SDL2; this leads to a build cycle with SDL2
|
||
itself, and is only needed for pipewire example code anyway.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Nov 24 22:05:43 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.61:
|
||
* Highlights
|
||
- Fix a bug in audioadapter that could cause crashes when
|
||
switching bluetooth profiles.
|
||
- Fix sound in QEMU, deadbeef and openal again.
|
||
- libcamera plugin fixes, dynamic add and remove should now
|
||
work with the next wireplumber version.
|
||
- Fix a regression in pw-midiplay where the first buffer would
|
||
not play and some events would be missing.
|
||
- The network module now doesn't export other network sources
|
||
anymore.
|
||
- pulse-server now detects clients that keep underrunning for a
|
||
long time and will pause them to save power.
|
||
- Many more bugfixes and improvements.
|
||
* PipeWire
|
||
- Optimise away some useless graph recalculations.
|
||
- Increase alternative sample rates from 16 to 32.
|
||
- Silence some module loading errors when the error can be
|
||
ignored.
|
||
- Fix initial buffer requested size for pw-stream when
|
||
operating in async mode. This also indirectly fixes the first
|
||
buffer in pw-midiplay.
|
||
* Modules
|
||
- Set the network property on pulse-tunnel streams so that they
|
||
are not exported anymore.
|
||
- Filter-chain has optimized mix functions now.
|
||
* SPA
|
||
- Handle some errors in libcamera better.
|
||
- Fix libcamera remove events. Fix the id allocation for
|
||
devices.
|
||
- Fix a bug in audioadapter where it would not renegotiate
|
||
after a port reconfiguration, leading to crashes, especially
|
||
when automatically switching profiles in bluetooth.
|
||
- Do ALSA probing in 44100Hz again. Some devices seem to fail
|
||
otherwise for some unknown reason.
|
||
- Force playback start when the ALSA buffer is full. This fixes
|
||
sound in QEMU.
|
||
- Support Digital 5.1 AC3 for Asus Xonar SE.
|
||
- Improve format renegotiation in audioadapter. This makes the
|
||
ALSA plugin work again for deadbeef.
|
||
- Fix latency reporting on adapter DSP ports.
|
||
* pulse-server
|
||
- Fix a bug where openal based applications would hang.
|
||
- Improve zeroconf publish. Only publish on the address of the
|
||
first running server. This avoids duplicate entries for IPv4
|
||
and IPv6.
|
||
Add support for republish entries when new servers are
|
||
started.
|
||
- Add a pulse.idle.timeout option (default to 5 seconds) to
|
||
pause streams that have been underrunning for this amount of
|
||
time. Badly behaving clients will then not keep the graph and
|
||
device busy so that devices can be suspended to save battery.
|
||
This should give better default behaviour with
|
||
speech-dispatcher.
|
||
* JACK
|
||
- Add an option to configure the filter character.
|
||
- Fix connect_callbacks. It was only called once for output
|
||
ports.
|
||
- Add option to set node.passive on jack clients. Make some
|
||
quirks for qsynth to make it suspend and fade out better.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
- Drop patches already included upstream:
|
||
* 0001-audioadapter-perform-setup-again-after-a-PortConfig.patch
|
||
* 0001-pulse-server-also-advance-read-pointer-in-underrun.patch
|
||
* 0002-audioconvert-redo-setup-when-format-changes.patch
|
||
* 0003-acp-do-probing-in-44100Hz-again.patch
|
||
* 0004-alsa-force-playback-start-when-buffer-is-full.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Nov 17 07:47:37 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch from upstream that fixes audio in qemu where the buffer
|
||
is very small (glfo#pipewire/pipewire#2830):
|
||
* 0004-alsa-force-playback-start-when-buffer-is-full.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Nov 16 11:32:06 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add more patches from upstream to perform setup in more cases:
|
||
* 0001-audioadapter-perform-setup-again-after-a-PortConfig.patch
|
||
* 0002-audioconvert-redo-setup-when-format-changes.patch
|
||
- Renumber patch 0001-acp-do-probing-in-44100Hz-again.patch to
|
||
* 0003-acp-do-probing-in-44100Hz-again.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Nov 16 11:16:01 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch from upstream to fix some devices that don't seem to
|
||
work in 48000Hz:
|
||
* 0001-acp-do-probing-in-44100Hz-again.patch
|
||
- Require pulseaudio-utils from pipewire-pulseaudio to have pactl
|
||
available to load modules.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Nov 10 16:07:42 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.60:
|
||
* Highlights
|
||
- The filter-chain now handles errors better and has fixes for
|
||
many crasher bugs.
|
||
- A new RTP module was added with a sender and receiver.
|
||
It uses SAP to announce and consume RTP streams and is
|
||
compatible with the PulseAudio RTP modules.
|
||
- Many small bluetooth improvements and fixes.
|
||
- The alsa plugin will now only start playback when there is
|
||
data. This results in better synch and lower latency between
|
||
capture and playback.
|
||
- The v4l2 and libcamera plugins have seen a lot of
|
||
improvements. They support control properties now. Also
|
||
pw-v4l2 has seen many improvements and mostly passes the
|
||
v4l2-compliance test now.
|
||
- Many more bugfixes and improvements.
|
||
* PipeWire
|
||
- Code cleanups, compiler warning fixes.
|
||
- Add some extra checks to avoid scheduling an inactive node.
|
||
- Rework the sequence of events to start and stop nodes.
|
||
- Improve param enumeration.
|
||
- An option was added to give priority to the Buffer params of
|
||
the consumer. This makes it possible to use the default
|
||
values of the consumer (instead of the producer) when
|
||
capturing from a source.
|
||
- The graph rate selection was improved to pick a rate closest
|
||
to the requested one (instead of picking the default).
|
||
* Modules
|
||
- Fix some crashes in filter-chain.
|
||
- X11 Bell module will now be loaded by default when available.
|
||
- A new RTP module was added with a sender and receiver. It
|
||
uses SAP to announce and consume RTP streams and is
|
||
compatible with the PulseAudio RTP modules.
|
||
- Improve RAOP compatibility.
|
||
- The echo-cancel module now uses the resampler prefill option
|
||
to align input and output samples without buffering. Better
|
||
latency control when starting and stopping has been
|
||
implemented.
|
||
- The pulse tunnel will now write aligned samples to pulseaudio
|
||
even when the ringbuffer wraps around. This fixes playback
|
||
issues with multichannel sinks.
|
||
- Add a delay option to module-loopback using a ringbuffer.
|
||
- Implement echo-cancel params.
|
||
- The filter-chain module has better error reporting.
|
||
- The LADSPA search path was extended with some more common
|
||
paths.
|
||
- The echo-cancel input can now also be a monitor of a sink.
|
||
This improves compatibility with some proton games that
|
||
expect a real sink instead of a virtual one.
|
||
* Tools
|
||
- Better error reporting in pw-link.
|
||
- pw-top now also shows IEC958 passthrough formats and
|
||
JPEG/H264 video formats.
|
||
- pw-top refreshes the screen faster.
|
||
- pw-top now prints the state of the node and shows less info
|
||
for inactive nodes.
|
||
- pw-dump now uses the new seq field in the spa_param_info to
|
||
discard old param updates and avoid duplicate params in the
|
||
output.
|
||
* Bluetooth
|
||
- Add ModemManager support in the native backend.
|
||
- Clean up GetManagedObjects handling.
|
||
- Handle QoS from the endpoints in the codec.
|
||
- Increase the socket buffer to have more control over the rate
|
||
and QoS.
|
||
- Simplify the packet flushing code.
|
||
- Stop processing nodes before destroying them.
|
||
- Fix timers when a source switches drivers.
|
||
- Codecs can now share endpoints. This reduces the amount of
|
||
endpoints and avoids problems with devices that can't handle
|
||
a large amount of codec endpoints.
|
||
- Report batery status to UPower for HFP AG.
|
||
- Fix bitpool increase.
|
||
* SPA
|
||
- The audioresampler now avoids clicks and pops between
|
||
activating and deactivating the adaptive resampler when used
|
||
by the stream API.
|
||
- Use default locale to parse float parameters.
|
||
- The upmix functions now have SSE optimisations.
|
||
- Avoid recalculating the complete channelmix setup when only
|
||
the volume changes.
|
||
- The alsa plugin will now only start playback when there is
|
||
data. This results in better synch and lower latency between
|
||
capture and playback.
|
||
- The ALSA MIDI sequencer will now pull data from the graph
|
||
even when it did not output anything. Fixes some graph stalls
|
||
with the sequencer in some cases.
|
||
- v4l2 and libcamera sources now recycle buffers when nothing
|
||
is consuming them. This avoids stalling the graph.
|
||
- libcamera now suggests a more appropriate frame size than the
|
||
smallest poster frame.
|
||
- Improve state changes in audioconvert.
|
||
- A new seq field was added to spa_param_info to keep track of
|
||
pending param updates.
|
||
- Support speaker output only on RealTek ALC4080.
|
||
- The v4l2 source now supports setting controls.
|
||
- The libcamera plugin now supports enumerating and setting
|
||
controls.
|
||
- A new unit test for 6.1 channel mapping was added.
|
||
More debug info was added to audioconvert for the channel
|
||
matrix.
|
||
- Audioconvert will now also upmix a rear-center channel when
|
||
needed.
|
||
* pulse-server
|
||
- Add support for the RTP send and recv modules with the new
|
||
native RTP module.
|
||
- Add option to set latency for pulse-tunnel streams and
|
||
module-zeroconf-discover.
|
||
- The socket will now be given the same permissions as what
|
||
pulseaudio did (0777).
|
||
- Implement module-loopback latency_msec correctly with the new
|
||
delay parameter.
|
||
- sysfs.path is now filled with the same data as pulseaudio.
|
||
- The manager now uses the new seq field in the spa_param_info.
|
||
- Fix a bug where in some cases the read pointer would get out
|
||
of synch and cause too large requests.
|
||
* ALSA
|
||
- The alsa plugin now reuses the stream in prepare which
|
||
results in better performance.
|
||
- Some deadlocks have been fixed in the ALSA plugin.
|
||
- The ALSA plugin reports more accurate timing information in
|
||
some cases.
|
||
* V4l2
|
||
- The v4l2 compatibility layer has received a lot of updates.
|
||
- Improved node names and format enumeration.
|
||
- Support for multiple /dev/videoX devices, each mapped to a
|
||
unique PipeWire node.
|
||
- Passes the v4l2-compliance test now with both the v4l2 and
|
||
libcamera backend in PipeWire.
|
||
- Improved mmap support for inline buffer memory.
|
||
This makes it possible to consume PipeWire streams.
|
||
- Negotiation works more reliably now.
|
||
* JACK
|
||
- Implement jack_acquire_real_time_scheduling() and
|
||
jack_drop_real_time_scheduling() by keeping the thread utils
|
||
in a global state.
|
||
- Fix jack_client_thread_id() to return NULL when the client is
|
||
not active, just like jack1 and jack2.
|
||
- An option was added to let the jack_set_buffer_size()
|
||
function update the global metadata. A quirk was added so
|
||
that jack_bufsize uses this new feature to make the buffer
|
||
size settings persistent and global, just like jack.
|
||
- jack_port_register() and jack_port_unregister() can be called
|
||
on an active client so make this thread safe.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
- Drop patches already included upstream:
|
||
* 0001-filter-chain-iterate-the-port-correctly.patch
|
||
* 0002-spa-support-the-speakers-output-only-case-in-report_.patch
|
||
- Add patch to make Telegram playback work again:
|
||
* 0001-pulse-server-also-advance-read-pointer-in-underrun.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Nov 2 12:48:20 UTC 2022 - Takashi Iwai <tiwai@suse.com>
|
||
|
||
- Fix regression with Dell WD15 Dock and others (bsc#1204719):
|
||
0002-spa-support-the-speakers-output-only-case-in-report_.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Oct 8 20:46:58 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Add 0001-filter-chain-iterate-the-port-correctly.patch: Fix
|
||
filter-chain convolver segfault at start.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Oct 1 18:25:10 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.59:
|
||
* Highlights
|
||
- Fix possible wrong samplerate in loopback streams after
|
||
suspend and rate switch.
|
||
- module-filter-chain can now adapt to the graph samplerate.
|
||
- Fix some potential stuttering and crackling in pulse-server.
|
||
- Add Bluetooth LE support. This requires experimental kernel
|
||
and bluez support.
|
||
- The ALSA plugin has more options to control the buffer size.
|
||
This can be used to work around high latency in
|
||
davinci resolve.
|
||
- Many bugfixes and improvements.
|
||
* PipeWire
|
||
- Add audio capture example with volume meter.
|
||
- Fix a case where a rate switch would not suspend all the
|
||
nodes of the driver first. This could cause wrong samplerates
|
||
in streams.
|
||
- Fix a case where a node would be Paused while still added to
|
||
the graph, causing potential crashes.
|
||
* Modules
|
||
- module-filter-chain and module-loopback now use the
|
||
resample.prefill option to avoid buffering extra samples and
|
||
causing unwanted latency when resampling is activated.
|
||
- module-filter-chain can now adapt to the graph samplerate.
|
||
- Improve module-raop to support the ALAC codec as raw PCM.
|
||
- Improve RTSP parsing to improve compatibility.
|
||
* Tools
|
||
- Fix 100% CPU in pw-cli monitor mode.
|
||
- spa-acp-tool can now be exited with ctrl-D.
|
||
* SPA
|
||
- Various libcamera fixes and improvements.
|
||
- Set stride on audioconvert output buffers.
|
||
- Make sure we always place the last requested size from the
|
||
resampler on the buffers in pw-stream.
|
||
- Add resample.prefill option in the resampler to fill the
|
||
history with 0 so that we don't have smaller buffers at the
|
||
start.
|
||
- Make sure that when an overflow corrupts a POD, that it will
|
||
always stay corrupted.
|
||
- Rate limit some ALSA warnings and reduce some unwanted
|
||
warnings.
|
||
- Don't recalculate the audioconverter state for each
|
||
pause/play.
|
||
- Fix some POD parsing inconsistencies and potential overflows.
|
||
- Add support for Asus Xonar SE.
|
||
- Fix Flush command handling. It should not stop playback.
|
||
- Refactor the peaks function and add some unit tests and
|
||
optimisations.
|
||
- The channelmix has an optimized nXm converter and new
|
||
unit tests.
|
||
- Normalisation in the channelmixer was fixed.
|
||
* pulse-server
|
||
- The requested latency of record streams was reduced to fix
|
||
some stuttering in Teamspeak.
|
||
- Tweak the max amount of bytes sent to a client.
|
||
- Improve maxlength calculations, this fixes some crackling
|
||
noise with high samplerate and channel counts in some
|
||
players (audacious).
|
||
* Bluetooth
|
||
- Merge Bluetooth LE support.
|
||
- Make sure we are backward compatible with WirePlumber.
|
||
- Fix some HFP and HSP AT command parsing.
|
||
- Use HFP by default over HSP.
|
||
* ALSA
|
||
- Increase max number of periods.
|
||
- The parameters handling was improved. There is now an option
|
||
to set the buffer-bytes of the ALSA plugin.
|
||
- PIPEWIRE_ALSA can now be used as an environment variable to
|
||
restrict the plugin formats and buffer size.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 15 09:26:22 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.58:
|
||
* Highlights
|
||
- Fix a regression that could cause audio crackling.
|
||
- Fix a regression in RTKit because rlimit was not set
|
||
correctly.
|
||
- JAVA sound applications will now alsa work with the
|
||
pulseaudio-alsa plugin.
|
||
- pw-top will now show the negotiated formats of devices
|
||
and streams.
|
||
- Fix some potential crashes when starting streams.
|
||
- The ALSA plugin has had improved timing reporting and poll
|
||
descriptor handling that should improve compatibility.
|
||
- Many more improvements and bugfixes.
|
||
* PipeWire
|
||
- Avoid scheduling nodes before they are added to the graph.
|
||
This could avoid some crashes when scheduling nodes that
|
||
were not completely started yet. (#2677)
|
||
* Tools
|
||
- pw-top now also shows the negotiated formats of streams and
|
||
devices. (#2566)
|
||
- pw-top prints microseconds as "us" now to avoid unicode
|
||
problems.
|
||
* Modules
|
||
- Fix compilation with newer lv2.
|
||
- Fix setting realtime priority with RTKit, it was not setting
|
||
rlimit correctly and RTKit would refuse to change the
|
||
priority.
|
||
- Fix some playback problems with RAOP sink. (#2673)
|
||
- Filter chain will now warn when a non-existing control
|
||
property is used in the config file. (#2685)
|
||
- Filter chain can now handle control port names with ":"
|
||
in the name. (#2685)
|
||
- The echo-cancel module and interface now has
|
||
activate/deactivate functions to make it possible for plugins
|
||
to reset their state.
|
||
* SPA
|
||
- Make sure audioconvert uses the given channelmap and channels
|
||
for the volumes, even when not negotiated yet. This makes it
|
||
possible to change the volume before the node has been
|
||
negotiated.
|
||
- Refactor the peaks resampler. Fix an error in the SSE code.
|
||
- Fix DSD min/max rates, avoid exposing impossible rates.
|
||
- Set monitor port buffer size correctly. This could cause some
|
||
crackling and hickups. (#2677)
|
||
- Make ALSA sequencer port names unique.
|
||
* Pulse-server
|
||
- Rework the capture buffer attributes to better match
|
||
pulseaudio. This fixes a regression where opening pavucontrol
|
||
could cause crackling. (#2671)
|
||
- Implement TRIGGER and PREBUF methods.
|
||
- Handle clients that send more than the requested amount of
|
||
data. PipeWire will now also keep this as extra buffered data
|
||
like PulseAudio. This fixes JAVA sound applications when they
|
||
are running on top of the PulseAudio ALSA plugin.
|
||
(#2626,#2674)
|
||
- Update the requested amount of bytes more like PulseAudio.
|
||
Fixes stuttering after resume with the GStreamer pulseaudio
|
||
sink. (#2680)
|
||
* ALSA Plugin
|
||
- More debug info was added. The time reporting was improved.
|
||
- The poll descriptor handling was improved, avoiding some
|
||
spurious wakeups. (#1697)
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Sep 2 10:10:53 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.57:
|
||
* Highlights
|
||
- Support masking of conf.d/ files.
|
||
- Use org.freedesktop.portal.Realtime when available. This does
|
||
the correct PID/TID mappings to make realtime also work from
|
||
flatpaks.
|
||
- Fix rate adjustement logic in pulse-tunnel. This would cause
|
||
increasing delays and hickups when using tunnels.
|
||
- Add OPUS as a new vendor codec. Add OPUS-A2DP spec.
|
||
PipeWire can now send and reveive OPUS data over bluetooth.
|
||
- An AAC decoder was added so that PipeWire can now also
|
||
function as an A2DP AAC receiver.
|
||
- Fix some issues where the wrong samplerate was used.
|
||
- Fix rate match for sources. This fixes an error where
|
||
follower sources would generate many resync warnings.
|
||
- Many more bugfixes and improvements.
|
||
* PipeWire
|
||
- Support masking of conf.d/ files.
|
||
- Add some more debug info to memfd.
|
||
- Improve data-loop invoke method. Also flush pending items.
|
||
- Add a filter-chain systemd service file than can be used to
|
||
start custom filters placed in
|
||
~/.conf/pipewire/filter-chain.d/
|
||
- Improve triggered timestamps for remote nodes.
|
||
- Fix some potential cross compilation problems due to wrong
|
||
host_machine.
|
||
- Check return values of pw_getrandom().
|
||
* Tools
|
||
- Updates to pw-cli manpages.
|
||
- Remove the pw-cli dump command. It is mostly implemented as
|
||
part of wpctl status, pw-dump, pw-link, pw-top and others.
|
||
- Clean up resource in pw-cat correctly on errors.
|
||
* Modules
|
||
- Fix compilation of AVB on big-endian.
|
||
Enable AVB only on Linux.
|
||
- Use org.freedesktop.portal.Realtime when available. This does
|
||
the correct PID/TID mappings to make realtime also work from
|
||
flatpaks.
|
||
- Fix compilation of ROC module when headers are missing.
|
||
- Improve some error cleanup paths in protocol-native. Improve
|
||
connect and disconnect.
|
||
- Fix a potential crash in FFT unload in filter-chain.
|
||
- Implement PIPEWIRE_NOTIFICATION_FD for notification when the
|
||
socket is ready.
|
||
- Try to use rtkit if set_nice() fails.
|
||
- Fix rate adjustement logic in pulse-tunnel. This would cause
|
||
increasing delays and hickups when using tunnels.
|
||
- Handle disconnect in pulse-tunnel.
|
||
* Bluetooth
|
||
- Add OPUS as a new vendor codec. Add OPUS-A2DP spec.
|
||
PipeWire can now send and reveive OPUS data over bluetooth.
|
||
- An AAC decoder was added so that PipeWire can now also
|
||
function as an A2DP AAC receiver.
|
||
* SPA
|
||
- Tweak the resampler window function some more.
|
||
- Improve format convert performance in some fallback cases.
|
||
- Fix rounding in format conversion on ARM NEON.
|
||
- Fix libcamera build error.
|
||
- Fix some issues where the wrong samplerate was used.
|
||
- Don't wait for more samples that can fit in the ringbuffer
|
||
in ALSA.
|
||
- Improve buffer size handling in audioconvert, scale the
|
||
buffers based on the rate conversion and make things work
|
||
with really large rate conversions as well.
|
||
- Add more and better debug for ALSA devices.
|
||
- Improve channel mix: Filter FC and LFE when copying from a
|
||
different layout. Implement STEREO from FC. Avoid generating
|
||
REAR from FC in PSD mode.
|
||
- Fix rate match for sources. This fixes an error where
|
||
follower sources would generate many resynch warnings.
|
||
- Improve ALSA format negotiation. If the ALSA node is not
|
||
running and there was a previously configured format, close
|
||
and reopen the device to enumerate and accept all possible
|
||
formats again.
|
||
* ALSA
|
||
- The alsa plugin will now also save the volumes set with the
|
||
control API. This saves the volumes set with alsa-mixer, for
|
||
example.
|
||
* Pulse-server
|
||
- Flatpak apps with devices=all (Zoom) will now be granted
|
||
Manager permissions.
|
||
- Small tweaks to the amount of data sent to clients to work
|
||
around an issue in freerdp.
|
||
* JACK
|
||
- Clean up the transport correctly when closing a client.
|
||
- Match context properties in addition to node properties for
|
||
the jack client rules.
|
||
- Make sure to return an error when disconnected from the
|
||
server.
|
||
- Fix thread cast problem in jack_client_thread_id().
|
||
- Increase jack_client_name_size() length and make sure we have
|
||
space for the \0 byte.
|
||
- JACK clients from the same application will be added to the
|
||
same group so that they share the quantum and rate.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
- Drop patches already included upstream:
|
||
* 0001-avb-fix-compilation-on-big-endian.patch
|
||
* 0002-avb-fix-compilation-on-big-endian.patch
|
||
* 0003-avb-fix-compilation-on-big-endian.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Aug 1 12:07:38 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Recommend pipewire-alsa (instead of alsa-plugins-pulse) from
|
||
pipewire-pulseaudio (boo#1201409)
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jul 19 14:00:39 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.56:
|
||
* Highlights
|
||
- A critical bug that could crash JACK applications was fixed.
|
||
- Some more regressions in audiomixer were fixed. This should
|
||
fix crackling and stuttering in some cases as well as some
|
||
channel mapping regressions.
|
||
- A bug in the alsa plugin was fixed that could cause
|
||
stuttering in VMs.
|
||
- Bluetooth sources should have improved latency and rate
|
||
control.
|
||
- Many more bugfixes and improvements.
|
||
* Modules
|
||
- An experimental AVB module was added. It can expose PipeWire
|
||
as an AVB entity and initiate (broken) streaming between
|
||
entities.
|
||
- module-loopback now handles the cases where the input and
|
||
output channels are different without crashing or producing
|
||
silence.
|
||
- The filter-chain module now correctly calculates the output
|
||
size without crashing in some cases. It also skips invalid
|
||
ports instead of crashing.
|
||
- Handle and report pthread errors better.
|
||
* SPA
|
||
- The resampler qualities were tweaked a little.
|
||
- A bug that would sometimes cut off the last part of a buffer
|
||
was fixed in the alsa plugin. This could cause broken audio
|
||
in VMs.
|
||
- Access to the alsa mixer and devices is now checked more
|
||
thoroughly.
|
||
- The spa-resample tool can now also handle large downsampling
|
||
rates without crashing.
|
||
- Audioconverter now uses rounding for float to int
|
||
conversions, which reduces distortions. Compilation of the C
|
||
subroutines was separated and uses its own optimisation flags
|
||
now.
|
||
- Noise shaping was improved in audioconvert. A new Wannamaker
|
||
3 tap shaper was added.
|
||
- Audioconvert now uses a pattern for generating keep alive
|
||
noise. This should have much less energy and be even more
|
||
inaudible.
|
||
- A channel mapping bug was fixed in audioconvert.
|
||
- The dsp audio mixer would sometimes not mix enough and cause
|
||
dropouts.
|
||
* JACK
|
||
- A critical bug in the mixer was fixed. It would cause most
|
||
JACK applications to segfault at start-up.
|
||
* Bluetooth
|
||
- A new rate control algorithm was implemented for the sources.
|
||
- The media role on HSP/HFP streams is now fixed.
|
||
* Pulse Server
|
||
- Add the resampler delay to delay reporting as well.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
- Drop patches already included upstream:
|
||
* 0001-jack-only-mix-when-we-have-input-to-mix.patch
|
||
* 0002-spa-alsa-udev-Check-accessibility-of-pcm-devices-as-well.patch
|
||
- Add patches from upstream to fix compilation on big endian:
|
||
* 0001-avb-fix-compilation-on-big-endian.patch
|
||
* 0002-avb-fix-compilation-on-big-endian.patch
|
||
* 0003-avb-fix-compilation-on-big-endian.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jul 13 09:20:57 UTC 2022 - Fabian Vogt <fvogt@suse.com>
|
||
|
||
- Add patch to fix audio after tty switching (boo#1201349):
|
||
* 0002-spa-alsa-udev-Check-accessibility-of-pcm-devices-as-well.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jul 12 16:20:23 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.55:
|
||
* Highlights
|
||
- Fix some more critical bugs in the new audioconvert and the
|
||
queueing in pw-stream that causes stuttering and hickups.
|
||
- HFP hardware volumes are now saved and restored.
|
||
- Format conversions and mixing was improved.
|
||
- Small bug fixes and improvements.
|
||
* PipeWire
|
||
- The queueing in pw-stream was improved with support for
|
||
buffer prefetch in asynchronous mode.
|
||
- Add a pw-filter unit test.
|
||
* tools
|
||
- pw-midiplay should now work again after improvements in
|
||
pw-stream.
|
||
* modules
|
||
- The RAOP module was improved to support auth_setup.
|
||
- The RAOP module should now handle timing packets better.
|
||
- Add some more filter-chain examples.
|
||
- The filter-chain now has a separate config file with the
|
||
boilerplate settings. The examples are now just config
|
||
snippets that can be dropped in .conf.d/ directories, such as
|
||
the filter-chain.conf.d/ one.
|
||
- Start suggesting to use target.object instead of node.target
|
||
in docs and examples.
|
||
* SPA
|
||
- Use the cosh window again for the resampler. It should now
|
||
give better resampler quality.
|
||
- Rework the mixer functions. They were rewritten for higher
|
||
precision and better performance. Add unit tests and
|
||
benchmarks.
|
||
- Improve format conversion for 32bits for avoid errors in
|
||
clang because of undefined behaviour at extreme ranges.
|
||
- Fix a bug in audioconvert where it would not consume the
|
||
right amount of samples when the resampler was disabled.
|
||
This could cause skipping and hickups.
|
||
- Fix bug in audioconvert where it would try to convert the
|
||
input samples multiple times, causing strange artefacts when
|
||
upmixing.
|
||
- Be more strict about valid JSON floats.
|
||
- device.vendor.id and device.product.id should now always show
|
||
up in 0xXXXX format and should not be converted to floats in
|
||
pw-dump anymore.
|
||
- Add triangular dither, add unit tests for noise generation,
|
||
add some more optimisations.
|
||
* Bluetooth
|
||
- HFP and A2DP now expose different routes and thus can have
|
||
different volumes.
|
||
- HW Volumes for HFP are now synchronised better.
|
||
Volume changes from HW buttons are now also saved.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
- Add 0001-jack-only-mix-when-we-have-input-to-mix.patch: Fix an
|
||
Ardour start-up crash.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jul 7 08:50:16 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.54:
|
||
* Highlights
|
||
- Some critical bugs in the new audioconvert were fixed. The
|
||
old adapter had internal buffering that was abused in some
|
||
places.
|
||
- The bluetooth sources were rewritten using a ringbuffer to
|
||
make them more reliable to jitter and remove old audioconvert
|
||
behaviour.
|
||
- Many improvements to the audio converter.
|
||
- Native DSD128 and up is now supported by pw-dsdplay.
|
||
* tools
|
||
- Support DSD128 to DSD512 as well by scaling the amount of
|
||
samples to read per time slice.
|
||
* SPA
|
||
- Format conversion is now generated with macros to remove
|
||
duplication of code.
|
||
- 24bits conversions were rewritten to use the generic
|
||
conversion functions.
|
||
- Temporary buffers in audioconvert are now made large enough
|
||
in all cases.
|
||
- Fix draining in audioconvert. This fixes speaker-test.
|
||
- Fix the channel remapping.
|
||
- Audio conversion constants were tweaked to handle the maximum
|
||
ranges and provide lossless conversion between 24bits and
|
||
floats.
|
||
- Vector code and C code are aligned and the unit tests are
|
||
activated again. A new lossless conversion test was added.
|
||
- Fix an underrun case where the adapter would not ask for more
|
||
data.
|
||
- Fix PROP_INFO for audioconvert.
|
||
- Use the blackman window again for the resampler, the cosh
|
||
window has some bugs that can cause distortion in some cases.
|
||
- Add more unit tests for audioconvert. Add end-to-end
|
||
conversion tests.
|
||
- Don't leak memory in format converter.
|
||
* pulse-server
|
||
- Card properties are now also added to sinks and sources,
|
||
just like in pulseaudio.
|
||
- Increase the maxlength size to at least 4 times the fragsize
|
||
to avoid xruns.
|
||
- Fix a race when setting default devices.
|
||
* Bluetooth
|
||
- The source was rewritten to use a ringbuffer. This avoids
|
||
regressions caused by audioconvert.
|
||
- Drop patches already included upstream:
|
||
* 0001-audioconvert-ensure-temp-buffers-are-large-enough.patch
|
||
- Rebase reduce-meson-dependency.patch.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jul 1 14:25:49 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Add a patch from upstream to fix segmentation faults in MPV:
|
||
* 0001-audioconvert-ensure-temp-buffers-are-large-enough.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jun 30 10:40:53 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.53:
|
||
* Highlights
|
||
- The 44.1KHz samplerate was removed again from the defaults,
|
||
it caused all kinds of problems with various hardware.
|
||
- The ALSA plugin should now be able to deal with unsupported
|
||
samplerates and fall back to the nearest supported one.
|
||
- The audioconvert plugin was rewritten to be more maintainable
|
||
and quicker. It also gained support for control ports and
|
||
dithering with optional noise shaping.
|
||
- An impossible buffering situation is avoided in pulse-server
|
||
that would cause some applications (sunshine, ...) to
|
||
stutter.
|
||
* PipeWire
|
||
- 44.1KHz was removed from the allowed rates again. It caused
|
||
all kinds of regressions due to driver bugs and timing issues
|
||
on HDMI.
|
||
* modules
|
||
- filter-chain now does some more error checking and reporting
|
||
to avoid some crashes.
|
||
- filter-chain now supports more channel layouts for input and
|
||
output that does not need to match the plugin layout.
|
||
- Format parsing is now more consistent in the modules.
|
||
* Tools
|
||
- pw-cli can now also work without readline support.
|
||
- pw-cat can now also read multichannel ulaw/alaw/u8/s8.
|
||
* SPA
|
||
- The audioconvert plugin was rewritten. This should make it
|
||
more maintainable. It also fixed some issues such as CPU
|
||
spikes in some cases and crashes in others. The old plugins
|
||
were removed, for a code reduction of some 6000 lines.
|
||
- The audioconvert plugin now supports control ports, which can
|
||
be enabled on nodes in the session manager. This makes it
|
||
possible to control audioconvert properties using timed
|
||
events or midi.
|
||
- NoteOn 0-velocity MIDI events are no longer filtered out.
|
||
This is a valid event, nodes that can't deal with it should
|
||
fix it up themselves. The JACK layer still filters out these
|
||
events by default but this can now be configured with a
|
||
per-client property.
|
||
- The running status on midi events is now disabled to match
|
||
what JACK does.
|
||
- The ALSA plugin will now deal with driver bugs when a driver
|
||
announces support for a samplerate but then refuses to use it
|
||
later.
|
||
- The ALSA plugin has been optimized a little for sample IO.
|
||
- V4L2 now doesn't error when there are no controls.
|
||
- Error handling was improved in the audio converter.
|
||
- The audioconvert plugin now supports rectangular dithering
|
||
and noise shaping.
|
||
- The audioconvert plugin can now insert additional inaudible
|
||
noise that can be used to keep some amplifiers alive.
|
||
- The audioconvert format conversion was changed so that it now
|
||
produces the full 32 bits range in the C fallback conversion
|
||
code as well.
|
||
- The resampler window function was changed to a cosh() window
|
||
function.
|
||
- Vendor and device id are now in hex.
|
||
* pulse-server
|
||
- Tweak the record buffer attributes some more and make sure
|
||
we don't end up in impossible buffering situations.
|
||
Fixes an issue with distorted sound in sunshine.
|
||
- Fix a potential crash when updating the client property list.
|
||
- Some properties on cards were aligned with pulseaudio.
|
||
- Drop patches already included upstream:
|
||
* 0001-settings-remove-44.1KHz-from-allowed-rates-again.patch
|
||
- Rebase reduce-meson-dependency.patch.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jun 22 17:47:19 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch from upstream to remove 44.1kHz from allowed rates.
|
||
This reverts the new behaviour in 0.3.52 which is causing
|
||
problems to too many people (boo#1200760):
|
||
* 0001-settings-remove-44.1KHz-from-allowed-rates-again.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jun 9 15:02:18 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.52:
|
||
* Highlights
|
||
- Add 44.1KHz to allowed samplerates. The server can now switch
|
||
by default between 48KHz and 44.1KHz.
|
||
- Streams now allocate less resources.
|
||
- Fix some bugs that could make the server crash.
|
||
- Bluetooth now supports the LC3plus vendor codec.
|
||
- Many bugfixes and improvements.
|
||
* PipeWire
|
||
- Add 44.1KHz to allowed samplerates.
|
||
- Avoid setting the locale.
|
||
- Avoid use-after-free when destroying a node from
|
||
spa-node-factory.
|
||
- Avoid using reallocarray when not available.
|
||
- Set port alias is not otherwise set.
|
||
* Modules
|
||
- Improve filter-chain parsing and error reporting. Handle
|
||
empty nodes.
|
||
- Handle destroy of globals and factory in most modules.
|
||
- Add refcounts to client and resources to handle destroy of
|
||
the protocol.
|
||
- Handle global node.name in filter-chain and loopback again,
|
||
use it to construct unique stream names.
|
||
- Avoid a wrapped pw-node in the adapter. This reduces
|
||
resources allocated for streams.
|
||
- Fix a crash when module-x11-bell was unloaded.
|
||
- Add a new module-pipe-tunnel that can write/read data from a
|
||
UNIX pipe.
|
||
* Tools
|
||
- Fix DSD playback again in pw-cat.
|
||
- Add -n option to pw-loopback to set node names.
|
||
- Add -P option to pw-cat to pass properties to the stream.
|
||
- Support stdin/stdout in pw-cat.
|
||
- pw-dump now also dumps object removal when monitoring
|
||
* SPA
|
||
- Avoid duplicate param results in pw-dump for ports.
|
||
- Avoid endless loops in audioconvert for badly behaving
|
||
clients.
|
||
- Scale max-error in alsa based on quantum and avoid logging a
|
||
warning when starting.
|
||
- Improve debug of failed format conversion.
|
||
- Handle offset in the audio dsp mixer inputs and clamp to the
|
||
maximum buffer size.
|
||
- Add option to disable locale support for JSON number
|
||
conversion.
|
||
- Add support for Astro A20 Gen2.
|
||
- Fix some of the test sources, the flags were not set
|
||
correctly.
|
||
- Add camera location as property in libcamera and let the
|
||
session manager generate a localised description.
|
||
- Fix some crashes due to wrong vargar types in v4l2 controls.
|
||
- Improve ALSA resync behaviour.
|
||
- Add support for Komplete Audio 6 MK2.
|
||
- Improve loop cancel while iterating.
|
||
- Try not to mix surround channels and AUX channels. Make card
|
||
with many ports look better when not using the Pro Audio
|
||
profile.
|
||
- Vulkan filters were added.
|
||
* Bluetooth
|
||
- Add LC3plus vendor codec.
|
||
- Handle unsupported indicators better.
|
||
- Ensure multiple devices on an adapter use different codecs
|
||
because one endpoint can only be used by one device at a time.
|
||
- Fix bitpool control as a follower.
|
||
- Handle bluetooth errors better.
|
||
- Speed up bluetooth connection by only waiting for the profiles
|
||
supported by the adapter.
|
||
- The dummy AVRCP player is disabled by default because it seems
|
||
to break more devices than it fixes.
|
||
* pulse-server
|
||
- Add initial stream latency property so that devices can be
|
||
started with a resonably accurate latency.
|
||
- Fix ringbuffer underrun case.
|
||
- module-native-protocol-tcp now has a auth-anonymous option to
|
||
give full access to the clients.
|
||
- Report a node as being moved when it is still moving. This
|
||
improves compatibility with pasystray.
|
||
- Avoid overallocating message memory.
|
||
- Don't export NETWORK nodes in zeroconf.
|
||
- Fix stride for TrueHD and DTSHD passthrough.
|
||
- Make sure we don't send too small audio fragments. Fixes
|
||
capture from multiple tabs in Chromium.
|
||
- Rework module handling some more.
|
||
- Use the new native module-pipe-tunnel for pipe-sink and
|
||
pipe-source.
|
||
- Implement the STREAM_MOVED message when a stream got moved.
|
||
- Fix a potential segfault when stopping the server and a TCP
|
||
module as still loaded.
|
||
* ALSA
|
||
- Add support for updating sw_params at runtime, mostly the
|
||
min-avail param.
|
||
- Capture and playback nodes are now assumed to use a different
|
||
clock and will activate the adaptive resampler when linked.
|
||
This assumption is removed in Pro Audio mode. This provide a
|
||
better experience out of the box with most devices.
|
||
* JACK
|
||
- Fix setting properties with PIPEWIRE_PROPS again.
|
||
- Don't use 64 bits atomic operations for sync_timeout.
|
||
- Cleanup in error cases was improved, avoiding some crashes.
|
||
* GStreamer
|
||
- Fix pipewiresink in mode=provide.
|
||
- Share memory into a new buffer in pipewiresrc to avoid buffer
|
||
corruption.
|
||
- Fixes to the source and fd use.
|
||
- It is now possible to set client properties as well.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Apr 28 23:13:59 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.51:
|
||
* Highlights
|
||
- Improve graph reconfiguration.
|
||
- Extra configuration options for streams and filters with
|
||
config rules and environment variable.
|
||
- Improve module-pulse-tunnel latency, stability and error
|
||
recovery.
|
||
- pw-top, pw-cli and pw-link improvements.
|
||
- Fix a channelmixer upmixing clipping issue.
|
||
- The ROC module has seen many improvements.
|
||
- Many more bugfixes and improvements.
|
||
* PipeWire
|
||
- The graph reconfiguration code was reworked:
|
||
* Moved nodes will update the new driver quantum correctly.
|
||
* Inactive nodes are ignored more.
|
||
* Nodes that require a driver are now not scheduled anymore
|
||
when they are passive (unused).
|
||
* Improved performance, the graph is reconfigured with a
|
||
minimal amount of changes.
|
||
- Method and event argument names were improved.
|
||
- A linker garbage collection problem was fixed.
|
||
- Properties on threads are now implemented. Use common code to
|
||
set thread name and add an option to set stack-size.
|
||
- Streams and filters always want a driver now. This makes it
|
||
possible to just link a playback stream to a capture stream
|
||
without a driver and have it work.
|
||
- Streams and filters can now also have rules in the config
|
||
file.
|
||
- Streams, filters, JACK, ALSA and v4l2 now support
|
||
PIPEWIRE_PROPS environment variable to override node
|
||
properties.
|
||
- Add config section extensions. This provides a way for modules
|
||
to have specific config to override the default config.
|
||
- Handle realloc errors better.
|
||
- Improve stream and filter property updates.
|
||
* Modules
|
||
- The pulse-tunnel modules has improved latency management and
|
||
should now work a lot better.
|
||
- Module-loopback, module-echo-cancel, module-filter-chain
|
||
unload the module when a stream is destroyed.
|
||
- Biquads in filter-chain now can have more gain (5->20 dB).
|
||
- Filter-chain now has a builtin delay line filter.
|
||
- Filter-chain can now parse the config key correctly in all
|
||
cases.
|
||
- The ROC sink and source saw many improvements. roc-source is
|
||
now a stream by default that connects to the default sink.
|
||
Both modules will try to set a graph rate. Both modules have
|
||
an option to select the FEC mode.
|
||
The ROC source has lower latency now.
|
||
- Handle realloc errors better.
|
||
* tools
|
||
- pw-cat does not have --list-targets anymore, use one of the
|
||
more advanced and less buggy tools such as wpctl or pw-cli to
|
||
list sinks and sources.
|
||
- pw-top has seen many improvements.
|
||
* It now has some timeouts to reset the node values to their
|
||
default state when unused.
|
||
* The man page was improved.
|
||
* Invalid timings and errors are displayed in a better way.
|
||
- pw-cli and pw-link can now create links between all ports of
|
||
given nodes.
|
||
- pw-cat can now save to other file formats than wav, based on
|
||
the extension of the filename.
|
||
* SPA
|
||
- The resampler now uses a different internal method for
|
||
draining. It can now also handle 0 size buffers as input
|
||
without draining.
|
||
- The channelmixer now uses the front channel averages for FC
|
||
and LFE.
|
||
This avoids clipping and results in much better upmixing.
|
||
- ALSA should now work again on 32 bits. (#2271)
|
||
- The JSON parser now converts escaped unicode correctly to UTF8.
|
||
* bluetooth
|
||
- Codec switch improvements when the device is disconnected.
|
||
* pulse-server
|
||
- There is a new module-roc-sink-input module, the PulseAudio
|
||
equivalent.
|
||
- The ROC source and sink-input module now have a much lower
|
||
latency.
|
||
- The ROC module now has an option to select FEC mode.
|
||
- Playback and record rate adjustements should work now.
|
||
* JACK
|
||
- Remove some useless pthread attributes. This makes JACK work
|
||
in QEMU with sandboxing enabled.
|
||
- The buffer_size callback is now only called when something has
|
||
changed since the last process() callback or get_buffer_size()
|
||
method. This fixes a GStreamer issue and is more in line with
|
||
what JACK does.
|
||
- Fix a potential deadlock when the process thread is doing IPC
|
||
and the IPC thread is blocking on the data thread.
|
||
- Allocation errors in metadata are handled better.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Apr 14 11:26:22 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.50:
|
||
* Highlights
|
||
- pw-stream can now report more timing information and can
|
||
suggest the optimal number of samples to queue for playback.
|
||
- pw-dot now works again.
|
||
- module-pulse-tunnel latency was improved.
|
||
- Wine applications using the JACK backend should no longer
|
||
crash.
|
||
- The channelmixer defaults are improved and the muffled sound
|
||
when playing back 5.1 and 7.1 material has been fixed.
|
||
- Many fixes and improvements.
|
||
* PipeWire
|
||
- pw-stream now places a suggested amount of samples in the
|
||
pw-buffer for playback. This allows you to remove some places
|
||
where spa_io_rate_match was needed to get this information.
|
||
- pw-stream has new API to request a timing update. New fields
|
||
are added in the timing info, such as number of buffered
|
||
samples in the resampler and the number of queued and
|
||
dequeued buffers.
|
||
- pw-stream has support for double controls now. More controls
|
||
are exposed such as the Rate control to do adaptive
|
||
resampling.
|
||
- The thread-utils object was moved to the context to avoid
|
||
some concurrent use cases that caused crashes.
|
||
- Deactivating an exported node/stream will now remove the node
|
||
from the data-thread immediately so that the process function
|
||
will not be called anymore and resources can be safely freed.
|
||
This could fix some of the last remaining crashes when
|
||
streams are stopped.
|
||
- PipeWire will now fail to load a module that tries to
|
||
register the same export type twice instead of silently doing
|
||
the wrong thing.
|
||
* Modules
|
||
- Many modules now use the NODE_WANT_DRIVER instead of the
|
||
pipewire.dummy NODE_GROUP property. This makes it possible to
|
||
use them with any other driver and can avoid resampling in
|
||
some cases.
|
||
- module-pulse-tunnel now uses an adaptive resampler to keep
|
||
the latency under control. Latency should be much better than
|
||
before and stay constant even when there are network delays.
|
||
- There is now an option for packages to disable building the
|
||
RTKit module, which is still built by default for backwards
|
||
compatibility reasons.
|
||
- A leak was fixed in filter-chain.
|
||
- Module node names are now made more unique with the pid.
|
||
* tools
|
||
- pw-cat verbose output has been improved.
|
||
- pw-link now has a man page.
|
||
- pw-reserve now has an -r option to make it issue a
|
||
RequestRelease command on the owner of the device. This makes
|
||
it possible to ask WirePlumber to close and release a device.
|
||
- Fix pw-dot again. It didn't work anymore because of stray
|
||
done events that were emitted to notify the client of object
|
||
serials.
|
||
* SPA
|
||
- The channelmixer now has PSD upmixing enabled again. We used
|
||
the simple upmixing in the previous release but that just
|
||
sounds too awful to be a good default.
|
||
- The channelmixer will not upmix FC and LFE anymore when
|
||
upmixing is explicitly disabled.
|
||
- The channelmixer will only lowpass filter FC and LFE channels
|
||
when they were upmixed.
|
||
- The defaults of the channelmixer were tweaked a little. There
|
||
is now a little bit more bass in the LFE channel and more
|
||
high fequencies in the FC channel when upmixing. Also the
|
||
channel widening has been disabled by default.
|
||
- Locale independent float parsing now uses a more portable
|
||
solution with uselocale.
|
||
- ALSA will now only allocate a buffer size big enough to hold
|
||
4 times the quantum limit instead of as large as possible.
|
||
* pulse-server
|
||
- Internal cleanups in handling of modules.
|
||
- A quirk to force s16 sample formats for teams-insider has
|
||
been added.
|
||
* JACK
|
||
- The data-loop is now started in activate and stopped in
|
||
deactivate.
|
||
This makes the data-loop respect any custom thread functions
|
||
you configure. This also makes Wine apps using the JACK
|
||
backend work.
|
||
- Port sorting was improved/fixed.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
- Require RealtimeKit.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 29 15:09:49 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Reorder BuildRequires and space conditions a bit better in the
|
||
spec file.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 29 07:56:08 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.49:
|
||
* Highlights
|
||
- Sample rate switching should work again.
|
||
- pw-dot can now use the output of pw-dump to render a graph.
|
||
- Bluetooth A2DP streaming was improved that would reduce
|
||
stuttering on some devices.
|
||
- A JACK bug was fixed that would sometimes make it impossible
|
||
to add more tracks in Ardour. (#1714)
|
||
- Many bugfixes and improvements.
|
||
* PipeWire
|
||
- Fix a potential crash when NULL params were configured.
|
||
- Add some simple functional tests to avoid some recent
|
||
regressions. Improve the test framework for this as well.
|
||
- Improvements to the poll loop to avoid some use-after-free
|
||
scenarios.
|
||
- Fix samplerate switching again.
|
||
- setlocale is not called anymore from the pipewire library.
|
||
This should be called by the application. (#2223)
|
||
- pw_init() and pw_deinit() can now be nested and called
|
||
multiple times.
|
||
- pw_stream will now report the resampler delay in the
|
||
pw_time.queued field.
|
||
* modules
|
||
- module-filter-chain now supports arbitrary many properties
|
||
and will use property hints to assign them the right type.
|
||
- The ROC modules now accept a sink/source_properties
|
||
parameter.
|
||
- The module-rt can now also be built without RT-Kit support.
|
||
- module-echo-cancel can now use a fraction to specify the
|
||
delay for more precise control.
|
||
* SPA
|
||
- The channelmixer will now do upmixing by default and will not
|
||
use normalization. It will also use a simple upmixing
|
||
algorithm that duplicates channels by default. A more
|
||
interesting upmix method is also available (PSD) but needs to
|
||
be enabled manually. (#861)
|
||
- Add SSE optimized (de)interleave functions for 32 bits
|
||
samples with and without byteswap.
|
||
- JSON parsing of empty strings will now give an invalid number
|
||
instead of 0.
|
||
- JSON numbers are now parsed and serialized in a locale
|
||
independent way so that , and . are not mixed up.
|
||
- The resampler will now report the resample delay and queued
|
||
samples as the extra delay.
|
||
* tools
|
||
- pw-cat will read more dsf files correctly and will not crash
|
||
at the end.
|
||
- pw-top now has a man page.
|
||
- pw-dot can now use the output of pw-dump to render a graph.
|
||
* bluetooth
|
||
- Improve interactions with oFono.
|
||
- Fix recovery with slow connections.
|
||
- Improve frame size of AptX-ll.
|
||
- A2DP can now use any quantum and will flush packets in
|
||
smaller chunks when needed to adapt. This improves stuttering
|
||
in some cases.
|
||
* pulse-server
|
||
- The server configuration can now be placed in
|
||
pulse.properties section, which also makes it possible to
|
||
have custom overrides.
|
||
- Implement FIX_ flags for capture as well.
|
||
- Small fixes and improvements in module loading.
|
||
* JACK
|
||
- Clear the last error before executing a new action or else we
|
||
could end up with error from a previous action. This causes
|
||
some problems in Ardour where adding a track would fail after
|
||
some time. (#1714)
|
||
- Rebase reduce-meson-dependency.patch.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Mar 3 11:10:53 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.48:
|
||
* Highlights
|
||
- Fix IEC958 passthrough again.
|
||
- Fix pulse-server crashes when playing a sample.
|
||
- Support for more a more advanced upmixing algorithm.
|
||
- filter-chain now supports arbitrary many ports.
|
||
- Fix multichannel support in WINE (with new WirePlumber).
|
||
- Many bugfixes and improvements.
|
||
* PipeWire
|
||
- The work queue is now created in the context so we can fail
|
||
early and avoid further error checking in various places.
|
||
- Fix a potential use after free with threaded loops.
|
||
- The protocol now has a message footer. This is used to pass
|
||
around global state such as the last registered object
|
||
serial number. This can be used to detect when a client tries
|
||
to bind to old (but reused) object ids. This avoids some
|
||
races in the session manager but also when binding objects.
|
||
- The zero-denormals CPU flag is now not touched anymore unless
|
||
explicitly selected by the user. Denormals are avoided in
|
||
filter-chain now in software. If the zero-denormals are now
|
||
only configured in the data thread. This should fix issues
|
||
with luajit.
|
||
- Configuration parsing will not actually fail on errors.
|
||
- pw-top now correctly clips unicode characters.
|
||
- Many places now use a dynamic POD builder to support
|
||
arbitrary large property sets.
|
||
- pw-stream now support PropInfo parameters so that they can
|
||
announce custom properties.
|
||
- Serial number are now also set on metadata and
|
||
session-manager objects.
|
||
* SPA
|
||
- audioadapter is now smarter when trying to fixate the format.
|
||
It will use the PortConfig format to fill in any wildcards.
|
||
This results in the least amount of conversions when the
|
||
stream can handle it. It also is part of a fix (also requires
|
||
a session manager fix) for WINE multichannel support.
|
||
- Fix 5.1 to 2 channels mixing. It was using the volume of the
|
||
stereo pair on all channels.
|
||
- Fix some weird volume issues when a source is capturing and
|
||
channelmixing.
|
||
- Add stereo to 7.1 upmixing.
|
||
- The channelmix parameters can be changed at runtime now.
|
||
- Many improvements to the upmixing algorithms. Rear channels
|
||
are now constructed from the ambient sound and can have delay
|
||
and phase shift applied to them to improve spacialisation.
|
||
The stereo channels can be filtered so that the dialogue is
|
||
more concentrated in the centre channel.
|
||
* modules
|
||
- Module X11 bell received cleanups and improvements.
|
||
- The module now has a private method to schedule unload later.
|
||
This simplifies cleanup in many modules.
|
||
- module-filter-chain now handles arbitrary many ports and
|
||
control ports.
|
||
- Fix a bug in RAOP where it was reading from the wrong port.
|
||
* pulse-server
|
||
- Nodes with the DONT_MOVE property should fail with -EINVAL
|
||
when they are moved.
|
||
- Fix a segfault when playing a sample.
|
||
- The _FIX flags in pulse-server also now ignore the configured
|
||
sample format, just like pulseaudio does.
|
||
- Fix IEC958 passthrough again. It got accidentally broken
|
||
since 0.3.45 with a fix for another issue.
|
||
- Fix module-null-sink device.description.
|
||
* Bluetooth
|
||
- Don't try to connect HSP/HFP when no backend is available.
|
||
- Drop patches already included upstream:
|
||
* 0001-revert-loop-remove-destroy-list.patch
|
||
* 0002-pulse-server-free-pending-sample-reply.patch
|
||
- Rebase reduce-meson-dependency.patch.
|
||
- Enable pulseaudio-setup use on openSUSE Leap 15.4.
|
||
- Some spec clean-up.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Feb 21 12:24:26 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Add 0001-revert-loop-remove-destroy-list.patch: fix MPD crash.
|
||
- Add 0002-pulse-server-free-pending-sample-reply.patch: fix
|
||
"fast volume change".
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Feb 18 14:06:20 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.47:
|
||
* Fix a bug in pulse-server that caused cached notifications to
|
||
play multiple times.
|
||
* Remove a check and warnings to catch leaked listeners on the
|
||
proxy. This might access invalid memory and cause infinite
|
||
loops in older wireplumber.
|
||
- Rebase reduce-meson-dependency.patch.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 17 10:42:44 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.46:
|
||
* Highlights:
|
||
- Fix a critical bug in pipewire-pulse buffer size handling
|
||
that made some apps (MuseScore, ... ) stutter.
|
||
- Fix a critical bug where devices would not show when the
|
||
kernel was compiled without VERBOSE_PROCSFS.
|
||
- JACK clients will now use lock-quantum by default. This
|
||
makes sure that all dynamic quantum changes are disabled
|
||
while a JACK app is running. The only way to force a
|
||
quantum chance is through a JACK app or with the metadata.
|
||
- Almost all limits on number of ports, clients and nodes are
|
||
removed.
|
||
- A Dummy fallback sink is now automatically created when
|
||
there are no other sinks. This avoids stalling browsers.
|
||
- Sound sharing with Zoom should work better. A new WirePlumber
|
||
release might be required.
|
||
- Many more fixes and improvements.
|
||
* PipeWire
|
||
- Update docs with new config overrides.
|
||
- The rule matching logic was moved to config and code is now
|
||
shared with pulse-server and JACK.
|
||
- Add new Romanian translation.
|
||
- When a quantum is forced with metadata, any node that asked
|
||
to lock-quantum is ignored so that the quantum change can
|
||
happen.
|
||
- Fix a bug where a mixer was removed twice, leading to
|
||
potential memory corruption.
|
||
- The port limits on nodes and filters are now removed.
|
||
Some code was simplified.
|
||
- Fix a potential leak because listeners where removed while
|
||
they could be emitted.
|
||
- Improve context.exec and avoid zombie processes.
|
||
* Modules
|
||
- The RAOP module now has a default latency of 2 seconds,
|
||
like PulseAudio.
|
||
- The echo-cancel module now uses the plugin loader to load
|
||
the backends. This makes it possible to add custom, out of
|
||
tree, echo cancel plugins.
|
||
* Tools
|
||
- Improve help of pw-link.
|
||
- Output to stdout and error to stderr. Use setlinebuf for
|
||
stdout to improve piping between apps. (#2110)
|
||
* SPA
|
||
- Improve removing sources when dispatching. Also improve
|
||
performance now that a destroy loop can be removed. (#2114)
|
||
- Fix an fd leak in the logger when logging to a file.
|
||
- Improve loop enter/leave checks and support recursive loops.
|
||
* pulse-server
|
||
- Clamp various buffer attributes to the max length. Fixes some
|
||
issues with various applications. (#2100)
|
||
- Module properties are now remapped correctly from their
|
||
pulseaudio variant to the PipeWire ones.
|
||
- Fix module index in introspect. Use the right index when
|
||
loaded from our internal modules. (#2101)
|
||
- Improve argument parsing and node.description. (#2086)
|
||
- The sink-index should now be filled in correctly when playing
|
||
a sample. (#2129)
|
||
- module-always-sink is now implemented and loaded by default.
|
||
(#1838)
|
||
- Add support for loading some modules only once.
|
||
- Module load and unload now does extra sync to make it appear
|
||
synchronous, like in PulseAudio. This improves sounds sharing
|
||
in Zoom.
|
||
* ALSA
|
||
- Fix critical bug where alsa devices would not show when the
|
||
kernel was compiled without VERBOSE_PROCFS.
|
||
- Some corner cases were fixed in the ALSA timing code. When
|
||
the capture node is follower, it will now not try to read too
|
||
much data and xrun but it will instead produce a cycle of
|
||
silence.
|
||
- Various fixes and improvements to make ALSA devices resync to
|
||
the driver more quickly and accurately.
|
||
* JACK
|
||
- Add an option to name the default device as system to improve
|
||
compatibility with some applications,
|
||
- Use lock-quantum by default. This makes sure that all dynamic
|
||
quantum changes are disabled while a JACK app is running. The
|
||
only way to force a quantum chance is through a JACK app or
|
||
with the metadata.
|
||
- It is now possible to do IPC calls from the data thread. Note
|
||
that this is a very bad idea but required for compatibility
|
||
with JACK2.
|
||
* GStreamer
|
||
- GStreamer sink will now set a default channelmap to make it
|
||
possible to remap to the channel layout of the device.
|
||
- Update patch for further uses of "new" meson features used by
|
||
upstream:
|
||
* reduce-meson-dependency.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Feb 15 09:47:31 UTC 2022 - Alois Wohlschlager <alois1@gmx-topmail.de>
|
||
|
||
- Run ldconfig for pipewire-libjack-0_3
|
||
* The JACK libraries are made available system-wide using
|
||
/etc/ld.so.conf.d. Hence, ldconfig should be run to make sure
|
||
the dynamic linker picks them up.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 3 11:56:13 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.45:
|
||
* Highlights
|
||
- Zoom, telegram and other apps should be able to play sound
|
||
again.
|
||
- Implement a better way to force and lock JACK buffersize.
|
||
- Default sink and source names and properties are improved.
|
||
- The config loader can now load and merge fragments in conf.d
|
||
directories for easier user configuration of config files.
|
||
- Many small bug fixes and improvements.
|
||
* PipeWire
|
||
- pw-cli can now also send Commands to nodes. This can be used
|
||
to Suspend a device, for example.
|
||
- The eventfd was removed from loops and invoke is now used to
|
||
stop the loop, this saves an fd.
|
||
- New Alpine CI target to test musl builds, various build
|
||
fixes.
|
||
- Add force-quantum and force-rate properties.
|
||
- The config loader can now load and merge fragments in conf.d
|
||
directories. (#207)
|
||
- resource error methods can be called without a resource and
|
||
then just log an error message.
|
||
- link-factory can now also work from the config. (#2095)
|
||
* modules
|
||
- module-simple-protocol has better argument parsing and can
|
||
handle channelmap now. (#2068) It's also possible to
|
||
configure latency and rate.
|
||
- The native protocol now does extra checks for invalid data.
|
||
(#2070)
|
||
* ALSA
|
||
- TI2902 chips as found in various Behringer cards should have
|
||
inputs again.
|
||
- Better handling of busy devices in udev, retry when the
|
||
inotify close event is emited.
|
||
* SPA
|
||
- plugins now handle alignment properly and only expect the max
|
||
alignment required for the CPU. (#2074)
|
||
* Bluetooth
|
||
- SBC-XQ is now enabled for the JBL Endurance RUN BT headset.
|
||
- Support for non-hexadecimal XAPL version strings to improve
|
||
compatibility.
|
||
- Use HCI commands again to probe the adapter msbc capability.
|
||
This improves compatibility with some adapters. (#2030)
|
||
- Set the right startup volume.
|
||
- Better A2DP source idle handling.
|
||
- Fix a timer bug in SCO sink that could cause busy looping.
|
||
* pulse-server
|
||
- A playback issue when the tlength > maxlength was fixed.
|
||
(#2069) This affected Zoom and other applications.
|
||
- The STREAM_BUFFER_ATTR command is now implemented.
|
||
- Module names are improved. (#2076)
|
||
- Many small fixes and improvements.
|
||
- Fix a pavucontrol crash with invalid channels. (#1442)
|
||
* JACK
|
||
- Use the new force-quantum and force-rate properties in the
|
||
JACK API to switch quantum and ensure it can't change for
|
||
the lifetime of the JACK app. (#2079)
|
||
- Rebase patch:
|
||
* reduce-meson-dependency.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Feb 1 14:23:13 UTC 2022 - Dario Faggioli <dfaggioli@suse.com>
|
||
|
||
- pipewire should be a true dependency, not just recommended (e.g.,
|
||
so that any setup that use no-recommends, like MicroOS, also work)
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jan 27 14:04:28 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch to reduce the meson requirement so we can build
|
||
pipewire with Leap 15.3. This will be dropped as soon as
|
||
Leap 15.4 is released or if it becomes too hard to maintain
|
||
(whatever happens before):
|
||
* reduce-meson-dependency.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jan 27 10:45:39 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||
|
||
- Update to version 0.3.44:
|
||
* Highlights:
|
||
- It is now possible to run a minimal PipeWire server without a
|
||
session manager, enough to run JACK clients.
|
||
- The maximum buffer size is now configurable and can be larger
|
||
than the previously hardcoded limit of 8192 samples.
|
||
When using high sample rates, the larger buffer size can
|
||
avoid xruns.
|
||
- The default maximum latency was reduced from 170ms to 42ms.
|
||
This should improve overall latency for application that ask
|
||
for a large latency, such as notifications.
|
||
- Better JACK compatibility. Patchbays should now get less
|
||
confused about ports appearing and disappearing.
|
||
- Fix some bluetooth crashes.
|
||
- Fix some races in ALSA device detection.
|
||
- Many bug fixes and improvements all over the place.
|
||
* PipeWire:
|
||
- Bump the meson requirement to 0.59.0.
|
||
- pw-top now reports correct times for filter-chain and
|
||
loopback.
|
||
- max-quantum is now also scaled with the rate. A new
|
||
quantum-limit property was added as a hard limit for the
|
||
quantum. This makes it possible to configure for larger than
|
||
8192 buffer sizes. Note than many JACK applications have a
|
||
hardcoded 8192 limit.
|
||
- The max-quantum was reduced to 2048, This gives a 42ms
|
||
default latency.
|
||
- pw-filter can now return a NULL buffer from _get_dsp_buffer()
|
||
- Add a PIPEWIRE_RATE and PIPEWIRE_QUANTUM env variable to set
|
||
the graph rate and the graph quantum and rate respectively.
|
||
- Fix a potential file descriptor leak in the connection.
|
||
- A new minimal.conf file was added to demonstrate a static
|
||
setup of a daemon that doesn't require a session manager and
|
||
is able to run JACK applicaions.
|
||
- Nice levels are now only changed on the servers, not the
|
||
clients.
|
||
- Add an option to suspend nodes when idle.
|
||
- Make it possible to avoid quantum and rate changes with
|
||
pw-metadata. This is essential in a locked down system.
|
||
- Handle mixer port errors better and fail to create the link
|
||
instead of silently not working.
|
||
- Nodes that are moved to a driver now have all the linked
|
||
nodes moved as well. This makes it possible to run some
|
||
graphs without a driver, such as paplay -> zita-j2n.
|
||
- pw-cli and pw-dump can now also list objects by name, serial
|
||
and object.path using glob style pattern matching.
|
||
* modules:
|
||
- filter-chain can now also configure parameters by index.
|
||
- Fix the client name of module-protocol-simple.
|
||
- module-rtkit was merged into module-rt. This makes it easier
|
||
to ship a default config that works on more systems by
|
||
default.
|
||
- module-adapter can now configure the adapter node from the
|
||
config. Previously, this was a task only performed by the
|
||
session manager.
|
||
- module-metadata can now also create metadata object from the
|
||
config file.
|
||
- The ROC module should now work again.
|
||
- An X11-bell module was added to handle X11 bell events.
|
||
- filter-chain and loopback modules now have better unique
|
||
default names for the streams, which makes it possible to
|
||
save and restore their volumes independently.
|
||
- module-echo-cancel now has properties to control the delay
|
||
and buffer size.
|
||
* ALSA:
|
||
- The monitor names are now correctly parsed.
|
||
- The default period size for batch devices is limited now to
|
||
avoid large latency.
|
||
- The unused min/max-latency properties were removed.
|
||
- Internal latency is now also configurable with params at
|
||
runtime.
|
||
- The udev rule for TI2902 was removed because it causes
|
||
problems.
|
||
- Fix a race where some devices would sometimes be missing.
|
||
- Add some more timeouts to work around a race in udev device
|
||
permission changes when switching VTs.
|
||
* SPA:
|
||
- Fix potential infinite loop in audioconvert.
|
||
- The spa-resample tools can now also use optimised
|
||
implementations.
|
||
- Fix a potential crash in resampler.
|
||
- audioconvert can now also handle F64 formats.
|
||
- The channelmixer now does normalization by default to avoid
|
||
clipping when downmixing is active.
|
||
- The channelmixer will now generate LFE channels when the
|
||
lfe_cutoff frequency is set, even when upmix is disabled.
|
||
- The channelmixer will now always generate FC when the target
|
||
has it.
|
||
- Adapter now reports latency correctly, even after linking the
|
||
monitor ports.
|
||
- Reduce memory usage and preallocated memory in some of the
|
||
audioconvert nodes.
|
||
- Many properties are now exposed in adapter, such as the
|
||
resample quality.
|
||
- The resampler and channelmixer can now be disabled.
|
||
* V4L2:
|
||
- pw-v4l2 now also works for ffplay.
|
||
- Take product names from udev now that the kernel returns
|
||
generic name.
|
||
* JACK:
|
||
- The jack pkgconfig file now has the
|
||
jack_implementation=pipewire variable to be able to
|
||
distinguish jack implementations.
|
||
- jconvolver now starts correctly again.
|
||
- The object.serial is now used for the port_id. This makes it
|
||
easier to track old objects in the cache.
|
||
- Add a dummy jacknet implementation.
|
||
- A bug in the port allocation was fixed that would make it
|
||
impossible to allocate ports at some point.
|
||
* Bluetooth:
|
||
- Bluetooth profiles are now saved properly by the
|
||
session manager.
|
||
- Improved profile detections, increased timeouts for slow
|
||
devices.
|
||
- Implement HFP call indicator for improved compatibility.
|
||
- Handle the case where bluez does not set the adapter or
|
||
address properties on the device instead of crashing.
|
||
- Improved support for setting the profile from the
|
||
session manager.
|
||
* pulse-server:
|
||
- Monitor sources now have the device.class=monitor for better
|
||
compatibility.
|
||
- Behaviour after seeking is improved. The algorithm for
|
||
requesting bytes from the client was simplified and improved.
|
||
- module-ladspa-sink implements the control argument now.
|
||
- A potential memory leak in the message queue was fixed.
|
||
- Use the object.serial for the pulseaudio object index. The
|
||
index is not supposed to be reused and this would cause
|
||
problems with some clients.
|
||
- Servers should now again be able to listen in IPv4.
|
||
- module-x11-bell was added.
|
||
- There is now support for per-application quirks and
|
||
properties in the pipewire-pulse.conf file. Per-application
|
||
latency and buffering properties can also be configured.
|
||
- Fix a regression in telegram sounds not playing.
|
||
- Drop patches already included upstream:
|
||
* 0001-alsa-improve-rate-selection.patch
|
||
* 0001-audioconvert-avoid-infinite-loop.patch
|
||
* 0001-bluez5-dont-create-device-if-adapter-is-missing.patch
|
||
* 0001-bluez5-handle-missing-device-and-adapter-in-quirks.patch
|
||
* 0001-jack-remember-last-return-from-jack_get_buffer_size.patch
|
||
* 0001-loop-invoke-immediately-when-loop-is-not-running.patch
|
||
* 0001-merger-also-reconfigure-when-monitor-changes.patch
|
||
* 0001-pulse-server-show-monitor-sources-with-device_class_monitor.patch
|
||
* 0001-pw-metadata-handle-NULL-props-from-metadata-object.patch
|
||
* 0001-raop-fix-errno-check.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jan 19 16:49:42 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add several more patches from upstream
|
||
- BlueZ may be missing adapter information for devices in some cases.
|
||
Ignore devices without specified adapter:
|
||
* 0001-bluez5-dont-create-device-if-adapter-is-missing.patch
|
||
- Fix a case when pipewwire could never call callbacks or even
|
||
block forever when loop is not running:
|
||
* 0001-loop-invoke-immediately-when-loop-is-not-running.patch
|
||
- Reconfigure when monitor changes
|
||
* 0001-merger-also-reconfigure-when-monitor-changes.patch
|
||
- Handle NULL props from metadata object
|
||
* 0001-pw-metadata-handle-NULL-props-from-metadata-object.patch
|
||
- Improve rate selection so we don't select an invalid rate when
|
||
the default is set or the card is already opened in an
|
||
unsupported rate:
|
||
* 0001-alsa-improve-rate-selection.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jan 14 16:34:05 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add several patches from upstream
|
||
- Avoid an infinite loop when enumerating params of the converter:
|
||
* 0001-audioconvert-avoid-infinite-loop.patch
|
||
- When the device or adapter is NULL, skip the quirk checks instead
|
||
of crashing:
|
||
* 0001-bluez5-handle-missing-device-and-adapter-in-quirks.patch
|
||
- Remember the last returned value from jack_get_buffer_size and
|
||
only emit a buffersize change event when something new is
|
||
configured. This fixes startup of jconvolver.
|
||
* 0001-jack-remember-last-return-from-jack_get_buffer_size.patch
|
||
- Better emulation of pulseaudio which shows monitor sources with
|
||
device.class=monitor so now pipewire does that too:
|
||
* 0001-pulse-server-show-monitor-sources-with-device_class_monitor.patch
|
||
- Fix an errno check:
|
||
* 0001-raop-fix-errno-check.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jan 12 12:48:21 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Added more baselibs packages and their dependencies
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jan 5 16:23:30 UTC 2022 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Update to version 0.3.43:
|
||
* Highlights:
|
||
- Flatpak apps such as Ardour can now remove links again.
|
||
- Many fixes to pulse-server. Memory usage should be improved.
|
||
Some crashes are fixed. Underrun handling should work better.
|
||
Better compatibility with GStreamer based applications after
|
||
seeking.
|
||
- Many of the samplerate and quantum changes bugs in previous
|
||
releases were fixed. This fixes some issues where the
|
||
microphone would fail to work.
|
||
- Many more small fixes and improvements all over the place.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 16 16:42:31 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Revert the merge of spa-plugins and modules into the library
|
||
package.
|
||
- Move some of the files between packages where they make more
|
||
sense.
|
||
- Rename the modules subpackage to modules-%{apiver_str} so
|
||
it can be versioned more easily (there still are some unversioned
|
||
files in the package, but it's a step in the right direction)
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 16 14:03:56 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Remove unneccesary Conflicts with packages that are Obsoleted
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 16 12:32:49 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.42:
|
||
* Highlights
|
||
- Fixes a bug in pulse-server underrun handling that broke qemu
|
||
and orca.
|
||
- A fix was added to pulse-server to handle quantum changes
|
||
gracefully.
|
||
- Fix module-echo-cancel again.
|
||
- Fix a bug where the bluetooth headset capture was producing
|
||
noise.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Dec 15 13:28:10 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Remove the dependency on wireplumber-audio which was pulling in
|
||
pulseaudio. We'll require wireplumber-audio directly from
|
||
wireplumber.
|
||
- Remove pipewire-rpmlintrc since the filters don't apply anymore
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Dec 15 13:27:44 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Merge the pipewire-spa-plugins-0_2 and pipewire-modules
|
||
packages into the libpipewire package just as the fedora packages
|
||
do and simplify the filelist a bit by using some recursive
|
||
listing instead of explicitly listing all files.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Dec 13 10:33:29 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Use the gcc9-c++ compiler in SLE/Leap so it builds successfully.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Dec 13 09:45:21 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.41:
|
||
* Highlights
|
||
- Improved compatibility for flatpaks. Flatpaks with newer
|
||
PipeWire version can connect to an older server in all cases.
|
||
- A new RAOP module was added to stream to Apple Airplay
|
||
devices.
|
||
- OBS can now capture from the monitor devices again when using
|
||
WirePlumber.
|
||
- Improved JACK compatibility. Improved stability in Carla and
|
||
Ardour when changing buffer size. Improved latency
|
||
calculations and playback latency in Ardour.
|
||
- Improved pulse-server handling of underruns and buffer size
|
||
changes.
|
||
- Many bugfixes and improvements.
|
||
* PipeWire
|
||
- The systemd service files now have better names.
|
||
- client.access permission checks are improved.
|
||
- Fix some memory leaks in error paths.
|
||
- Objects now have a global serial number that is unique for
|
||
the lifetime of the server.
|
||
- Make clock.rate, clock.allowed-rates and clock.quantum
|
||
runtime tunable parameters with the settings metadata.
|
||
- Add some additional memory checks in client-node to avoid
|
||
sending invalid memory to clients. (#1859)
|
||
- Improve buffer memory allocation. If one of the nodes is a
|
||
remote node, ensure we only use memory that can be shared.
|
||
- Version checks when binding to objects is removed. This means
|
||
that newer clients can now bind to older servers, which is a
|
||
typical case for a flatpak.
|
||
- A bug in the latency calculations was fixed where it would in
|
||
some cases report the wrong minumum latency.
|
||
* modules
|
||
- module-echo-cancel has voice-detection enabled now.
|
||
- module-raop-sink and module-raop-discover to stream audio to
|
||
an Apple Airplay device.
|
||
- module-filter-chain now has preliminary support for LV2
|
||
plugins.
|
||
* SPA
|
||
- The audio resampler now has improved buffer size
|
||
calculations. In some cases it was too small and would cause
|
||
distortions.
|
||
- More checks are done when doing volume changes so that the
|
||
channelmap is correct.
|
||
- Audioadapter now exposes most config options with params so
|
||
that they can be adjusted at runtime.
|
||
- The resampler can now calculate the expected input buffer
|
||
size before receiving the first buffer, which avoids some
|
||
confusion when starting streams.
|
||
- Support was added for some 10bit video formats.
|
||
- MONO channel handling was improved.
|
||
- Most plugins now set a clock name and this is configurable
|
||
where it makes sense. The clock.system.monotonic clock name
|
||
is used for most plugins that use the system clock for
|
||
timing.
|
||
* pulse-server
|
||
- implement module-raop-discover
|
||
- Use STREAM_CAPTURE_SINK property when capturing from a
|
||
monitor source to better inform the session manager. This
|
||
fixes some issues where OBS would capture from the
|
||
microphone instead of the output monitor.
|
||
- Limit the amount of cache messages to 16MB and don't add
|
||
large memory blocks to the cache. This should fix some
|
||
excessive memory usage that people reported.
|
||
- Fix a potential memory leak when cleaning up a client.
|
||
- Do some additional checks to avoid buffer overruns.
|
||
- Improve recovery from underruns better. (#1857) This improves
|
||
seeking in gnome-music.
|
||
- Improve recovery when the quantum is forced larger that the
|
||
stream configured latency.
|
||
- The prebuf state is now handled correctly.
|
||
* JACK
|
||
- A per type object cache is now implemented. This ensures that
|
||
port objects remain valid for a longer time because many JACK
|
||
applications inspect objects after they are destroyed. This
|
||
improves catia/carla compatibility.
|
||
- Recompute the latencies when the buffer-size changes. Fix
|
||
some cases where we would end up with negative latencies.
|
||
- Handle regcomp errors to avoid some crashes later.
|
||
- Latency calculations are improved a lot.
|
||
- More care is taken to not call a process callback while a
|
||
buffer size change is pending. This fixes some crashes in
|
||
Carla, which expect that all clients are paused when one
|
||
handles the buffersize callback.
|
||
- Loopback links to a client are now handled correctly and
|
||
without latency. This fixes playback latency in ardour6
|
||
(#1839)
|
||
* ALSA
|
||
- ALSA devices now keep track of the samplerate of the card
|
||
and ensure that all PCM use the same rate. This is a
|
||
workaround for a kernel bug that is fixed in 5.16.
|
||
- Refactor the ALSA plugin a little.
|
||
- The ALSA plugin now reports correct delay for a capture PCM.
|
||
(#1697)
|
||
- The ALSA nodes now expose all config options with params
|
||
that can be changed at runtime.
|
||
- The ALSA node has a configurable clock name. Adaptive
|
||
resampling to match clock rates is avoided when the driver
|
||
has the same clock name as the ALSA node. This can be used
|
||
to link alsa devices together with a word clock.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Dec 11 16:21:56 UTC 2021 - Fabian Vogt <fabian@ritter-vogt.de>
|
||
|
||
- Drop server packages from baselibs.conf. Only the client parts
|
||
are needed in there.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Dec 10 09:31:47 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Minor aesthetic changes in the spec file
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 9 12:14:23 UTC 2021 - Neal Gompa <ngompa@opensuse.org>
|
||
|
||
- Enable AAC support for Leap 15.4+
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 9 11:33:29 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Replace the Recommends wireplumber to a Suggests since there's
|
||
already a Require dependency on a pipewire-session-manager and
|
||
when in doubt the Suggested package is selected.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 9 10:34:27 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Unconditionally enable AAC support now that fdk-aac-free is in
|
||
Factory (adapted from SR 936225 by Neal Gompa
|
||
<ngompa@opensuse.org>)
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Dec 3 09:06:42 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Makes sure if we're using wireplumber and pulseaudio that
|
||
we don't enable the audio devices in pipewire by requiring
|
||
wireplumber-audio or pulseaudio if wireplumber is installed
|
||
|
||
- Better integration with PulseAudio (bsc#1188516) made by tiwai:
|
||
* Add Requires pulseaudio-setup package for the extra setups
|
||
in the %post section
|
||
* Add the missing Recommends alsa-plugins-pulse to
|
||
pipewire-pulseaudio package
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Nov 12 12:47:56 UTC 2021 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Update to version 0.3.40:
|
||
* Highlights:
|
||
- Producers and consumers can now incrementally negotiate a
|
||
format by narrowing down the options. This can be used to
|
||
select an optimal combination of format and modifiers.
|
||
- Driver nodes such as the consumer of a headless compositor
|
||
can now throttle the speed based on a new trigger_done event.
|
||
- Headless compositors can now signal a damage event to
|
||
consumers to start the processing of the graph.
|
||
- Compatibility improvements in JACK.
|
||
- Draining and resuming is now working correctly in pulse and
|
||
alsa.
|
||
- Many bugfixes and improvements.
|
||
* PipeWire:
|
||
- Many BSD fixes.
|
||
- clang compilation fixes.
|
||
- Fix map implementation on big-endian machines.
|
||
- Improve tracking of param changes in pw-stream.
|
||
- Add support for renegotiation. With this change, producer and
|
||
consumer can incrementally renegotiate a format until it is
|
||
fixed. This will be used to do complex negotiation of DRM
|
||
modifiers.
|
||
- Add a trigger-done event in the stream. This can be used to
|
||
know when processing of the complete graph has finished after
|
||
issuing a trigger_process() and it can be used to throttle
|
||
processing.
|
||
- Add a RequestProcess node event and command. This can be used
|
||
by non-driver nodes to suggest to a driver to start
|
||
processing. One case is where a compositor can emit this
|
||
event as a result of a screen update to let the headless
|
||
compositor start an update.
|
||
- Fix zeroconf sample format.
|
||
- pw-mon outputs to stderr now and has colors.
|
||
* SPA:
|
||
- Fix compilation on ppc and armv7.
|
||
- Fix port type check for ALSA seq midi ports so that they are
|
||
not falsely listed as hardware.
|
||
- Fix crash when running SSE code on unsupported HW.
|
||
- The libcamera plugin was rewritten. It now supports hotplug,
|
||
format enumeration and an easier to read codebase.
|
||
- Fix compatibility some more for cards with 64 channels.
|
||
* pulse-server:
|
||
- Flush data in pause in combine-sink to avoid stray audio
|
||
fragments.
|
||
- Fix a race where not all objects were removed correctly.
|
||
- The latency calculations and setup was improved to more
|
||
closely match pulseaudio behaviour. PULSE_LATENCY_MSEC should
|
||
now resemble pulseaudio more closely.
|
||
- The drained reply is now sent only once and new data will be
|
||
accepted once the drain completes.
|
||
- Fix a potential crasher bug where the stream started
|
||
processing before the setup was completed.
|
||
- The server will now drop the client connections when the
|
||
pipewire connection is lost.
|
||
* JACK:
|
||
- Rework the jack_port_get_buffer() method to return the same
|
||
memory when called multiple times during the process()
|
||
callback. This makes things work on a new Hydrogen.
|
||
- Add an option to disable showing the monitor ports.
|
||
- JACK ports are now sorted per node/client and port_id. This
|
||
should more closely match JACK behaviour and avoid random
|
||
port order.
|
||
* v4l2:
|
||
- Fix v4l2 LD_PRELOAD script.
|
||
- Make sure we destroy the proxy when the global is destroyed.
|
||
* ALSA:
|
||
- _prepare should exit the draining state.
|
||
- Fix the precision of the _delay function by taking into
|
||
account the amount of queued samples are the correct
|
||
samplerate.
|
||
- Drop patches fixed upstream:
|
||
* 0001-cpu-fix-compilation-on-some-architectures.patch
|
||
* 0001-map-make-_insert_at-fail-on-a-removed-item.patch
|
||
* 0002-map-use-uintptr_t-for-the-next-pointer.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Nov 3 08:47:41 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Recommend wireplumber so it's preferred to pipewire-media-session
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Oct 29 15:17:51 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patches from upstream to fix build in s390x:
|
||
* 0001-map-make-_insert_at-fail-on-a-removed-item.patch
|
||
* 0002-map-use-uintptr_t-for-the-next-pointer.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Oct 29 08:54:01 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Use readline-devel instead of pkgconfig(readline) so it can be
|
||
built in Leap15.3/SLE15-SP3
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Oct 21 10:10:40 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Fix %systemd_user_post using the now separated
|
||
pipewire-media-session.service
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Oct 21 09:27:57 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.39
|
||
* Highlights
|
||
- media-session is now moved into a separate module to speed up
|
||
its deprecation in favour of WirePlumber.
|
||
- There is now an LD_PRELOAD v4l2 emulation library to run some
|
||
existing v4l2 applications on top of PipeWire.
|
||
- Filter-chains should now flush out remaining samples when
|
||
paused. There is now also the option to let a filter-chain
|
||
drain so that long filters
|
||
such as reverbs can fade out properly.
|
||
- Stability and compatibility improvements in JACK apps.
|
||
- Better Bluetooth compatibility with more devices.
|
||
- libcamera plugin improvements.
|
||
- Many bugfixes and improvements all over the map.
|
||
* PipeWire
|
||
- Fix compilation on ARM.
|
||
- Log topics are added to most modules.
|
||
- Documentation updates. Many improvements to the layout.
|
||
Reorganisation of the modules and groups.
|
||
- Share a work queue for all links and nodes. This removes the
|
||
need for a separate eventfd per link and per node.
|
||
- Catch errors in the map implementation.
|
||
- Add option to compile without dbus support.
|
||
- Fix biquad frequency. It was using the wrong sample rate.
|
||
- Fix a potential crash when destroying nodes, in some cases
|
||
the node would not be deactivated properly.
|
||
- Add some more helpers for dealing with properties and their
|
||
values.
|
||
- Implement flush and reset on virtual sinks/sources.
|
||
- Make it possible to let virtual sinks/filter-chains run and
|
||
drain after being idle.
|
||
- Fix a bug where the quantum could exceed the maximum because
|
||
it was scaled with the sample rate.
|
||
- Fix channel_map parsing in module-zeroconf-discover so that
|
||
the remote channel map is used.
|
||
- pw-stream errors emitted on the proxy are reported but not
|
||
fatal any more. They are usually used by the session manager
|
||
to signal status to the client but otherwise does not really
|
||
cause an error on the client.
|
||
- Links now also store the output and input node id in the
|
||
global properties so that applications can parse and use them
|
||
regardless of how the link was made. (#1723)
|
||
- pw-stream and pw-filter now have an event to notify commands.
|
||
- The echo-cancel module can now operate on larger quantums.
|
||
- pw-cat now uses the right metadata to find the default
|
||
devices in --list-targets.
|
||
* media-session
|
||
- Don't try to remix unpositioned streams when linking. This
|
||
ensures that linking to Pro-Audio nodes does not remix the
|
||
stream channels but links them as they are, one by one.
|
||
- media-session is now moved to a separate module to accelerate
|
||
its deprecation in favour of WirePlumber.
|
||
* SPA
|
||
- Many libcamera improvements, handle MemFd buffers, handle
|
||
errors gracefully.
|
||
- Small improvements to make interface fall-backs easier to
|
||
implement.
|
||
- Add support to enable flush-to-zero and denormals-are-zero
|
||
to avoid high CPU usage when dealing with denormals.
|
||
- AUX13 channels are no longer reported as AUX12. (#1727)
|
||
- Devices with more than 32 channels in Pro-Audio mode now only
|
||
uses AUX channels.
|
||
- Improve windowing function of the resampler to reduce
|
||
aliasing and improve the quality.
|
||
* JACK
|
||
- Port connect callbacks will not only be emitted after the
|
||
port has negotiated buffers, which improves compatibility
|
||
with applications that try to use the port right after the
|
||
callback (jack_midi_latency_test).
|
||
- Fix crash when midi ports were removed and being monitored,
|
||
like in Ardour.
|
||
* pulse-server
|
||
- The pulse tunnel will now use the specified
|
||
format/rate/channels.
|
||
- Improve lookup of default source and fall back to the
|
||
monitors when no sources are available.
|
||
- Mark some nodes as network nodes so that we can set the
|
||
NETWORK flag correctly.
|
||
* GStreamer
|
||
- The GStreamer element not releases the buffers in the stream
|
||
again in all cases so that they can be reused by other
|
||
streams.
|
||
* v4l2
|
||
- Add a v4l2 LD_PRELOAD library to emulate v4l2 system calls on
|
||
top of PipeWire. This is tested with firefox and GStreamer
|
||
and is known to not work with Chrome.
|
||
* Bluetooth
|
||
- AAC compatibility improvements.
|
||
- Disable hardware volume for "Tribit MAXSound Plus" and
|
||
"SoundCore mini".
|
||
- Add quirk to disable faststream. Disable faststream on
|
||
"FiiO BTR3".
|
||
- Add a dummy AVRCP player to improve compatibility with some
|
||
devices.
|
||
- Remove patch:
|
||
* 0001-fix-compilation-on-ARM.patch
|
||
- Add patch from upstream:
|
||
* 0001-cpu-fix-compilation-on-some-architectures.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Oct 13 09:10:51 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch from upstream to fix compilation on ARM (boo#1191600):
|
||
* 0001-fix-compilation-on-ARM.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 30 10:03:37 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.38:
|
||
* Highlights
|
||
- Topic based logging was added to improve debugging.
|
||
- An off-by-one error was fixed in the audio resampler that could
|
||
cause distortion when downsampling.
|
||
- Various bluetooth compatibility improvements.
|
||
- More fixes and improvements.
|
||
* PipeWire
|
||
- module-pulse-tunnel now has better default latency to make it work
|
||
better in more cases. There is also an option to configure the
|
||
desired latency.
|
||
- pw-cli now has readline support.
|
||
- Topic based logging was added. Log lines can now be filtered by
|
||
topic using wildcards. This should improve debugging.
|
||
- The systemd service files should now have better descriptions.
|
||
- Fix a crash in module-zeroconf-discover when unloading.
|
||
- Fix a crash in filter-chain when using unaligned memory.
|
||
* ALSA
|
||
- Sync the udev rules and profiles with pulseaudio.
|
||
- Fix a memory leak.
|
||
* SPA plugins
|
||
- An off-by-one error was fixed in the resampler that could cause
|
||
distortion when downsampling. (#1646)
|
||
* Bluetooth
|
||
- Avoid probing the native backend because it might block for DBus
|
||
activation. This fixes some long startup times.
|
||
- Fix the kernel version check, 5.14.x kernels should also support
|
||
mSBC.
|
||
- Fix FastStream microphone support in more cases.
|
||
- Add workaround for Intel AX200.
|
||
- SCO sink should now also work in follower mode.
|
||
* PulseAudio server
|
||
- Make the service file require a session manager.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Sep 29 18:51:13 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add BuildRequires: pkgconfig(readline) so pw-cli is built with
|
||
readline support
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 23 09:20:46 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.37:
|
||
* Highlights
|
||
- Capture and playback is now avoided even more on unavailable
|
||
devices. This should fix some issues where an unusable
|
||
microphone was selected by default. It should now also again
|
||
be possible to select an unavailable device as the default.
|
||
- Native DSD audio playback is now supported. pw-cat can now
|
||
also play DSF files with the -d option.
|
||
- JACK stability improvements with buffer-size and samplerate
|
||
changes in some apps.
|
||
- Many cleanups and bugfixes all over the place.
|
||
* PipeWire
|
||
- pw-metadata -d does not cause an infinite loop anymore.
|
||
(#1622)
|
||
- Increase some plugin buffer sizes to fix some issues with
|
||
many channels. (#1620)
|
||
- Protect the global plugin list with a lock. Make sure
|
||
pw_init() is locked. Fixes some issues with concurrent ALSA
|
||
plugin usage.
|
||
* media-session
|
||
- Unavailable devices can be set as the default again. (#1624)
|
||
- Do a better check if a device has available routes and avoid
|
||
selecting devices with unavailable routes as default.
|
||
- Media-session was moved to its own directory. It used to live
|
||
in examples but it is past the example stage and it
|
||
interferes with the build options for the real examples.
|
||
* Bluetooth
|
||
- The hardware quirk database is now loaded by the plugin
|
||
instead of the session manager. This makes it also work with
|
||
wireplumber.
|
||
* ALSA
|
||
- The ALSA mixer now handles device removal much better.
|
||
(#1627)
|
||
* libcamera
|
||
- Many fixes and improvement to the libcamera plugin. (#1513)
|
||
* pulse-server
|
||
- Improve compatibility with pulseaudio module arguments.
|
||
- Parse channel_map arguments in module-loopback. (#1486)
|
||
* JACK
|
||
- Delay emiting the samplerate and buffersize callbacks until
|
||
the client is active. This fixes some crashes with Carla and
|
||
other JACK apps.
|
||
|
||
- Drop patches already included upstream:
|
||
* 0001-media-session-dont-use-after-free-if-linking-node-removed.patch
|
||
* 0002-update-version-number-as-well.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Sep 20 06:51:15 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patches from upstream to fix an "use-after-free" error and
|
||
to set the version number correctly:
|
||
* 0001-media-session-dont-use-after-free-if-linking-node-removed.patch
|
||
* 0002-update-version-number-as-well.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 16 14:23:44 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.36:
|
||
* Highlights
|
||
- A quick update with mostly only bugfixes and small
|
||
improvements.
|
||
- Capture and playback is now avoided on unavailable devices.
|
||
This should fix some issues where an unusable microphone was
|
||
selected by default.
|
||
- MIDI output should not stop randomly now.
|
||
- The GStreamer elements are much improved, cheese should work
|
||
a lot better now.
|
||
- Virtual sinks and sources should now always show up
|
||
immediately.
|
||
- JACK processing is now delayed until buffersize and
|
||
samplerate are emited. This should improve stability of many
|
||
JACK apps.
|
||
- JACK transport sync is now implemented correctly so that
|
||
preroll in bitwig works.
|
||
* PipeWire
|
||
- The module dir environment variable can now contain multiple
|
||
paths.
|
||
- Documentation now contains dot graphs of dependencies.
|
||
(#1585)
|
||
- config min/max/default quantum values are now scaled with the
|
||
samplerate.
|
||
- A potential crash was fixed where destroyed memory was still
|
||
used by a node. This could cause crashes in cheese.
|
||
* pipewire-media-session
|
||
- Only allow passthrough for passthrough formats (S/PDIF) for
|
||
now. (#1587)
|
||
- Improve bluetooth profile autoswitch.
|
||
- Don't try to route audio to nodes with unavailable routes.
|
||
* ALSA
|
||
- Pass the right AES bits to the alsa device when opening an
|
||
S/PDIF stream.
|
||
- Fix a bug in the MIDI bridge port management logic. When a
|
||
port was added and immediately removed, output would stop.
|
||
* GStreamer
|
||
- The GStreamer source now handles the flushing state
|
||
correctly.
|
||
- All blocking operations now have a 30 seconds timeout, to
|
||
avoid infinite locks.
|
||
* Plugins
|
||
- V4l2 Device formats and controls are now passed on the node,
|
||
just like with audio devices.
|
||
- audioconvert now also exposes the softMute property.
|
||
* JACK
|
||
- Improve stability when changing buffer size and sample rate
|
||
dynamically by pausing the processing until the application
|
||
has handled the callback.
|
||
- Improve handling of timebase master. When the master was
|
||
moved to another driver, it did not attempt to become a new
|
||
timebase master on the new driver. (#1589)
|
||
- Implement transport sync to make preroll in bitwig work.
|
||
(#1589)
|
||
* pulse-server
|
||
- Fix an issue where virtual sinks/sources would not show up
|
||
immediately. (#1588)
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Sep 9 08:49:42 UTC 2021 - Frederic Crozat <fcrozat@suse.com>
|
||
|
||
- Update to version 0.3.35:
|
||
* Highlights:
|
||
- S/PDIF passthrough over optical or HDMI is now implemented.
|
||
- Some critical fixes to MIDI, draining of streams and various
|
||
modules.
|
||
- skypeforlinux should work better now after adding it to the
|
||
quirks database.
|
||
- Bluetooth codecs are now in separate plugins to make it
|
||
easier to ship them.
|
||
* PipeWire:
|
||
- Drain was fixed in pw-stream. In some cases it would not
|
||
clear the drain state correctly. Fixes the issue where
|
||
speaker-test would only play one channel.
|
||
- Loopback connections to a driver will now activate the
|
||
driver. This fixes an issue where MIDI connections between
|
||
devices or some applications (puredata) would not get any
|
||
MIDI messages. (#1559)x.
|
||
- The audiomixer can now mix more formats. Together with the
|
||
passthrough improvements this can be used to avoid
|
||
conversions to/from the DSP format in some cases.
|
||
- Make sure we idle drivers when removing a node from it in all
|
||
cases. JACK clients could keep a driver node busy.
|
||
- Add new methods to accumulate object info. The old one was
|
||
difficult to use when applications need to accumulate
|
||
multiple changes.
|
||
- A new interface to load modules has been added. Plugins can
|
||
use this to ask the host (PipeWire) to load spa plugins.
|
||
- Increase param buffer size to handle larger params. Nodes
|
||
with a large number of channels would sometimes not have
|
||
properties. (#1574)
|
||
- Concurrent link negotiation that caused some links to not
|
||
work, is now avoided. This fixes monitor ports in Ardour6.
|
||
- Small tweaks to how the quantum and rate are handled when
|
||
nodes move between drivers. Make node.lock-quantum work with
|
||
node.latency
|
||
* PipeWire modules:
|
||
- The convolver plugin in filter-chain has been optimized some
|
||
more.
|
||
- The echo-cancel stream properties were improved so that it
|
||
actually can remember the streams it links to. (#1557)
|
||
- module-pulse-tunnel had the buffer attributes wrong and would
|
||
cause high latency with older pulseaudio servers. (#1434)
|
||
- module-roc had the properties configured wrongly, which would
|
||
cause it to not work at all in most cases. (#1538)
|
||
- There is now an example of a 7.1 virtual surround sink using
|
||
the hesuvi impulse responses.
|
||
- The convolver now supports dirac pulses as the IR.
|
||
* ALSA:
|
||
- UCM config is now cached per device, using up less memory. It
|
||
also temporarily works around a problem in alsa-lib that is
|
||
now being patched and rolled out. Should stop devices from
|
||
disappearing when logging out and back in. (#1553)
|
||
- Fix the MIDI clock rate matching. It was too sensitive to
|
||
small changes and would spiral out of control and break MIDI
|
||
rather quickly.
|
||
* pipewire-media-session:
|
||
- The media session can now save and restore IEC958 (S/PDIF)
|
||
codecs for the sinks.
|
||
- Passthrough of IEC958 (S/PDIF) content is now possible. If
|
||
the client and the sink contain a compatible set of codecs,
|
||
an exclusive connection can be made between client and sink to pass
|
||
the encoded S/PDIF content directly to the device.
|
||
- Use new introspection info update methods to suspend nodes in
|
||
all cases. Sometimes, nodes would fail to suspend because the
|
||
state info was not evaluated.
|
||
- The media session can now work in non-DSP mode, which will
|
||
try to avoid any audio conversions between client and device
|
||
when possible. But, this will also disable compatibility with
|
||
JACK applications.
|
||
* Bluetooth
|
||
- Bluetooth codecs are now compiled into separate plugins which
|
||
are dynamically loaded. This makes it possible to change the
|
||
plugin implementation or ship plugins separately without
|
||
having to recompile the bluetooth module.
|
||
* PulseAudio server
|
||
- Delay stream create reply until the stream is linked to a
|
||
sink/source.
|
||
- The device-restore extension is now implemented. This makes
|
||
it possible to configure the IEC958 (S/PDIF) codecs supported
|
||
by the sink with pavucontrol.
|
||
- skypeforlinux now uses the same quirks as teams to make the
|
||
sinks show up in all cases. This fixes the issue of not being
|
||
able to hear the remote end in skypeforlinux.
|
||
* JACK
|
||
- Improve catia and carla compatibility by caching objects a
|
||
little longer after being removed. (#1531)
|
||
- JACK ports now notify the negotiated format correctly.
|
||
- A potential deadlock was fixed when multiple threads would
|
||
perform a call that would require a roundtrip.
|
||
- Improve bufsize callback, it should not be called right after
|
||
doing activate() but only when the buffersize changes later.
|
||
- Add tweak to disable the process lock. Some older apps might
|
||
not expect it. (#1576)
|
||
* Docs
|
||
- man pages are now generated with rst2man.
|
||
- DMA-BUF docs were updated.
|
||
- Documentation updates.
|
||
- Replace BuildRequires xmltoman with docutils (rst2man)
|
||
- Update libcamera Buildrequires.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Aug 27 08:33:01 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add BuildRequires: pkgconfig(libcap) since it's being searched
|
||
by the build scripts.
|
||
- Replace BuildRequires: pkgconfig(libopenaptx) with libfreeaptx
|
||
since openaptx has a license issue
|
||
- Use bcond_with to enable/disable the usage of libcamera
|
||
(the defaults are not changed: it's disabled in Leap since
|
||
upstream doesn't recommend enabling it yet and enabled in TW
|
||
since we can allow some experimental support there)
|
||
- Changes suggested by darix.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Aug 26 12:27:15 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.34:
|
||
* Highlights
|
||
- Fixes some critical issues with previous release. Such as
|
||
devices not showing up and default devices being lost.
|
||
- Support for consumer driver streams to make the producer
|
||
v-sync to the consumer monitor in a headless compositor
|
||
setup.
|
||
- Improvements to routing of streams.
|
||
- Bluetooth battery status support for head-set profile and
|
||
using Apple extensions. aptX-LL and FastStream codec support
|
||
was added.
|
||
- Internal latency of ALSA devices can now be configured.
|
||
- A fast convolver was added to the filter-chain to implement
|
||
virtual surround sinks or reverbs.
|
||
* PipeWire
|
||
- Add support for streams that are driver nodes for the graph.
|
||
This was already possible for source streams but it is now
|
||
also possible for playback streams. This can be used to let
|
||
a producer v-sync to the consumer monitor in a headless
|
||
compositor setup. (#1484)
|
||
- State files are now stored in XDG_STATE_HOME instead of
|
||
XDG_CONFIG_HOME. They will still be loaded from the config
|
||
home if they are not in the new state home, to ease
|
||
migration.
|
||
- Set a driver on inactive nodes to make transport work in
|
||
xjadeo. (#1491)
|
||
- Fix parsing of filter-chain controls.
|
||
- A new FFT based convolver was added to module-filter-chain.
|
||
It uses a 0-latency 2 stage convolver with small FFT for the
|
||
head and a large FFT for the tail of the convolution. A
|
||
convolution can be used to implement IR based reverbs, HRIR
|
||
surround sound or other convolution based operations. An
|
||
example HRIR virtual surround sound sink has been added as
|
||
well.
|
||
- module-filter-chain was reworked a bit to support more config
|
||
options for the plugins.
|
||
- Endian conversion and alaw/ulaw formats are now supported for
|
||
streams.
|
||
- pw-cat will now suggest a samplerate for the graph.
|
||
- SPA_PLUGIN_DIR can now search in multiple paths separated
|
||
with a ':'.
|
||
- Passthrough mode has been worked on and has been partially
|
||
merged. S/PDIF definitions have been added and ALSA devices
|
||
updated to report and configure S/PDIF formats. The session
|
||
manager changes to fully configure and enable passthrough
|
||
mode will hopefully be merged next time.
|
||
- Fix a race in pw-stream where it would not always emit the
|
||
right events.
|
||
* ALSA
|
||
- Fix volume changed check. It was checking against the wrong
|
||
value and this could cause rounding errors.
|
||
- The ALSA plugin now also uses RT scheduling.
|
||
- Fix the behringer UMC202 usb device id, it was using a
|
||
generic TI chip ID that caused problems.
|
||
- Fix USB devices that don't show up anymore. Use an ALSA
|
||
workaround to fix this. (#1478)
|
||
- Add a rule for the new firmware of Sennheiser GSX 1200.
|
||
- ALSA sink and source can now use ProcessLatency param to
|
||
configure the internal latency. The latencyOffsetNsec
|
||
property is also exposed so that the latency can be adjusted
|
||
in pavucontrol as well.
|
||
* media-session
|
||
- Fix a critical issue where the default device was not
|
||
remembered anymore when it was removed.
|
||
- Fix the issue where some apps need to be restarted when
|
||
nodes go away and reappear.
|
||
- Improve routing of streams. Streams that have a specific
|
||
target set will now be moved to the target when it appears
|
||
instead of staying on the fallback.
|
||
- Small memory leak fixes.
|
||
- Try to switch back to the user selected profile after
|
||
finishing a Bluetooth recording.
|
||
* Bluetooth
|
||
- Add support for HF indicator 2 battery status.
|
||
- Add support for XAPL battery status.
|
||
- Set the Communication intended role for HFP profile.
|
||
- Enable SBC-XQ by default if not disabled by quirks.
|
||
- Fix some potential crashes due to excessive polling.
|
||
- Add aptx-LL codec and enable duplex for aptx-LL devices.
|
||
- Add FastStream codec. This is a codec that can use a
|
||
duplex SBC channel.
|
||
* PulseAudio server
|
||
- Suggests a samplerate for the graph.
|
||
- Support for handling S/PDIF (IEC958) formats was added. This
|
||
will start working when the session manager supports
|
||
configuring streams and nodes in passthrough mode.
|
||
- Be smarter when handling devices without a negotiated format
|
||
yet so that they are visible as well. This makes virtual
|
||
devices show up immediately.
|
||
* ALSA plugin
|
||
- Now suggests a samplerate for the graph.
|
||
* JACK
|
||
- The jack.pc file can only be generated with meson >= 0.59.0.
|
||
When the jack-devel option is enabled, it will generate an
|
||
error with older meson.
|
||
- Small stability improvements when connecting/disconnecting in
|
||
Ardour.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Aug 5 14:54:31 UTC 2021 - Frederic Crozat <fcrozat@suse.com>
|
||
|
||
- Update to version 0.3.33:
|
||
* Highlights
|
||
- Better support for virtual sinks/sources for Pro Audio
|
||
profile.
|
||
- Better DMA-BUF format modifier negotiation.
|
||
- Support multiple sample rates in the graph. Not enabled
|
||
by default yet.
|
||
- Bluetooth can now automatically switch between headset
|
||
and audio profile.
|
||
- Documentation updates.
|
||
- Many improvements and crasher fixes.
|
||
* PipeWire
|
||
- Make AUX channels an official channel map, use this for the
|
||
PRO audio profile so that we can name the channels. This
|
||
make it possible to define virtual sources and sinks for
|
||
Pro Audio devices in a more reliable way.
|
||
- Fix scheduling of some virtual sinks/sources. (#1407)
|
||
- Fix potential corruption of ringbuffer because of multiple
|
||
concurrent writers. This might be the cause for many reported
|
||
crashes. (#1451)
|
||
- Don't place sockets in $HOME. (#1443)
|
||
- Improve DMA-BUF negotiation. Add a flag to avoid fixation
|
||
of a property so that producers can negotiate more
|
||
efficiently. This is used to negotiate DMA-BUF modifiers,
|
||
which should make more efficient use of the GPU. (#1084)
|
||
- Add support for multipe sample rates. The graph can switch
|
||
when IDLE to one of the supported rates. Add an option to
|
||
lock the rate as well. This is not enabled by default yet
|
||
because of driver bugs that need to be worked around first.
|
||
- Add node.lock-quantum property that can be used to lock the
|
||
quantum in place.
|
||
- Improve latency reporting in the loopback module.
|
||
- Make new client-node method to send the peer port id to the
|
||
mixer. This can be used to know where the buffers entering the
|
||
mixer are coming from. (#1471)
|
||
* Tools
|
||
- pw-top should now also correctly show bluetooth devices.
|
||
(#1540)
|
||
* media-session
|
||
- Handle unset of the default node.
|
||
- Added a module that can switch the bluetooth profile to headset
|
||
profile when a stream wants to record from it.
|
||
* JACK
|
||
- Only call the jack callbacks when the client is active. Some
|
||
JACK applications don't expect callbacks before the client is
|
||
active and crash (x42-dpl). (#1461)
|
||
- Emit client unregister event.
|
||
- Add per-client match rules in the config file to set app
|
||
specific configuration and tweaks. (#1456)
|
||
- Use peer_id to implement jack_port_get_buffer() from one of
|
||
our peer ports to get the data before it enters the mixer.
|
||
Makes the capture monitors work in Ardour6.8. (#1471)
|
||
* Bluetooth
|
||
- Add some broken kernel versions to the mSBC blocklist
|
||
- Avoid looping and consuming CPU when we can't write to the
|
||
BT socket.
|
||
- Use libfreeaptx instead of libopenaptx.
|
||
- Fix rounding errors in HW volume conversion.
|
||
* PulseAudio server
|
||
- implement module-switch-on-connect to emulate pulseaudio
|
||
behaviour of new devices. Some desktop environments expect
|
||
this behaviour and break otherwise.
|
||
- Fix stream cleanup, make sure the stream is stopped before
|
||
destroying it. Might be cause for some of the reported
|
||
crashes.
|
||
- Update message API to use the JSON format.
|
||
* Other
|
||
- Many documentation updates.
|
||
- Many cleanups and small improvements.
|
||
- Support the latest libcamera version. (#1435)
|
||
- Drop pipewire-fix-libcamera-build.patch, merged upstream.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jul 27 06:23:36 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Move with-{alsa,jack,pulseaudio} from the media-session package
|
||
to the packages that implement each support.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jul 22 07:55:13 UTC 2021 - Frederic Crozat <fcrozat@suse.com>
|
||
|
||
- Add patch pipewire-fix-libcamera-build.patch: fix build with
|
||
latest libcamera.
|
||
- Do no build libcamera support on Leap 15.3 or lower (too old
|
||
libcamera) and change name of BuildRequires from camera to
|
||
libcamera.
|
||
- Update minimal version for alsa buildrequires.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jul 20 12:46:57 UTC 2021 - Frederic Crozat <fcrozat@suse.com>
|
||
|
||
- Update to 0.3.32:
|
||
* Highlights
|
||
- Real-time priority handling for threads was reworked.
|
||
Freewheeling will now drop RT priorities to avoid being
|
||
killed.
|
||
- Problems with filter chains and echo-cancel being linked in
|
||
a loop was fixed.
|
||
- alsamixer should now be able to see the mixer controls again.
|
||
- JACK has seen some latency reporting improvements that make
|
||
Ardour report latencies correctly.
|
||
- Many bugfixes and improvements.
|
||
* PipeWire
|
||
- Fix a bug in the neon audio resampler code.
|
||
- There is now a node.link-group property to relate linked
|
||
streams. this can be used to track the dataflow with
|
||
coupled streams.
|
||
- Fix a crash when recalculating latency on a destroyed
|
||
port. (#1371)
|
||
- Filter chains and other modules that create streams can
|
||
now also be added to the daemon config itself. (#1309)
|
||
- Fix some potential deadlocks in timerfd. (#1377)
|
||
- Feedback links are skipped when recalculating latency to
|
||
avoid loops.
|
||
- The dummy driver and null-sink now stop the timerfd when
|
||
following another driver instead of generating useless
|
||
graph wakeups.
|
||
- rt.limit was increased to 2 seconds. Some applications got
|
||
killed because they run lengthy code in the Real-Time
|
||
thread. (#1344)
|
||
- Fix s24_32 to float, it was not sign extending
|
||
properly. (#1393)
|
||
- The performance of the feedback loop check algorithm was
|
||
improved a lot, making complex graphs start much much faster.
|
||
- The zeroconf publish module now doesn't republish nodes
|
||
every time the volume changes. (#1406)
|
||
- A potential memory corruption error has been fixed in the
|
||
loop that could cause random crashes.
|
||
- Mempools can now be created from multiple threads at the
|
||
same time.
|
||
* media-session
|
||
- Loops in coupled streams are now avoided. (#1394)
|
||
- Port changes for inactive profiles are ignored now by
|
||
the default-route module. (#1403)
|
||
* ALSA
|
||
- Make sure tha alibpref is not part of the device node name
|
||
because it is random. (#1362)
|
||
- Fixed an off-by-one that could cause midi events to end up
|
||
with a wrong timestamp and thus being discarded by
|
||
some apps. (#1395)
|
||
- Fix some memory leaks when destroying a card object.
|
||
* JACK
|
||
- Fix some invalid cycle wakeups that could cause JACK
|
||
application to run with a 0 buffer size. (#1386)
|
||
- JACK can now use rtkit to manage realtime priorities
|
||
on threads.
|
||
- The Real-time priority is dropped when entering freewheel
|
||
mode to make sure we don't get killed when using
|
||
too much CPU.
|
||
- jack_recompute_total_latencies() is now implemented, fixing
|
||
the latency reporting in Ardour. (#1388)
|
||
- Fix some overflows in time calculations.
|
||
- Ensure frame_rate in position is never 0.
|
||
- Graph callbacks are now emitted as well.
|
||
* Bluetooth
|
||
- RTP payload type is now set correctly for aptX, LDAC and
|
||
SBC, which should improve compatibility with devices that
|
||
care about this.
|
||
* PulseAudio server
|
||
- There is now a quirks database to deal with bad clients.
|
||
The database is builtin but can be made external later.
|
||
Teams is now lied to and told all sink/sources use
|
||
s16 samples to make it show all sinks/sources.
|
||
Firefox is forced to remove the DONT_MOVE flag on
|
||
capture streams so that you can move firefox streams
|
||
with other tools.
|
||
- The UNDERFLOW warnings are now made into info log messages
|
||
to not spam the log too much. Many application just let
|
||
things underrun and PulseAudio did not warn about this
|
||
either. (#910)
|
||
* ALSA plugin
|
||
- The alsa plugin now uses the right metadata for finding the
|
||
default source and sink, which makes the volume controls
|
||
reappear. (#1384)
|
||
* Other
|
||
- Cleanups in pulse-server and pipewire.
|
||
- Documentation additions.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jul 13 14:52:35 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Make the jack replacement libraries really replace jack libraries
|
||
just like Fedora does (adding the path to the pipewire
|
||
replacement libraries to ld.so.conf.d and conflicting with jack).
|
||
- Remove the spec code that forced the packages not to provide the
|
||
jack libraries. They seem to be ready to replace jack libraries
|
||
now.
|
||
- Add a pipewire-libjack-0_3-devel package with development files
|
||
for pipewire's jack replacement.
|
||
- Enable the libcamera module
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jun 29 06:12:36 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add %pre and %post sections to the new media-session subpackage.
|
||
- Move the references to the media-session service from the
|
||
workaround in pipewire's %post section to the workaround in the
|
||
new subpackage's %post section.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jun 28 16:14:29 UTC 2021 - Frederic Crozat <fcrozat@suse.com>
|
||
|
||
- Update to 0.3.31:
|
||
* Highlights
|
||
- Fixes for alsa-lib 1.2.5
|
||
- New pulseaudio modules: module-avahi-zeroconf,
|
||
module-pipe-source, module-roc-sink, module-roc-source
|
||
- JACK has seen massive stability improvements. Locking
|
||
and correctness wrt to callbacks and has been reworked. Also
|
||
thread priorities have improved.
|
||
- Handle various crashes and lockups when running out of file
|
||
descriptors.
|
||
- Bluetooth now uses a hardware database to disable
|
||
non-working features on listed devices.
|
||
- Scheduling quantum and rate can now be changed dynamically
|
||
with pw-metadata.
|
||
- Many bugfixes and improvements.
|
||
* PipeWire
|
||
- Improve cleanup of context in error cases.
|
||
- There is now a pw-test framework for improved unit tests.
|
||
- Improve property serialization to valid JSON.
|
||
- Fix some macros to work with better with coverity.
|
||
- Metadata permissions are checked now. Clients need the
|
||
M permission on an object to be able to set metadata for
|
||
it.
|
||
- The core metadata object will now remove metadata for
|
||
removed objects, the implementor does not need to worry
|
||
about that anymore.
|
||
- Audioadapter will now follow the rate of the graph with
|
||
the resampler adjusting itself dynamically.
|
||
- Core now has a metadata implementation helper. A context
|
||
will expose a metadata with settings that can be changed
|
||
at runtime. This can be used to change the lowlevel or
|
||
graph quantum and samplerate on the fly.
|
||
- An infinite loop was fixed in the audio converter.
|
||
- Handle out-of-fds more gracefully. Handle truncated
|
||
control data by dropping the client connection.
|
||
- Fix profiler crash with many streams.
|
||
- Improve latency handling in pw-filter. There is now a
|
||
default handler and a ProcessLatency parameter to simplify
|
||
latency reporting.
|
||
- Latency reporting was improved in devices and streams.
|
||
- And example sink/source was added.
|
||
* ALSA
|
||
- hardware mute and volume are now properties on the
|
||
Route param to make things easier.
|
||
- More fixes for alsa-ucm 1.2.5.
|
||
* Tools
|
||
- spa-json-dump now properly encodes string and keys
|
||
- pw-dump now shows the correct subject of the metadata.
|
||
* PulseAudio server
|
||
- Ensure the node.description is set, some applications
|
||
crash otherwise (TeamSpeak).
|
||
- Module loading and unloading was improved.
|
||
- module-avahi-zeroconf was implemented.
|
||
- module-pipe-source was implemented
|
||
- module-roc-sink and module-roc-source was implemented
|
||
- The maximum amount of connections has been limited to 64,
|
||
like pulseaudio.
|
||
- Handle out-of-fds more gracefully.
|
||
- Fix overflow of read/write pointers.
|
||
- source and sink state are now decoupled from the monitor
|
||
state and will report IDLE when not playing anything.
|
||
* media-session
|
||
- Port switching should now happen to/from the port that
|
||
actually changed.
|
||
* JACK
|
||
- The locking was reviewed. All callbacks are not emited
|
||
from the PipeWire thread with the lock released and
|
||
the process function will be disabled for the duration
|
||
of the callback. This ensures that no two callbacks are
|
||
called at the same time.
|
||
- Improve internal consistency and try to never call callbacks
|
||
with invalid objects.
|
||
- Monitor port can now be accessed with system:monitor_%d
|
||
- client threads are now created with SCHED_FIFO and module-rt
|
||
is used to create the other RT threads. This should avoid
|
||
SIGKILL from RTKit in some cases.
|
||
* Bluetooth
|
||
- Various bugfixes to improve connections to devices.
|
||
- Handle delayed UUID connection.
|
||
- There is now a hardware database that can disable features
|
||
in listed devices.
|
||
- Use libusb to detect availability of mSBC.
|
||
* ALSA
|
||
- The virtual device name can now also contain a media role.
|
||
|
||
- Add BuildRequires(libusb-1.0) to detect mSBC support for Bluetooth.
|
||
- Move media-session to a separate package (similar to Fedora),
|
||
allowing to switch to another session manager.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Jun 13 17:35:06 UTC 2021 - Adam Mizerski <adam@mizerski.pl>
|
||
|
||
- added pipewire-alsa to baselibs.conf
|
||
pipewire-alsa-32bit is needed to run BIT.TRIP Runner 2 from Steam,
|
||
which is a 32bit application and uses ALSA.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jun 10 11:08:24 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Move %{_udevrulesdir}/90-pipewire-alsa.rules to the main pipewire
|
||
package (boo#1187108)
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jun 10 10:17:14 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to 0.3.30+git~342ae0b64 (55 commits after 0.3.30) in order
|
||
to include
|
||
https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/748
|
||
and
|
||
https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/749
|
||
to fix building on Leap 15.3
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jun 9 10:11:38 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to 0.3.30
|
||
* This is a quick emergency release to fix some severe
|
||
problems with the previous release.
|
||
* Highlights
|
||
- Recording from a monitor port should work again.
|
||
- JACK applications should now be more stable again.
|
||
- Freewheeling should not lock up anymore.
|
||
- Fix lockups in many pulseaudio apps.
|
||
- module-echo-cancel was implemented in pipewire-pulse
|
||
- Many other stability fixes.
|
||
* PipeWire
|
||
- Improve module path logic.
|
||
- Improve logger formatting
|
||
* PulseAudio server
|
||
- Make sure to pass 64 bits values for time on ARM 32 bits to
|
||
avoid protocol errors.
|
||
- Avoid a crash when unloading module-combine-sink.
|
||
- Avoid overflow in requested bytes, resulting in stalled
|
||
audio.
|
||
- Implement module-echo-cancel.
|
||
* Bluetooth
|
||
- Handle latency parameters instead of failing.
|
||
* JACK
|
||
- Fix locking in many places to avoid deadlocks and crashes.
|
||
- Fix port rename.
|
||
- Stop freewheeling correctly instead of deadlocking.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jun 3 13:01:45 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to 0.3.29
|
||
* Highlights
|
||
- Latency reporting is now implemented.
|
||
- Many documentation updates and cleanups.
|
||
- module-combine-sink was added to PulseAudio server.
|
||
- Better handling of multichannel input profiles.
|
||
- Fix 100% volume issue when monitor suspends or profile
|
||
changes in some cases.
|
||
- Bugfixes and crashes
|
||
* PipeWire
|
||
- A new module-rt was added to acquire real-time scheduling
|
||
priviledges without using RTKit.
|
||
- Documentation fixes and updates. Docs are now using a
|
||
custom theme.
|
||
- There is now a MANDATORY flag on properties that influence
|
||
how properties are filtered.
|
||
- Filter-chain now parses the LADSPA_PATH correctly when it
|
||
contains a colon separated list.
|
||
- Move `#pipewire` IRC channel to oftc.net.
|
||
- Fix an error where param changes were not emited in all
|
||
cases.
|
||
- Implement Latency reporting. Latency values are propagated
|
||
through the graph so that each node knows the latency to
|
||
the output/input device. Synchronization in pw-stream has
|
||
been updated to use this.
|
||
- Some more upmix cases are added so that LFE, SIDE and REAR
|
||
can be generated from a mono channel as well.
|
||
- pw-stream and pw-filter will now emit the process event from
|
||
the real-time thread in a safe way, potentially avoiding some
|
||
of the harder to debug crashes.
|
||
- Fix potential stack overflow with serialize_dict.
|
||
- Add PIPEWIRE_NO_CONFIG to run without custom config files.
|
||
- The WebRTC echo canceler was added. Next versions will
|
||
integrate this better.
|
||
* PulseAudio server
|
||
- module-combine-sink was implemented.
|
||
- Fix some segfaults when DBus connections fail.
|
||
- Support for listening on IPv6 was added.
|
||
- Fix a bug where many flushes could result in requests for too
|
||
much data from the client, causing sync, latency and garbled
|
||
sound problems after many seeks.
|
||
* ALSA
|
||
- Also probe input paths for multichannel mappings. This makes
|
||
multichannel input ports show up in more cases.
|
||
- Fix headphones/front volume issue on some cards.
|
||
- Fix max volume issue when profile changes.
|
||
- Fix issue with UCM local config that was not available when
|
||
the device was opened in the server but the UCM was opened by
|
||
the session manager. Fixes alsa 1.2.5 compatibility.
|
||
* JACK
|
||
- Implement latency reporting with the new Latency params.
|
||
- Add BuildRequires: pkgconfig(webrtc-audio-processing)
|
||
which is required by the new WebRTC echo canceler.
|
||
- Remove patch which is already included:
|
||
* 0001-alsa-mixer-only-use-switch-to-mute-Front-in-the-Headphone-path.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jun 1 07:31:49 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch from upstream to use the independent switch to mute
|
||
Lineout or Speaker instead of setting the volume, which on
|
||
some soundcards might be shared by Headphone and Lineout or
|
||
Headphone and Speaker (fixes boo#1186572):
|
||
* 0001-alsa-mixer-only-use-switch-to-mute-Front-in-the-Headphone-path.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Tue May 25 07:12:32 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Introduce a workaround for systems where %systemd_user_post
|
||
didn't enable the user services correctly due to different
|
||
reasons . This workaround is only executed once, and only if
|
||
it's really needed. In order to execute only once a lock file
|
||
is created in /var/lib/pipewire. The lockfile can be removed
|
||
when the workaround is removed.
|
||
|
||
Everyone who upgraded their TW system between (aprox.) the 14th
|
||
of January and the 16th of March and who didn't enable the
|
||
services manually is affected by this. It also happens for
|
||
everyone who installed a new TW system since (aprox.) the 14th
|
||
of January and also for everyone doing a new installation of
|
||
SLE15-SP3 / Leap 15.3 from the iso (new installations using
|
||
online repositories will work fine once the fix in
|
||
systemd-presets-common-SUSE is released).
|
||
|
||
Fixes boo#1184852, boo#1183012 and boo#1186561.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed May 19 11:15:08 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to 0.3.28
|
||
* Highlights
|
||
- Freewheeling was implemented. This makes it possible to
|
||
export projects in ardour.
|
||
- A new powerful filter-chain module was added that can
|
||
be used to created all kinds of filter-chains from ladspa
|
||
and builtin plugins.
|
||
- Many more pulseaudio modules are now implemented:
|
||
module-ladspa-sink, module-ladspa-source, module-pipe-sink,
|
||
module-tunnel-sink, module-tunnel-source,
|
||
module-zeroconf-discover
|
||
- Fix a bug where devices would not appear after logout/login.
|
||
- Fix a bug where the volume was reset to 0 and devices would
|
||
have no audio.
|
||
- Config files are now installed in the data dir, system
|
||
overrides in /etc/pipewire and $HOME are checked first.
|
||
* PipeWire
|
||
- Implement freewheeling for JACK clients
|
||
- Add filter-chain module that can be used to construct
|
||
arbitrary graphs from ladspa and builtin plugins.
|
||
- Add new property to easily set algorithm params
|
||
- Add module-pulse-tunnel to tunnel audio to and from
|
||
a PulseAudio compatible server.
|
||
- Add a avahi zeroconf discover module, create pulse-tunnel
|
||
when PulseAudio devices are announced.
|
||
- Config files are now installed in the data dir, system
|
||
overrides in /etc/pipewire and $HOME are checked first.
|
||
- Applications now have their monitor ports named with the
|
||
"monitor" prefix to avoid confusion with the output ports.
|
||
- LICENSE clarifications.
|
||
* GStreamer
|
||
- fixes to the pipewiresink plugin.
|
||
* SPA plugins
|
||
- Fix a bug where the volume was reset to 0
|
||
- Add events to dbus plugin. This can be used to detect dbus
|
||
disconnects.
|
||
* Media-session
|
||
- Handle dbus disconnect.
|
||
- Handle device reservation errors.
|
||
* PulseAudio server
|
||
- Implement module-ladspa-sink and a new PipeWire-only
|
||
module-ladspa-source
|
||
- Implement module-pipe-sink
|
||
- Implement module-tunnel-sink and module-tunnel-source
|
||
- Fix a bug with module argument parsing
|
||
- Implement module-zeroconf-discover
|
||
* ALSA plugin
|
||
- improve error handling
|
||
|
||
-------------------------------------------------------------------
|
||
Thu May 13 20:33:25 UTC 2021 - Ismail Dönmez <ismail@i10z.com>
|
||
|
||
- Add %bcond_with aptx conditional to let 3rd parties to enable
|
||
aptX support.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat May 8 18:02:57 UTC 2021 - Ismail Dönmez <ismail@i10z.com>
|
||
|
||
- Add %bcond_with aac conditional to let 3rd parties to enable
|
||
AAC support.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri May 7 14:46:32 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to 0.3.27
|
||
* Highlights
|
||
- Fix bug that caused bluetooth devices to stop working.
|
||
- Fix session-manager crash when switching users caused by
|
||
the DBus plugin cleanup errors.
|
||
- Improve volume handling of monitor ports.
|
||
- Fix GStreamer v4l2 support.
|
||
- Implement module-remap-sink and module-remap-source in
|
||
pipewire-pulse.
|
||
- More fixes and improvements.
|
||
* PipeWire
|
||
- Move the loopback code into a module. Use this in pw-loopback
|
||
and pipewire-pulse. Fix some cleanup crashes.
|
||
- A dummy echo-cancel module was added. Later versions will
|
||
include the webrtc echo-canceler.
|
||
- State files don't have the X permission anymore.
|
||
- Move i18n core into a private header file.
|
||
- Stream can now advertize properties and receive property
|
||
updates.
|
||
- Fix an issue where the wrong index was used to address a port.
|
||
It caused Bluetooth devices to stop working.
|
||
* SPA plugins
|
||
- Only do LFE filtering on channels we created.
|
||
- Improve name and description of devices.
|
||
- Improve cleanup in DBus connections and sources to avoid crash
|
||
when destroying.
|
||
- Improved volume handling. Hardware, Software and Monitor
|
||
volumes are now properly separated and handled.
|
||
- Support for S8 and S8P formats was added.
|
||
* Tools
|
||
- pw-cli can now also create Struct from JSON arrays.
|
||
* Session-manager
|
||
- The session manager can now also create passive links. This
|
||
makes is possible to suspend effect chains together with the
|
||
sinks when not in use.
|
||
- Match rules now check the complete property value instead of
|
||
only the start.
|
||
- Handle multiple pending param enumerations, take only last
|
||
result. This fixes some volume update issues.
|
||
* GStreamer plugins
|
||
- GStreamer plugins now advertize handling DMABUF explicitly. This
|
||
is currently the only way to avoid a memcpy for v4l2 devices.
|
||
* Device support
|
||
- sync ACP with pulseaudio, merge upstream patch instead of our
|
||
hack to workaround missing duplex devices.
|
||
- V4l2 devices don't expose their fd anymore. Previously the fd
|
||
and mmap offsets were passed to the client to access the buffer
|
||
memory but that could create security issues.
|
||
* Bluetooth
|
||
- Don't unregister the profiles on shutdown because this can cause
|
||
delay, just close the dbus connection.
|
||
- Bluetooth devices now try to use the global samplerate from the
|
||
graph.
|
||
* PulseAudio server
|
||
- Implement remap-sink and remap-source modules using the
|
||
new loopback module.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon May 3 03:06:31 UTC 2021 - Yifan Jiang <yfjiang@suse.com>
|
||
|
||
- Disable gstreamer device provider by now because the timestamp
|
||
bug makes cheese video record abnormally longer than it should be
|
||
(rh#1884260).
|
||
- Replace all tab characters to space.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Apr 29 11:16:51 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add %systemd_ordering so systemd is installed before pipewire
|
||
on fresh installations. This allows to set the service presets
|
||
correctly on new systems since the %systemd_user_* macros don't
|
||
do anything if systemd is not installed (boo#1185459).
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Apr 22 17:54:17 UTC 2021 - Michael Ströder <michael@stroeder.com>
|
||
|
||
- Update to 0.3.26:
|
||
+ Highlights:
|
||
- I18n support, with translations merged from PulseAudio.
|
||
- New pw-link tool.
|
||
- Many Bluetooth improvements, support for hardware volumes.
|
||
- Support for 64 channel devices.
|
||
- Stability fixes and improvements.
|
||
+ PipeWire improvements:
|
||
- The link factory can now also make links between nodes and
|
||
ports by name so that it can be used in scripts.
|
||
- Add module-protocol-simple that can stream raw audio on a
|
||
socket.
|
||
- Added i18n support. Merge PulseAudio translations for the ACP
|
||
library so that we don't cause regressions.
|
||
- Support more than 19 channels in the channel mixer. This
|
||
makes all channels usable on 32 and 64 channel cards.
|
||
- Detect if we're running in a VM and allow for tweaking some
|
||
settings such as the max-quantum to make things work better
|
||
in VMs.
|
||
- Fix a potential crash when connecting a client and updating
|
||
permissions.
|
||
- Fix a potential crash when trying to link incompatible ports.
|
||
- Lingering links in error will now be destroyed automatically.
|
||
+ Tools:
|
||
- Added new pw-link tool to list and monitor ports and to list,
|
||
monitor, create and destroy links between them.
|
||
- pw-cli can now also list params by name.
|
||
- pw-dump now outputs Spa:String:JSON types in metadata as
|
||
properly parsed and formatted JSON so that tools can parse
|
||
the metadata values using a JSON parser.
|
||
+ Session-manager:
|
||
- Add logind support. The bluetooth monitor can only be started
|
||
for one user at the time, so use logind detect active seats.
|
||
- ALSA icon names were improved to match what PulseAudio does.
|
||
- Improve the bluetooth icon name. Also use the device alias as
|
||
the device description, like PulseAudio.
|
||
+ Device support:
|
||
- When devices become inaccessible, they are now removed from
|
||
the PipeWire graph.
|
||
- Fix datatype selection for buffers in v4l2 and libcamera.
|
||
+ Bluetooth:
|
||
- Various memory leaks and crashes are fixed.
|
||
- Added support for AVRCP hardware volume.
|
||
- Added support for HSP/HFP hardware volume.
|
||
+ PulseAudio server:
|
||
- Fix module-loopback connections to monitor ports.
|
||
- Implement module-native-protocol-tcp.
|
||
- Handle nodes and streams with > 32 channels. The PulseAudio
|
||
API only supports up to 32 channels so only make those 32
|
||
first channels available with the PA API.
|
||
- Implement module-simple-protocol-tcp.
|
||
- Improve events emitted by the server.
|
||
- Improvements to channels and channel_map properties on
|
||
modules. One can imply the other and they should match when
|
||
both given.
|
||
- null-sink will now have their volume work correctly by
|
||
default.
|
||
+ JACK: JACK developement files can now optionally be installed.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Apr 13 11:19:35 UTC 2021 - Michael Ströder <michael@stroeder.com>
|
||
|
||
- Update to 0.3.25:
|
||
+ This is a bugfix release that is API and ABI compatible with
|
||
- previous 0.3.x releases.
|
||
+ Highlights
|
||
- Many stability improvements.
|
||
- Plug fd leak in flatpak detection
|
||
- add pw-loopback tool and support module-loopback
|
||
- volume restore for virtual sinks/sources or other sink/sources
|
||
without hardware volume.
|
||
- Fix cracks and pops in audio capture.
|
||
- Many bluetooth improvements and compatibity fixes.
|
||
+ PipeWire improvements
|
||
- Hex encode invalid SEC_LABEL properties to avoid generating invalid json.
|
||
- Small fixes to how nodes are started to avoid crashes.
|
||
- Make sure ports are only scheduled after being fully negotiated
|
||
to avoid crashes.
|
||
- Implement coverity into CI, fix some bugs detected by coverity.
|
||
- Plug leak in flatpak detection.
|
||
- Fix crash when removing globals in some cases.
|
||
- Fix crash because the mixer info was not removed from a port in all cases.
|
||
- Add PIPEWIRE_AUTOCONNECT environment variable to disable stream autoconnect.
|
||
Also add a config option to disable autoconnect.
|
||
- Improve wildcard in format helpers.
|
||
- Add env variable to disable journald logging.
|
||
+ Tools
|
||
- Add a new pw-loopback tool to loop a capture device to a playback device.
|
||
- Display localized strings correctly in pw-top
|
||
- Add some more options to pw-dot
|
||
+ Session-manager
|
||
- When a new node is configured and some stream have this as the
|
||
default target, move them to it.
|
||
- Fix some crashes.
|
||
- Implement volume restore on nodes without routes. This makes it
|
||
possible to restore volume on purely software nodes like null-sinks.
|
||
- Also try to suspend errored nodes so that they may leave the
|
||
error state and be reused again.
|
||
- Break endless link loops when something went wrong.
|
||
+ Device support
|
||
- Fix monitor volumes, they are now separate from the hardware volume.
|
||
- Fix cracks and pops in alsa capture caused by mismatch between
|
||
resampler and capture source.
|
||
- Add start-delay config option to alsa sink.
|
||
- Ensure the PipeWire midi ports start from a higher number so that the
|
||
lower port numbers are available to apps as before.
|
||
+ Bluetooth
|
||
- source devices are now removed when idle
|
||
- Support using pipewire as Audio Gateway.
|
||
- LDAC encoding quality can be configured now
|
||
- Implement codec switching for HFP
|
||
- Implement codec switching with new device property.
|
||
- Improved stability and compatibility
|
||
- Autoconnect device profiles at startup
|
||
- Add AAC bitrate mode configuration
|
||
- Make it possible to use an A2DP source as an input device.
|
||
You can then use your phone as an A2DP microphone, for example.
|
||
- Remove battery reporting when RFCOMM connections is closed.
|
||
+ PulseAudio server
|
||
- Add some workarounds for Blueman
|
||
- Set correct errno values, fixes a hang in load-module of a non-existing module
|
||
- Try to not send inconsistent information to clients.
|
||
- Fix some crashes.
|
||
- Add support for the new send-message API, use this to switch bluetooth codecs.
|
||
- Fix draining by making sure we are started.
|
||
- Handle 0 sink and source as the default sink/source.
|
||
- Implement module-loopback
|
||
+ JACK
|
||
- Fix some memory leaks when closing a client
|
||
- Add self-connect config option to limit where clients can connect themselves.
|
||
- Don't crash when apps call _port_get_buffer() on a port that is not their
|
||
own but simply return NULL. This fixes a crash in Ardour6.
|
||
- Improve client added/removed callbacks. Sometimes it would emit a client
|
||
remove when there were still ports for the client.
|
||
- make sure midi port names are stable across reboots.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Mar 19 17:43:41 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Enable or disable the ldac codec depending if ldacBT is available
|
||
or not to fix build in s390x (where it's not available)
|
||
- Add some more information and fix indentation on previous
|
||
changelog entries.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Mar 19 12:02:35 UTC 2021 - Matej Cepl <mcepl@suse.com>
|
||
|
||
- Update to 0.3.24:
|
||
+ This is a bugfix release that is API and ABI compatible with
|
||
previous 0.3.x releases.
|
||
+ Highlights
|
||
- Many JACK midi improvements and device support.
|
||
- Fixes in gnome-control-center default sink/source handling.
|
||
- Many small performance improvements in alsa device handling
|
||
and latency. There should also be less cracks/pops and xruns
|
||
now.
|
||
- More bluetooth compatibility improvements.
|
||
+ PipeWire improvements
|
||
- Implement simple upmixing
|
||
- Disable the resampler when not used. This improves latency
|
||
and CPU usage.
|
||
- Handle max-quantum on devices and try to not make the quantum
|
||
larger than the device buffer size.
|
||
- improvements to how nodes and links are activated. It should
|
||
now result in less xruns and cracks/pops.
|
||
- meson uses the feature options everywhere now
|
||
- Handle volume remap in the channelmixer. This fixes the
|
||
channels on multichannel devices.
|
||
- Try to escape invalid JSON string characters
|
||
- Keep better track of changed parameters in audioconvert.
|
||
- Improve config files, make arrays where needed.
|
||
- Respect NO_COLOR where possible
|
||
- Support in-place config file parsing to avoid allocations and
|
||
improve startup performance.
|
||
- There is no a config option to enable non-power-of-two
|
||
quantums.
|
||
- Preliminary support for upmixing and generating LFE channels.
|
||
+ Session-manager
|
||
- default nodes are not stored as JSON in the metadata. This
|
||
is more readable and introspectable.
|
||
- More default-nodes and default-routes improvements. port
|
||
switching should work better now.
|
||
- Wait until all devices are scanned before linking clients.
|
||
- Fixes some crashes
|
||
- Sinks (monitors) can now be set as default sources.
|
||
+ Device support
|
||
- Fix startup timers for alsa devices.
|
||
- Improve timers in alsa when quantum changes. It should cause
|
||
less xruns and cracks.
|
||
- Fix UCM setup of capture devices.
|
||
- Only disable IRQ in alsa when not batch. For batch devices
|
||
the hw pointers are updated each IRQ so we need to keep them
|
||
enabled. This massively improves latency on USB batch devices
|
||
to the same level as JACK (with small enough period size).
|
||
+ Bluetooth
|
||
- Improvements to profile switches.
|
||
- Improvements to volume handling.
|
||
- Fixes for A2DP sources
|
||
- Add support for battery status when available.
|
||
- Many other small improvements.
|
||
+ PulseAudio server
|
||
- handle NULL in set_default_sink/source to clear the default
|
||
- Implement a workaround for gnome-control-center when setting
|
||
the default sink/source. It also sets the target in
|
||
stream-restore to the new default. This fixes moving streams
|
||
in gnome-control-center.
|
||
- Fix some races by replying to some requests after the
|
||
operation completed.
|
||
- Prefer formats of the extended format API.
|
||
- Create a pid file on startup to improve compatibility with
|
||
apps that look for it.
|
||
- Capture streams can now be moved to monitors with pavucontrol
|
||
- Fixes for crashes
|
||
+ JACK
|
||
- jack clients can now connect to the 'default' server
|
||
- Move midi ports back to the midi client
|
||
- Only mark midi hardware ports as terminal/physical
|
||
- Use the same midi names as a2jmidid
|
||
- match system ports in get_ports.
|
||
- Improve compatibility with some apps that require a
|
||
fixed latency.
|
||
- Beginnings of the libjackserver implementation.
|
||
- Switch off libopenaptx and fdk-aac (because they are
|
||
patent-encumbered) and libcamera (problems in building).
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Mar 17 17:15:02 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- systemd-rpm-macros doesn't have a consistent versioning between
|
||
distributions, so better assume it's updated enough to support
|
||
%systemd_user_pre
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 16 11:21:02 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add systemd rpm macros for pipewire.service as well as
|
||
pipewire.socket .
|
||
- Use the new %systemd_user_pre macro on %pre to be able to
|
||
recognize when a service was installed for the first time and
|
||
enable it on %systemd_user_post (boo#1183012)
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 9 16:46:52 UTC 2021 - Frederic Crozat <fcrozat@suse.com>
|
||
|
||
- Update to version 0.3.23:
|
||
+ Highlights
|
||
- Fixes for some critical bugs in last release.
|
||
- Fix bug where audio was not drained properly at the end of
|
||
playback, causing repeating sound.
|
||
- Profile and route switching was improved and should mimic
|
||
more what pulseaudio did.
|
||
- Various fixes for xruns in capture and playback.
|
||
- Bluetooth now supports delay adjustment and various other
|
||
improvements.
|
||
- The pulseaudio server now correctly identifies AC3 and DTS
|
||
streams and returns a not supported error instead of playing
|
||
static.
|
||
- Multichannel support was improved in the alsa plugin and
|
||
the channel mixer. Channels should now play on the right
|
||
speakers in all cases.
|
||
+ PipeWire improvements
|
||
- Small fixes and improvements in JSON parsing and encoding.
|
||
- Improvements to param handling in audioconverter. It would
|
||
previously not always notify of changes.
|
||
- Avoid updating some properties that we use internally such
|
||
as the object id and the node.id.
|
||
- log.level in the config files is now actually used.
|
||
- the PIPEWIRE_LATENCY env variable should always override
|
||
any application settings in filter/stream/jack.
|
||
- The config file can now contain filer and stream properties
|
||
to, for example, control the resampler, mixer and latency.
|
||
- Add sandboxing to the systemd services
|
||
- Various FreeBSD fixes.
|
||
- Improve draining and a way to exit the drain state as well.
|
||
- Many multichannel fixes. Channel remapping should now be
|
||
correct.
|
||
- Fix bug with repeating audio at the end of playback because
|
||
the drain in the resampler was not draining all channels.
|
||
- RTKit default rt.prio has been increased to 88. This will
|
||
likely still be clamped to 20 until distros increase the
|
||
max priority.
|
||
+ Session-manager
|
||
- Don't try to switch to Pro Audio profile, this should be
|
||
a user choice only.
|
||
- Don't crash when metadata was disabled such as when not
|
||
using the audio features of pipewire.
|
||
- Rework the profile and route handling.
|
||
- Add systemd unit files for the media-session
|
||
- Device names should now also have sane names so that tab
|
||
pactl completion works on them.
|
||
+ Device support
|
||
- Fix ALSA format enumeration in more cases. Use the channels
|
||
and rate as a filter.
|
||
- Make sure the graph doesn't ever use buffers larger than
|
||
the alsa device buffer size or we get xruns.
|
||
- Tuning of the alsa device timeout handling and dynamic
|
||
resampler. There should now not be any xruns when streams
|
||
appear and disappear or when the quantum changes.
|
||
- Fix bug in alsa device when reassigning to a new driver,
|
||
in some cases the dynamic resampler was not activated and
|
||
things would drift out of sync and fail.
|
||
- Fixes in quantum changes for ALSA capture and how the
|
||
resampler is drained and fed with the new samples.
|
||
+ Bluetooth
|
||
- Delay adjustment has been implemented now. Bluetooth
|
||
devices should now be more synchronized with video due
|
||
to proper delay reporting. Because BT delays can be
|
||
large, it can cause hickups in some players.
|
||
- Fix volume in bluetooth devices.
|
||
- Codec switch improvements.
|
||
+ PulseAudio server
|
||
- Latency offset adjustment is now implemented and functional
|
||
for bluetooth devices. It is not working for alsa devices
|
||
yet.
|
||
- Handle unsupported formats. Previously we would accept encoded
|
||
formats and play noise. This fixes AC3 playback in vlc.
|
||
- Move some of the configurable parameters to the config file.
|
||
- Fix a fatal use after free when playing samples
|
||
- Improve module handling. loaded modules now show up in the
|
||
list of modules and can be unloaded. This also prepares the
|
||
core for more module implementations later.
|
||
+ ALSA plugin
|
||
- Fix drain with very large buffers, we need to manually start
|
||
the stream before draining.
|
||
- Fix the channel layout handling.
|
||
- Improve compatibility with apps that expect the poll to only
|
||
return when there is activity.
|
||
- Fix drain for capture
|
||
+ JACK
|
||
- Add a config option to shorten and filter client names
|
||
- Increase the length of the client name size and make sure
|
||
we don't exceed the allocated size.
|
||
- We now include our own jack header files so we can build
|
||
without depending on another jack-devel package. We don't
|
||
yet install the headers or provide pkgconfig files.
|
||
- Move alsa-card-profiles to modules subpackage, they are always
|
||
needed.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Mar 4 15:39:47 UTC 2021 - Niklas Haas <obs@haasn.xyz>
|
||
|
||
- Build/install the `pw-top` tool:
|
||
+ Add pkgconfig(ncurses) BuildRequires to satisfy the build deps
|
||
of pw-top.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 25 11:10:46 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Do not provide pulseaudio, but pulseaudio-daemon so we can
|
||
specify in the patterns that we prefer the pulseaudio package
|
||
(boo#1182730)
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 25 07:32:58 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.22:
|
||
+ 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.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Feb 24 11:29:58 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>
|
||
|
||
- Re-add the Provides: pulseaudio; patterns-base now suggests
|
||
pulseaudio, which should help zypp in doing a smarter decision
|
||
(boo#1182730).
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 18 09:30:54 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- ldacBT only builds on little endian architectures, so we can't
|
||
buildrequire it on big endian systems like s390, s390x or ppc64.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Feb 17 17:02:06 UTC 2021 - Dominique Leuenberger <dleuenberger@suse.com>
|
||
|
||
- Remove the pulseaudio provides from pipewire-pulseaudio:
|
||
We first need to ensure our KDE patterns (and others) become
|
||
smart enough to favor pulseaudio until we are ready for the
|
||
switch (boo#1182730).
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Feb 3 17:02:31 UTC 2021 - Dominik Schmidt <dev@dominik-schmidt.de>
|
||
|
||
- Update to version 0.3.21:
|
||
+ 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.
|
||
- Do not remove alsa-card-profiles, they are required
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Feb 3 15:32:37 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>
|
||
|
||
- Provide pulseaudio by pipewire-pulseaudio: there are various
|
||
packages in the distro that require pulseaudio, but essentially,
|
||
they should be happy with pipewire-pulseaudio as a replacement.
|
||
Do not provide the symbol though, as we do not (yet) want to
|
||
automatically migrate users over.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jan 21 12:12:43 UTC 2021 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Add pkgconfig(ldacBT-abr) and pkgconfig(ldacBT-enc)
|
||
BuildRequires: Build bluetooth ldac codec support.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jan 20 15:50:31 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.20:
|
||
+ 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.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jan 13 09:07:19 UTC 2021 - Frederic Crozat <fcrozat@suse.com>
|
||
|
||
- Update to version 0.3.19:
|
||
+ 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.
|
||
- Changes from PipeWire 0.3.18:
|
||
+ 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
|
||
- Changes from PipeWire 0.3.17:
|
||
+ 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
|
||
- Changes from PipeWire 0.3.16:
|
||
+ 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.
|
||
- Drop patches do-not-use-snd_pcm_ioplug_hw_avail.patch and
|
||
fix-memfd_create-call.patch, no longer needed on SLE/Leap which
|
||
have updated glibc / alsa.
|
||
- Drop do-not-install-alsa-config-files.patch, remove files at
|
||
install time instead.
|
||
- pw-pulse wrapper is gone, remove all mentions of it.
|
||
- Package pulseaudio replacement in a subpackage and drop
|
||
pipewire-libpulse-0_3 (pipewire will use pulseaudio libraries
|
||
directly).
|
||
- Create an alsa subpackage and move alsa pipewire plugin to this
|
||
subpackage.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Nov 5 10:37:18 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.15:
|
||
+ 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
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Nov 3 08:11:46 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.14:
|
||
+ 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.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Oct 27 17:32:57 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Rename 99-pipewire-default.conf to
|
||
99-pipewire-default.conf.example so it's disabled by default and
|
||
all ALSA I/O doesn't get redirected to pipewire (which was only
|
||
overrided by pulseaudio's configuration in alsa-plugins-pulse
|
||
casually). Thanks to Takashi Iwai for noticing (boo#1178104,
|
||
boo#1177166 and probably boo#1175584)
|
||
- Add baselibs.conf (boo#1177555)
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Oct 8 08:29:36 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.13:
|
||
+ PipeWire improvements
|
||
- Add pw-reserve tool to reserve or monitor a device on DBus.
|
||
- Install spa-resample, a tool to resample a file.
|
||
- Install spa-acp-tool, a tool to inspect the card profile.
|
||
- Various fixes and improvements
|
||
- Fix a bug in pw-stream where a capture stream could run out
|
||
of buffers and become silent.
|
||
- Rework the processing loops in the adapter and stream. There
|
||
is now less latency in PulseAudio and ALSA layers.
|
||
+ Session manager improvements
|
||
- Improve the device reservation code. We now try to acquire
|
||
the device using the dbus device reservation API before we
|
||
probe the device. This avoids conflicts with a running
|
||
PulseAudio where devices would disappear (because they were
|
||
locked by the other process).
|
||
- Don't fail on invalid input from the config files.
|
||
- Audio devices now have the same name as what PulseAudio
|
||
would assign.
|
||
+ Device support
|
||
- v4l2: try to use the format before enumerating the size and
|
||
framerate. Some drivers don't check the format and might now
|
||
work better.
|
||
- v4l2: Fall back to MMAP when EXPBUF fails. Fix MMAP access,
|
||
just export the fd and the mapoffset. This should make more
|
||
devices work.
|
||
- Fix crash in ALSA Card Profile (ACP) code.
|
||
- ACP: fix selection of default profile. Prefer any possibly
|
||
available profile over 'Off'. This makes some card at least
|
||
start with something.
|
||
- 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.
|
||
|
||
- Rebase patch:
|
||
+ do-not-install-alsa-config-files.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Sep 22 12:37:18 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.12:
|
||
+ PipeWire improvements
|
||
- The channelmap converter now handles unknown and strange
|
||
channel layouts 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.
|
||
- Drop patch:
|
||
+ 0001-alsa-dont-change-the-resampler-delay-value.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Sep 18 05:32:09 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.11:
|
||
+ 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()).
|
||
- Includes fix for a division by 0 error (boo#1176515):
|
||
+ 0021-alsa-protect-against-SIGPFE.patch
|
||
- Add patch from upstream to fix audio stutters in discord and probably
|
||
other applications when using alsa directly.
|
||
+ 0001-alsa-dont-change-the-resampler-delay-value.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Aug 27 06:00:06 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.10:
|
||
+ 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.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Aug 13 11:28:16 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.9:
|
||
+ 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.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jul 31 07:50:45 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.8:
|
||
+ 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.
|
||
|
||
- Update to version 0.3.7:
|
||
+ 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:
|
||
- 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.
|
||
- a part in the session manager that uses the permission
|
||
store to manage the permissions of portal managed
|
||
clients.
|
||
|
||
- Drop patches already included in 0.3.7:
|
||
+ 0001-client-node-fix-buffer-size-calculation.patch
|
||
+ 0002-gst-fix-proxy-leaks.patch
|
||
+ 0003-pulse-fix-pa_card_info-profiles2-array-to-be-NULL-terminated.patch
|
||
+ 0004-pulse-fix-size-calculation.patch
|
||
+ 0005-jack-fix-crash-on-close-when-metadata-are-not-available.patch
|
||
+ 0006-a2dpsink-only-request-new-data-when-buffer-is-done.patch
|
||
+ 0007-pulse-fix-counter-while-populating-car_info-profiles.patch
|
||
+ 0008-impl-link-reset-state-before-starting-allocation.patch
|
||
+ 0009-impl-core-clear-the-mempool.patch
|
||
+ 0010-mem-reset-the-map-in-clear.patch
|
||
+ 0011-avoid-uninitialized-variables.patch
|
||
+ 0012-dlclose-on-errors.patch
|
||
+ 0013-stream-handle-NULL-context.patch
|
||
+ 0014-state-always-update-state-variables.patch
|
||
+ 0015-spa-device-fix-leak-of-properties-in-error-case.patch
|
||
+ 0016-alsa-dont-leak-structure-on-error.patch
|
||
+ 0017-alsa-dont-leak-properties-on-error.patch
|
||
+ 0018-stream-fix-some-more-leaks-in-error-paths.patch
|
||
+ 0019-buffers-increase-max-datas-and-metadata-in-buffers.patch
|
||
+ 0020-gst-return-NULL-for-unknown-format.patch
|
||
- Drop patch and replace it with a sed substitution since the patch
|
||
context includes the package version and would have to be
|
||
modified in every package update:
|
||
+ fix-meson-required-version.patch
|
||
- Add patch to not install alsa card paths, profile-sets
|
||
configuration files and udev rules which upstream installs
|
||
"so that we don't have to rely on the pulseaudio ones".
|
||
+ do-not-install-alsa-config-files.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jul 15 07:26:01 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Recommend pipewire from libpipewire, so if the library is
|
||
installed the daemon gets pulled in since we want a daemon
|
||
to connect to.
|
||
- Require pipewire-spa-plugins from pipewire instead of
|
||
recommending it since the support plugin is actually required
|
||
for most uses (like screen sharing in wayland, which we want to
|
||
support out-of-the-box).
|
||
- Enable the pipewire.socket systemd user service in %post
|
||
(using pulseaudio's %post section as an example of how to do it
|
||
since systemd-presets-common-SUSE currently lacks support for
|
||
user services). Also disable it in %preun and %postun.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jul 14 08:25:49 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patches from upstream to fix many issues mainly related to
|
||
memory leaks, crashes and wrong behaviour:
|
||
+ 0001-client-node-fix-buffer-size-calculation.patch
|
||
+ 0002-gst-fix-proxy-leaks.patch
|
||
+ 0003-pulse-fix-pa_card_info-profiles2-array-to-be-NULL-terminated.patch
|
||
+ 0004-pulse-fix-size-calculation.patch
|
||
+ 0005-jack-fix-crash-on-close-when-metadata-are-not-available.patch
|
||
+ 0006-a2dpsink-only-request-new-data-when-buffer-is-done.patch
|
||
+ 0007-pulse-fix-counter-while-populating-car_info-profiles.patch
|
||
+ 0008-impl-link-reset-state-before-starting-allocation.patch
|
||
+ 0009-impl-core-clear-the-mempool.patch
|
||
+ 0010-mem-reset-the-map-in-clear.patch
|
||
+ 0011-avoid-uninitialized-variables.patch
|
||
+ 0012-dlclose-on-errors.patch
|
||
+ 0013-stream-handle-NULL-context.patch
|
||
+ 0014-state-always-update-state-variables.patch
|
||
+ 0015-spa-device-fix-leak-of-properties-in-error-case.patch
|
||
+ 0016-alsa-dont-leak-structure-on-error.patch
|
||
+ 0017-alsa-dont-leak-properties-on-error.patch
|
||
+ 0018-stream-fix-some-more-leaks-in-error-paths.patch
|
||
+ 0019-buffers-increase-max-datas-and-metadata-in-buffers.patch
|
||
+ 0020-gst-return-NULL-for-unknown-format.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jul 3 08:29:04 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Rebase patches used in SLE/Leap:
|
||
+ do-not-use-snd_pcm_ioplug_hw_avail.patch
|
||
+ fix-memfd_create-call.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jun 16 09:04:18 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.6 (boo#1171433, jsc#ECO-2308):
|
||
+ 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.
|
||
- Disable vulkan if the vulkan package is too old (as in
|
||
SLE 15 SP0 and SP1)
|
||
- Add patch to build with meson >= 0.46.0 since 0.50.0 is not
|
||
really needed:
|
||
+ fix-meson-required-version.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu May 21 08:50:18 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Filter out libpulse.so.0 and libjack.so.0 automatic provides so
|
||
this is not considered an alternative when resolving dependencies
|
||
in the distribution.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu May 21 07:51:29 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch to fix build in SLE/Leap where alsa doesn't have a
|
||
snd_pcm_ioplug_hw_avail function:
|
||
+ do-not-use-snd_pcm_ioplug_hw_avail.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Tue May 19 07:54:52 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.5:
|
||
+ 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
|
||
|
||
- Update to version 0.3.4:
|
||
+ A quick update with some important stability fixes.
|
||
|
||
- Update to version 0.3.3:
|
||
+ 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.
|
||
|
||
- Replace libpulse* replacement packages with a single
|
||
pipewire-libpulse-0_3 package that includes all libraries
|
||
installed in the non-standard directory
|
||
%{_libdir}/pipewire-0.3/pulse and a new pw-pulse wrapper script.
|
||
Likewise for the jack replacement libraries in a new
|
||
pipewire-libjack-0_3 package.
|
||
|
||
- Use update-alternatives for the wrapper scripts.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Apr 1 07:35:48 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Use the License rpm tag to specify that although most of
|
||
pipewire is licensed under MIT, the pulseaudio replacement
|
||
library is licensed under LGPL-2.1+.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 31 15:11:45 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Use gcc9 to build in SLE-15 / Leap 15, since at least gcc8 is
|
||
needed now.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 31 10:48:28 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 0.3.2:
|
||
+ 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.
|
||
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Mar 23 13:56:45 UTC 2020 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Update to version 0.3.1+48:
|
||
+ Fix 32bit build.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Mar 18 16:33:21 UTC 2020 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Switch to source service, update to explicit head, file with
|
||
non-compliant license replaced.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 17 10:58:42 UTC 2020 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Switch license to MIT and actually package it.
|
||
- Add doxygen, graphviz and xmltoman BuildRequires and pass docs
|
||
and man = true to meson, build documentation. Package docs in a
|
||
new docs sub-package.
|
||
- Add check section and run meson_test macro, run tests during
|
||
build.
|
||
- Add fdupes BuildRequires and pass fdupes macro, remove duplicate
|
||
files.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Mar 9 16:11:08 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Update to version 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
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Feb 21 15:13:15 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add patch to build correctly with glibc < 2.27 (like in SLE/Leap):
|
||
+ fix-memfd_create-call.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Feb 21 12:32:01 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
||
|
||
- Add BuildRequires for pkgconfig(sndfile) and pkgconfig(vulkan)
|
||
so the vulkan plugin is built.
|
||
- Version the spa-plugins subpackage so different versions of
|
||
the plugins can be co-installed in the future.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 20 18:54:53 UTC 2020 - Bjørn Lie <bjorn.lie@gmail.com>
|
||
|
||
- Update to version 0.3.0:
|
||
+ The 0.3 release is a major milestone in the developement 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
|
||
developement files and runtime paths are versioned so that
|
||
future incompatible changes can be done without breaking
|
||
exising 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.
|
||
- Add pkgconfig(bluez) and pkgconfig(libpulse) BuildRequires: New
|
||
dependencies.
|
||
- Bump libpipewire, apiver and spa_ver define following upstreams
|
||
changes. Also add a new sover define.
|
||
- Package new subpackages: libjack-pw0_3_0,
|
||
libpulse-mainloop-glib-pw0_3_0, libpulse-pw0_3_0 and
|
||
libpulse-simple-pw0_3_0, as well as handle them in post(un).
|
||
- Adjust options passed to meson following upstreams changes.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Nov 6 12:29:43 UTC 2019 - Fabian Vogt <fvogt@suse.com>
|
||
|
||
- Update to version 0.2.7:
|
||
+ 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)
|
||
|
||
-------------------------------------------------------------------
|
||
Wed May 22 16:33:08 UTC 2019 - Markus S <kamikazow@opensuse.org>
|
||
|
||
- Update to version 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.
|
||
- Remove pkgconfig(libv4l2) BuildRequires: follow upstreams cleanup
|
||
of build dependencies.
|
||
- Drop avoid-invalid-conversion-error-with-C++.patch: fixed
|
||
upstream.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Apr 19 14:27:04 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
|
||
|
||
- Add patch to fix use of headers from C++:
|
||
+ avoid-invalid-conversion-error-with-C++.patch
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Feb 21 13:06:16 UTC 2019 - bjorn.lie@gmail.com
|
||
|
||
- Update to version 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.
|
||
- Drop libspa define and add spa_ver define, and following this
|
||
drop libspa-lib1 subpackage, no longer built.
|
||
- Drop doxygen BuildRequires and manpages source, follow upstream
|
||
in not building docs nor manually installing manpages that have
|
||
to be updated every version bump to ensure they are current.
|
||
- Add pkgconfig(libsystemd) BuildRequires: New dependency.
|
||
- Update options passed to meson following upstream changes.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Aug 13 18:55:29 UTC 2018 - bjorn.lie@gmail.com
|
||
|
||
- Update to version 0.2.2:
|
||
+ Add apiversion to pkgconfig as well.
|
||
- Add apiver define and set it to 0.2.
|
||
- Bump libpipewire define to libpipewire-0_2-1 and libspa define to
|
||
libspa-lib1 following upstream changes.
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jul 23 19:38:08 UTC 2018 - bjorn.lie@gmail.com
|
||
|
||
- Update to version 0.2.1:
|
||
+ stream: update to latest API.
|
||
+ hook: add private data for future expansion.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jul 17 15:31:07 UTC 2018 - alarrosa@suse.com
|
||
|
||
- Update to version 0.2.0
|
||
+ No changelog provided by upstream. To see the changes in this
|
||
version, please browse the commit logs at
|
||
https://github.com/PipeWire/pipewire/commits/0.2.0 .
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Mar 13 04:27:43 UTC 2018 - luc14n0@linuxmail.org
|
||
|
||
- Initial package, version 0.1.9.
|
||
|