Sync from SUSE:SLFO:Main pipewire revision 173d16bc4468c324939162dc379fcba4

This commit is contained in:
Adrian Schröter 2024-10-03 15:14:21 +02:00
parent 4dd73a7bc0
commit 2fd00ed77f
6 changed files with 892 additions and 21 deletions

View File

@ -3,17 +3,18 @@
<service name="obs_scm" mode="manual"> <service name="obs_scm" mode="manual">
<param name="scm">git</param> <param name="scm">git</param>
<param name="url">https://gitlab.freedesktop.org/pipewire/pipewire.git</param> <param name="url">https://gitlab.freedesktop.org/pipewire/pipewire.git</param>
<param name="revision">1.0.3</param> <param name="revision">1.2.5</param>
<param name="versionformat">@PARENT_TAG@</param> <param name="versionformat">@PARENT_TAG@</param>
<!-- <!--
<param name="revision">master</param> <param name="revision">60deeb25558a794e6e664bb832318b87958c18ea</param>
<param name="versionformat">@PARENT_TAG@+git%cd.%h</param> <param name="versionformat">@PARENT_TAG@+git@TAG_OFFSET@.%h</param>
--> <param name="changesgenerate">enable</param>
-->
</service> </service>
<service name="tar" mode="buildtime"/> <service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime"> <service name="recompress" mode="buildtime">
<param name="file">*.tar</param> <param name="file">*.tar</param>
<param name="compression">xz</param> <param name="compression">zst</param>
</service> </service>
<service name="set_version" mode="manual" /> <service name="set_version" mode="manual" />
</services> </services>

BIN
pipewire-1.0.3.obscpio (Stored with Git LFS)

Binary file not shown.

