* 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.
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=213
* 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
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=211
* 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.
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=210
* 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
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=208
* 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.
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=206
- 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)
OBS-URL: https://build.opensuse.org/request/show/1173580
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=198
- 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
OBS-URL: https://build.opensuse.org/request/show/1172232
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=196
- 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
OBS-URL: https://build.opensuse.org/request/show/1168479
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=194
- 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
OBS-URL: https://build.opensuse.org/request/show/1157531
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=188
- 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
- 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.
- Add patch from upstream submitted at glfo#pipewire/pipewire#1932
that fixes selecting the pipewire gstreamer plugins by the
OBS-URL: https://build.opensuse.org/request/show/1157175
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=187
- 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)
OBS-URL: https://build.opensuse.org/request/show/1143072
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=178
- 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.
OBS-URL: https://build.opensuse.org/request/show/1138105
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=174
- 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.
OBS-URL: https://build.opensuse.org/request/show/1128882
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=172
- 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.
OBS-URL: https://build.opensuse.org/request/show/1126953
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=170
- 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.
OBS-URL: https://build.opensuse.org/request/show/1122661
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=168