From 2fd00ed77fc827e19f33dc6b808c88638dabdd1c5e58ef1c0daaf1b3db0a9236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Thu, 3 Oct 2024 15:14:21 +0200 Subject: [PATCH] Sync from SUSE:SLFO:Main pipewire revision 173d16bc4468c324939162dc379fcba4 --- _service | 13 +- pipewire-1.0.3.obscpio | 3 - pipewire-1.2.5.obscpio | 3 + pipewire.changes | 804 +++++++++++++++++++++++++++++++++++++++++ pipewire.obsinfo | 6 +- pipewire.spec | 84 ++++- 6 files changed, 892 insertions(+), 21 deletions(-) delete mode 100644 pipewire-1.0.3.obscpio create mode 100644 pipewire-1.2.5.obscpio diff --git a/_service b/_service index f91f7d9..8388429 100644 --- a/_service +++ b/_service @@ -3,17 +3,18 @@ git https://gitlab.freedesktop.org/pipewire/pipewire.git - 1.0.3 + 1.2.5 @PARENT_TAG@ - + *.tar - xz + zst diff --git a/pipewire-1.0.3.obscpio b/pipewire-1.0.3.obscpio deleted file mode 100644 index de3bdb6..0000000 --- a/pipewire-1.0.3.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab709313076d865cb51f77d81a92afcf40f99d7a3967f912a2497698db738307 -size 12437517 diff --git a/pipewire-1.2.5.obscpio b/pipewire-1.2.5.obscpio new file mode 100644 index 0000000..b843d01 --- /dev/null +++ b/pipewire-1.2.5.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2180de53712b02c7a4a57fe791c69e75e8d20977f844b711bb6458e7dfe0dda +size 13199373 diff --git a/pipewire.changes b/pipewire.changes index 911f528..f1c5531 100644 --- a/pipewire.changes +++ b/pipewire.changes @@ -1,3 +1,807 @@ +------------------------------------------------------------------- +Sun Sep 29 18:31:08 UTC 2024 - Antonio Larrosa + +- 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 + +- 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 + +- Add %{_pam_secdistconfdir}/limits.d to filelist + +------------------------------------------------------------------- +Tue Aug 27 14:55:37 UTC 2024 - Bjørn Lie + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- Avoid %if %{pkg_vcmp gcc < 8}, instead replicate the condition + from the BuildRequires section. + +------------------------------------------------------------------- +Wed Mar 13 10:12:26 UTC 2024 - Antonio Larrosa + +- 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 + +- 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 + +- 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 + +- Use %patch -P N instead of deprecated %patchN. + +------------------------------------------------------------------- +Wed Feb 21 06:48:22 UTC 2024 - Antonio Larrosa + +- 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 + +- 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 diff --git a/pipewire.obsinfo b/pipewire.obsinfo index 77ea39d..07d4255 100644 --- a/pipewire.obsinfo +++ b/pipewire.obsinfo @@ -1,4 +1,4 @@ name: pipewire -version: 1.0.3 -mtime: 1706879347 -commit: 6ab86209f23a841de7eac6bc0c1009aceb9ffd87 +version: 1.2.5 +mtime: 1727431340 +commit: 71fac7fa818f21234da4c356de0b44e47e1a2ef2 diff --git a/pipewire.spec b/pipewire.spec index 776392a..8370afb 100644 --- a/pipewire.spec +++ b/pipewire.spec @@ -59,22 +59,32 @@ %bcond_with use_ffmpeg %endif +%if 0%{?without_apparmor:0} +%bcond_with apparmor +%else +%bcond_without apparmor +%endif + %bcond_with aptx Name: pipewire -Version: 1.0.3 +Version: 1.2.5 Release: 0 Summary: A Multimedia Framework designed to be an audio and video server and more License: MIT Group: Development/Libraries/C and C++ URL: https://pipewire.org/ -Source0: %{name}-%{version}.tar.xz +Source0: %{name}-%{version}.tar.zst Source99: baselibs.conf # PATCH-FIX-OPENSUSE reduce-meson-dependency.patch Patch0: reduce-meson-dependency.patch BuildRequires: docutils -BuildRequires: doxygen +%if 0%{suse_version} > 1500 +BuildRequires: doxygen >= 1.9.7 +%else +BuildRequires: doxygen-1_10 +%endif BuildRequires: fdupes BuildRequires: gcc-c++ %if 0%{?suse_version} <= 1500 @@ -117,6 +127,9 @@ BuildRequires: pkgconfig(lc3) %if %{with libcamera} BuildRequires: libcamera-devel >= 0.2.0 %endif +%if %{with apparmor} +BuildRequires: pkgconfig(libapparmor) +%endif BuildRequires: pkgconfig(libcanberra) BuildRequires: pkgconfig(libcap) BuildRequires: pkgconfig(libdrm) @@ -191,6 +204,12 @@ Summary: PipeWire libjack replacement libraries Group: Development/Libraries/C and C++ Requires(post): 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} 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} Summary: Plugins For PipeWire SPA Group: Productivity/Multimedia/Other -Suggests: pipewire-libjack-%{apiver_str} %description spa-plugins-%{spa_ver_str} 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. +%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 Summary: Development Files For PipeWire, A Multimedia Framework Group: Development/Libraries/C and C++ @@ -334,6 +376,8 @@ Requires: %{libpipewire} >= %{version}-%{release} Recommends: %{name} >= %{version}-%{release} # Both providing /etc/alsa/conf.d/99-*-default.conf can cause issues 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 This package contains an ALSA plugin for the PipeWire media server. @@ -345,6 +389,7 @@ Requires: %{libpipewire} >= %{version}-%{release} Requires: %{name} >= %{version}-%{release} Requires: pulseaudio-utils Recommends: pipewire-alsa +Conflicts: pipewire-modules < 1.0.0 Conflicts: pulseaudio # Virtual Provides to support swapping between PipeWire-PA and PA Conflicts: pulseaudio-daemon @@ -385,11 +430,11 @@ JACK libraries. %autosetup -N %if %{?pkg_vcmp:%{pkg_vcmp meson <= 0.61.0}} sed -ie "s/version : '0.3.72'/version : '%{version}'/" %{P:0} -%patch0 -p1 +%patch -P 0 -p1 %endif %build -%if %{pkg_vcmp gcc < 8} +%if 0%{?suse_version} <= 1500 export CC=gcc-11 export CXX=g++-11 %endif @@ -429,6 +474,7 @@ export CXX=g++-11 %endif -Dbluez5-codec-lc3=enabled \ -Dbluez5-codec-lc3plus=disabled \ + -Dgsettings-pulse-schema=disabled \ %if %{with libcamera} -Dlibcamera=enabled \ %else @@ -446,6 +492,7 @@ export CXX=g++-11 %endif -Dsession-managers="[]" \ -Dsdl2=disabled \ + -Dsnap=disabled \ %if %{with_webrtc_audio_processing} -Decho-cancel-webrtc=enabled \ %else @@ -461,8 +508,6 @@ cp %{buildroot}%{_datadir}/alsa/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 \ %{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 mkdir -p %{buildroot}%{_pam_secdistconfdir}/limits.d/ @@ -587,6 +632,7 @@ fi %license LICENSE COPYING %doc README.md %if 0%{?suse_version} > 1500 +%dir %{_pam_secdistconfdir}/limits.d %{_pam_secdistconfdir}/limits.d/25-pw-rlimits.conf %else %config(noreplace) %{_sysconfdir}/security/limits.d/25-pw-rlimits.conf @@ -601,7 +647,19 @@ fi %{_userunitdir}/pipewire.socket %{_userunitdir}/filter-chain.service %{_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-jack.conf.5%{?ext_man} +%{_mandir}/man7/pipewire-devices.7%{?ext_man} + %dir %{_datadir}/pipewire/ %{_datadir}/pipewire/pipewire.conf %{_datadir}/pipewire/pipewire.conf.avail/ @@ -624,6 +682,8 @@ fi %files modules-%{apiver_str} %dir %{_libdir}/pipewire-%{apiver} %{_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-protocol-pulse.so %dir %{_libdir}/pipewire-%{apiver}/v4l2/ @@ -657,7 +717,6 @@ fi %if %{with use_ffmpeg} %{_libdir}/spa-%{spa_ver}/ffmpeg/ %endif -%{_libdir}/spa-%{spa_ver}/jack/ %if %{with libcamera} %{_libdir}/spa-%{spa_ver}/libcamera/ %endif @@ -704,6 +763,7 @@ fi %{_bindir}/pw-cat %{_bindir}/pw-cli %{_bindir}/pw-config +%{_bindir}/pw-container %{_bindir}/pw-dot %{_bindir}/pw-dsdplay %{_bindir}/pw-dump @@ -724,6 +784,7 @@ fi %{_mandir}/man1/pw-cat.1%{?ext_man} %{_mandir}/man1/pw-cli.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-dump.1%{?ext_man} %{_mandir}/man1/pw-link.1%{?ext_man} @@ -779,6 +840,11 @@ fi %files jack %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 %changelog