BIN
pipewire-1.2.5.obscpio (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,3 +1,807 @@
-------------------------------------------------------------------
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> Sat Feb 3 16:44:06 UTC 2024 - Alexei Sorokin <sor.alexei@meowr.ru>

View File

@ -1,4 +1,4 @@
name: pipewire name: pipewire
version: 1.0.3 version: 1.2.5
mtime: 1706879347 mtime: 1727431340
commit: 6ab86209f23a841de7eac6bc0c1009aceb9ffd87 commit: 71fac7fa818f21234da4c356de0b44e47e1a2ef2

View File

@ -59,22 +59,32 @@
%bcond_with use_ffmpeg %bcond_with use_ffmpeg
%endif %endif
%if 0%{?without_apparmor:0}
%bcond_with apparmor
%else
%bcond_without apparmor
%endif
%bcond_with aptx %bcond_with aptx
Name: pipewire Name: pipewire
Version: 1.0.3 Version: 1.2.5
Release: 0 Release: 0
Summary: A Multimedia Framework designed to be an audio and video server and more Summary: A Multimedia Framework designed to be an audio and video server and more
License: MIT License: MIT
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
URL: https://pipewire.org/ URL: https://pipewire.org/
Source0: %{name}-%{version}.tar.xz Source0: %{name}-%{version}.tar.zst
Source99: baselibs.conf Source99: baselibs.conf
# PATCH-FIX-OPENSUSE reduce-meson-dependency.patch # PATCH-FIX-OPENSUSE reduce-meson-dependency.patch
Patch0: reduce-meson-dependency.patch Patch0: reduce-meson-dependency.patch
BuildRequires: docutils BuildRequires: docutils
BuildRequires: doxygen %if 0%{suse_version} > 1500
BuildRequires: doxygen >= 1.9.7
%else
BuildRequires: doxygen-1_10
%endif
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: gcc-c++ BuildRequires: gcc-c++
%if 0%{?suse_version} <= 1500 %if 0%{?suse_version} <= 1500
@ -117,6 +127,9 @@ BuildRequires: pkgconfig(lc3)
%if %{with libcamera} %if %{with libcamera}
BuildRequires: libcamera-devel >= 0.2.0 BuildRequires: libcamera-devel >= 0.2.0
%endif %endif
%if %{with apparmor}
BuildRequires: pkgconfig(libapparmor)
%endif
BuildRequires: pkgconfig(libcanberra) BuildRequires: pkgconfig(libcanberra)
BuildRequires: pkgconfig(libcap) BuildRequires: pkgconfig(libcap)
BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libdrm)
@ -191,6 +204,12 @@ Summary: PipeWire libjack replacement libraries
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires(post): update-alternatives Requires(post): update-alternatives
Requires(postun): update-alternatives Requires(postun): update-alternatives
# Since the pipewire-libjack package is sometimes completely replacing the
# original jack libraries for some users we better make sure either they
# are also installed or we completely replace them with the pipewire
# libraries
Requires: ((libjack0 and libjacknet0 and libjackserver0) or pipewire-jack)
Recommends: (pipewire-jack if wireplumber-audio else libjack0)
%description libjack-%{apiver_str} %description libjack-%{apiver_str}
PipeWire is a server and user space API to deal with multimedia pipelines. PipeWire is a server and user space API to deal with multimedia pipelines.
@ -289,7 +308,6 @@ This package contains X11 bell support for PipeWire.
%package spa-plugins-%{spa_ver_str} %package spa-plugins-%{spa_ver_str}
Summary: Plugins For PipeWire SPA Summary: Plugins For PipeWire SPA
Group: Productivity/Multimedia/Other Group: Productivity/Multimedia/Other
Suggests: pipewire-libjack-%{apiver_str}
%description spa-plugins-%{spa_ver_str} %description spa-plugins-%{spa_ver_str}
PipeWire is a server and user space API to deal with multimedia pipelines. PipeWire is a server and user space API to deal with multimedia pipelines.
@ -310,6 +328,30 @@ Some of its features include:
This package provides plugins for extending PipeWire SPA's functionality. This package provides plugins for extending PipeWire SPA's functionality.
%package spa-plugins-%{spa_ver_str}-jack
Summary: SPA Plugin to use PipeWire as jack client
Group: Productivity/Multimedia/Other
Requires: jack
%description spa-plugins-%{spa_ver_str}-jack
PipeWire is a server and user space API to deal with multimedia pipelines.
Some of its features include:
* Unlimited input/output ports;
* Per port format enumeration and negotiation;
* Enumeration/configuration of per port parameters;
* Application controlled buffer allocation with option to let the plugin
Allocate memory;
* Arbitrary buffer metadata;
* Buffers are passed around by id which is very fast and avoids the need
for refcounting;
* Synchronous and asynchronous processing;
* All api is designed to work without any allocations;
* Arbirary input/output behaviour.
This package provides the SPA plugin to connect Pipewire to a JACK server
%package devel %package devel
Summary: Development Files For PipeWire, A Multimedia Framework Summary: Development Files For PipeWire, A Multimedia Framework
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
@ -334,6 +376,8 @@ Requires: %{libpipewire} >= %{version}-%{release}
Recommends: %{name} >= %{version}-%{release} Recommends: %{name} >= %{version}-%{release}
# Both providing /etc/alsa/conf.d/99-*-default.conf can cause issues # Both providing /etc/alsa/conf.d/99-*-default.conf can cause issues
Conflicts: alsa-plugins-pulse Conflicts: alsa-plugins-pulse
# This is needed so that pipewire-alsa is not installed with the real pulseaudio (boo#1221235)
Requires: pipewire-pulseaudio
%description alsa %description alsa
This package contains an ALSA plugin for the PipeWire media server. This package contains an ALSA plugin for the PipeWire media server.
@ -345,6 +389,7 @@ Requires: %{libpipewire} >= %{version}-%{release}
Requires: %{name} >= %{version}-%{release} Requires: %{name} >= %{version}-%{release}
Requires: pulseaudio-utils Requires: pulseaudio-utils
Recommends: pipewire-alsa Recommends: pipewire-alsa
Conflicts: pipewire-modules < 1.0.0
Conflicts: pulseaudio Conflicts: pulseaudio
# Virtual Provides to support swapping between PipeWire-PA and PA # Virtual Provides to support swapping between PipeWire-PA and PA
Conflicts: pulseaudio-daemon Conflicts: pulseaudio-daemon
@ -385,11 +430,11 @@ JACK libraries.
%autosetup -N %autosetup -N
%if %{?pkg_vcmp:%{pkg_vcmp meson <= 0.61.0}} %if %{?pkg_vcmp:%{pkg_vcmp meson <= 0.61.0}}
sed -ie "s/version : '0.3.72'/version : '%{version}'/" %{P:0} sed -ie "s/version : '0.3.72'/version : '%{version}'/" %{P:0}
%patch0 -p1 %patch -P 0 -p1
%endif %endif
%build %build
%if %{pkg_vcmp gcc < 8} %if 0%{?suse_version} <= 1500
export CC=gcc-11 export CC=gcc-11
export CXX=g++-11 export CXX=g++-11
%endif %endif
@ -429,6 +474,7 @@ export CXX=g++-11
%endif %endif
-Dbluez5-codec-lc3=enabled \ -Dbluez5-codec-lc3=enabled \
-Dbluez5-codec-lc3plus=disabled \ -Dbluez5-codec-lc3plus=disabled \
-Dgsettings-pulse-schema=disabled \
%if %{with libcamera} %if %{with libcamera}
-Dlibcamera=enabled \ -Dlibcamera=enabled \
%else %else
@ -446,6 +492,7 @@ export CXX=g++-11
%endif %endif
-Dsession-managers="[]" \ -Dsession-managers="[]" \
-Dsdl2=disabled \ -Dsdl2=disabled \
-Dsnap=disabled \
%if %{with_webrtc_audio_processing} %if %{with_webrtc_audio_processing}
-Decho-cancel-webrtc=enabled \ -Decho-cancel-webrtc=enabled \
%else %else
@ -461,8 +508,6 @@ cp %{buildroot}%{_datadir}/alsa/alsa.conf.d/50-pipewire.conf \
%{buildroot}%{_sysconfdir}/alsa/conf.d/50-pipewire.conf %{buildroot}%{_sysconfdir}/alsa/conf.d/50-pipewire.conf
cp %{buildroot}%{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf \ cp %{buildroot}%{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf \
%{buildroot}%{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf %{buildroot}%{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf
mkdir -p %{buildroot}%{_udevrulesdir}
mv -fv %{buildroot}/lib/udev/rules.d/90-pipewire-alsa.rules %{buildroot}%{_udevrulesdir}
%if 0%{?suse_version} > 1500 %if 0%{?suse_version} > 1500
mkdir -p %{buildroot}%{_pam_secdistconfdir}/limits.d/ mkdir -p %{buildroot}%{_pam_secdistconfdir}/limits.d/
@ -587,6 +632,7 @@ fi
%license LICENSE COPYING %license LICENSE COPYING
%doc README.md %doc README.md
%if 0%{?suse_version} > 1500 %if 0%{?suse_version} > 1500
%dir %{_pam_secdistconfdir}/limits.d
%{_pam_secdistconfdir}/limits.d/25-pw-rlimits.conf %{_pam_secdistconfdir}/limits.d/25-pw-rlimits.conf
%else %else
%config(noreplace) %{_sysconfdir}/security/limits.d/25-pw-rlimits.conf %config(noreplace) %{_sysconfdir}/security/limits.d/25-pw-rlimits.conf
@ -601,7 +647,19 @@ fi
%{_userunitdir}/pipewire.socket %{_userunitdir}/pipewire.socket
%{_userunitdir}/filter-chain.service %{_userunitdir}/filter-chain.service
%{_mandir}/man1/pipewire.1%{?ext_man} %{_mandir}/man1/pipewire.1%{?ext_man}
%{_mandir}/man1/pw-reserve.1%{?ext_man}
%{_mandir}/man1/pw-v4l2.1%{?ext_man}
%{_mandir}/man1/spa-acp-tool.1%{?ext_man}
%{_mandir}/man1/spa-inspect.1%{?ext_man}
%{_mandir}/man1/spa-json-dump.1%{?ext_man}
%{_mandir}/man1/spa-monitor.1%{?ext_man}
%{_mandir}/man1/spa-resample.1%{?ext_man}
%{_mandir}/man5/pipewire-client.conf.5%{?ext_man}
%{_mandir}/man5/pipewire-filter-chain.conf.5%{?ext_man}
%{_mandir}/man5/pipewire.conf.5%{?ext_man} %{_mandir}/man5/pipewire.conf.5%{?ext_man}
%{_mandir}/man5/pipewire-jack.conf.5%{?ext_man}
%{_mandir}/man7/pipewire-devices.7%{?ext_man}
%dir %{_datadir}/pipewire/ %dir %{_datadir}/pipewire/
%{_datadir}/pipewire/pipewire.conf %{_datadir}/pipewire/pipewire.conf
%{_datadir}/pipewire/pipewire.conf.avail/ %{_datadir}/pipewire/pipewire.conf.avail/
@ -624,6 +682,8 @@ fi
%files modules-%{apiver_str} %files modules-%{apiver_str}
%dir %{_libdir}/pipewire-%{apiver} %dir %{_libdir}/pipewire-%{apiver}
%{_libdir}/pipewire-%{apiver}/libpipewire-module-*.so %{_libdir}/pipewire-%{apiver}/libpipewire-module-*.so
%exclude %{_libdir}/pipewire-%{apiver}/libpipewire-module-jack-tunnel.so
%exclude %{_libdir}/pipewire-%{apiver}/libpipewire-module-jackdbus-detect.so
%exclude %{_libdir}/pipewire-%{apiver}/libpipewire-module-x11-bell.so %exclude %{_libdir}/pipewire-%{apiver}/libpipewire-module-x11-bell.so
%exclude %{_libdir}/pipewire-%{apiver}/libpipewire-module-protocol-pulse.so %exclude %{_libdir}/pipewire-%{apiver}/libpipewire-module-protocol-pulse.so
%dir %{_libdir}/pipewire-%{apiver}/v4l2/ %dir %{_libdir}/pipewire-%{apiver}/v4l2/
@ -657,7 +717,6 @@ fi
%if %{with use_ffmpeg} %if %{with use_ffmpeg}
%{_libdir}/spa-%{spa_ver}/ffmpeg/ %{_libdir}/spa-%{spa_ver}/ffmpeg/
%endif %endif
%{_libdir}/spa-%{spa_ver}/jack/
%if %{with libcamera} %if %{with libcamera}
%{_libdir}/spa-%{spa_ver}/libcamera/ %{_libdir}/spa-%{spa_ver}/libcamera/
%endif %endif
@ -704,6 +763,7 @@ fi
%{_bindir}/pw-cat %{_bindir}/pw-cat
%{_bindir}/pw-cli %{_bindir}/pw-cli
%{_bindir}/pw-config %{_bindir}/pw-config
%{_bindir}/pw-container
%{_bindir}/pw-dot %{_bindir}/pw-dot
%{_bindir}/pw-dsdplay %{_bindir}/pw-dsdplay
%{_bindir}/pw-dump %{_bindir}/pw-dump
@ -724,6 +784,7 @@ fi
%{_mandir}/man1/pw-cat.1%{?ext_man} %{_mandir}/man1/pw-cat.1%{?ext_man}
%{_mandir}/man1/pw-cli.1%{?ext_man} %{_mandir}/man1/pw-cli.1%{?ext_man}
%{_mandir}/man1/pw-config.1%{?ext_man} %{_mandir}/man1/pw-config.1%{?ext_man}
%{_mandir}/man1/pw-container.1%{?ext_man}
%{_mandir}/man1/pw-dot.1%{?ext_man} %{_mandir}/man1/pw-dot.1%{?ext_man}
%{_mandir}/man1/pw-dump.1%{?ext_man} %{_mandir}/man1/pw-dump.1%{?ext_man}
%{_mandir}/man1/pw-link.1%{?ext_man} %{_mandir}/man1/pw-link.1%{?ext_man}
@ -779,6 +840,11 @@ fi
%files jack %files jack
%config %{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf %config %{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf
%files spa-plugins-%{spa_ver_str}-jack
%{_libdir}/pipewire-%{apiver}/libpipewire-module-jack-tunnel.so
%{_libdir}/pipewire-%{apiver}/libpipewire-module-jackdbus-detect.so
%{_libdir}/spa-%{spa_ver}/jack/
%files lang -f %{name}.lang %files lang -f %{name}.lang
%changelog %changelog