Accepting request 1095401 from multimedia:libs

OBS-URL: https://build.opensuse.org/request/show/1095401
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=86
This commit is contained in:
Dominique Leuenberger 2023-06-27 21:15:44 +00:00 committed by Git OBS Bridge
commit b8dff6c9d3
8 changed files with 127 additions and 67 deletions

View File

@ -1,50 +0,0 @@
From 1b823f1bc3363c496758a9230c9f5d4ce4491815 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Thu, 18 May 2023 09:59:26 +0200
Subject: [PATCH] jack: update bufsize and samplerate when skipping notify
When we skip the notify because we are not active or we don't have a
callback, still update the buffer_size and sample_rate fields or else
we will keep on trying forever.
Fixes #3226
---
pipewire-jack/src/pipewire-jack.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/pipewire-jack/src/pipewire-jack.c b/pipewire-jack/src/pipewire-jack.c
index ee82425a9..ed21ccf76 100644
--- a/pipewire-jack/src/pipewire-jack.c
+++ b/pipewire-jack/src/pipewire-jack.c
@@ -1027,8 +1027,6 @@ static int queue_notify(struct client *c, int type, struct object *o, int arg1,
struct notify *notify;
bool emit = false;;
- if ((type & NOTIFY_ACTIVE_FLAG) && !c->active)
- return 0;
switch (type) {
case NOTIFY_TYPE_REGISTRATION:
emit = c->registration_callback != NULL && o != NULL;
@@ -1060,8 +1058,18 @@ static int queue_notify(struct client *c, int type, struct object *o, int arg1,
default:
break;
}
+ if ((type & NOTIFY_ACTIVE_FLAG) && !c->active)
+ emit = false;
if (!emit) {
- pw_log_debug("%p: skip notify %d", c, type);
+ switch (type) {
+ case NOTIFY_TYPE_BUFFER_FRAMES:
+ c->buffer_frames = arg1;
+ break;
+ case NOTIFY_TYPE_SAMPLE_RATE:
+ c->sample_rate = arg1;
+ break;
+ }
+ pw_log_debug("%p: skip notify %08x active:%d", c, type, c->active);
if (o != NULL && arg1 == 0 && o->removing) {
o->removing = false;
free_object(c, o);
--
2.40.1

View File

@ -3,7 +3,7 @@
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://gitlab.freedesktop.org/pipewire/pipewire.git</param>
<param name="revision">0.3.71</param>
<param name="revision">0.3.72</param>
<param name="versionformat">@PARENT_TAG@</param>
<!--
<param name="revision">master</param>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a50d8d5b1dda0be39acca19ea380bdedc7dfd8ebaaf9ffaf90262bcfc0544536
size 11773965

3
pipewire-0.3.72.obscpio Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d2d0896ae46034c3a1c46779f8492f76d31a2ff973337222fa225886ac1d2ba7
size 11973133

View File

@ -1,3 +1,111 @@
-------------------------------------------------------------------
Mon Jun 26 09:30:37 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.3.72:
* Highlights
- Fix a critical bug that would refuse to update the samplerate
or buffersize in JACK clients.
- A new module-netjack2-driver and module-netjack2-manager were
added that are compatible with NETJACK2. This allows PipeWire
to become a NETJACK2 manager or a driver between JACK2 or
PipeWire servers.
- Support was added for firewire devices with FFADO. This is
untested for now and MIDI is not implemented yet.
- The node scheduling was optimized some more. External drivers
are now as efficient as in-server ones. This should improve
performance of various drivers such as bluetooth and JACK
based drivers.
- Many, many bug fixes and a ton of improvements.
* PipeWire
- pw-filter can now be used to write sinks and sources.
- The node activation for drivers was changed. The driver now
does not need to go to the server to start the processing
cycle. This makes out-of-server drivers as efficient as
in-server drivers.
- Don't try to use drivers with 0 priority as fallback drivers.
This avoids making the screencast driver a driver for audio.
- Improve xrun count reporting in pw-top and the profiler. Now
each node has their own xrun counter updated when it fails to
complete processing during the cycle.
- pw-filter now also has support for TRIGGER.
- A potential fd leak was found when fds were send to a zombie
client.
- Fix a bug where monitor or capture streams were logged twice
in the profiler.
- Remove stream hooks safely.
- A bug in serialization of container properties was fixed.
This could result in truncated property values.
- The PIPEWIRE_AUTOCONNECT environment variable now always
overrides the autoconnect settings of streams.
- Node, port and link destroy now avoids some useless work.
- Port will now try to renegotiate a new format when idle.
* Modules
- The module-sap now is more compatible with AES67.
- A new FFADO driver module was added. This is completely
untested because of lack of hardware. Please test and report
issues.
- A new NETJACK2 driver and a NETJACK2 manager module were
added. These should be drop in replacements for the JACK2
parts.
- The RAOP discover module now tries harder to only list
devices once.
- The zeroconf discover module now tries harder to only list
devices once.
- The RAOP sink module now handles latency better and is
compatible with some more devices.
- The loopback and filter-chain modules now always dequeue the
last input buffer to avoid stuttering in some cases.
- The SPA node factory module can now also export nodes. This
is used to export the PTP clock from the AES67 config file.
- A bug in module-jack-tunnel was fixed that would cause
stuttering and corrupted output in some cases.
- The resampler is now disabled in module-loopback and
filter-chain when the samplerate is set to follow the graph
rate.
- The way the mixer peer is sent to clients was improved. It is
now also possible to let a remote node know about mixer port
removes, which can avoid memory leaks and some code
simplifications.
* SPA
- Monitor ports now report latency correctly.
- The ALSA plugin now uses htimestamp to get a more accurate
ringbuffer position to estimate the clock skew.
- The channelmixer now has min/max-volume settings to limit or
fix the volume.
- The ALSA plugin can now control the playback and capture rate
of USB gadgets. This can avoid resampling and instead use the
USB feedback to control the rate.
- The ALSA output to multiple devices has been improved, some
lockups are avoided when the device ringbuffer is full.
- The compress-offload sink has improved negotiation.
* pulse-server
- Only try to use GSettings when the schema exists.
- @DEFAULT_SOURCE@, @DEFAULT_SINK@ and @DEFAULT_MONITOR@ are
now correctly handled as targets in playback and capture
streams.
- 2 new quirks are added to disable volume updates on
sinks/sources.
- The virtual-sink and virtual-source modules were added. These
are really example modules but actually also work and are
useful on PulseAudio so implement them as well.
- Fix initial stream volumes.
* Bluetooth
- Only register A2DP or BAP when we have codecs.
- Include codec into the media.name
* JACK
- Fix a critical bug that would refuse to update the samplerate
or buffersize.
- Improve updates of samplerate/buffersize, delay the updates
until the client is activated.
- Use the new mix-info updates to simplify the mixer setup and
peer detection.
* GStreamer
- Fill default strides instead of 0 on pipewire video buffers.
- Remove patch already included upstream:
* 0001-jack-update-bufsize-and-samplerate-when-skipping-not.patch
- Move libjack* conflicts from package pipewire-libjack-0_3 (which
has coinstallable libraries) to pipewire-jack (which includes
the ld.so.conf.d file).
-------------------------------------------------------------------
Wed May 31 06:50:17 UTC 2023 - Dominique Leuenberger <dleuenberger@suse.com>

View File

@ -1,4 +1,4 @@
name: pipewire
version: 0.3.71
mtime: 1684319631
commit: bd225b14bbda1a6e2dc7a52780eaf728920e0ff2
version: 0.3.72
mtime: 1687765341
commit: 4cc22d60d2280fb3c771e6a246e79c90819fd485

View File

@ -60,7 +60,7 @@
%bcond_with aptx
Name: pipewire
Version: 0.3.71
Version: 0.3.72
Release: 0
Summary: A Multimedia Framework designed to be an audio and video server and more
License: MIT
@ -70,8 +70,6 @@ Source0: %{name}-%{version}.tar.xz
Source99: baselibs.conf
# PATCH-FIX-OPENSUSE reduce-meson-dependency.patch
Patch0: reduce-meson-dependency.patch
# PATCH-FIX-UPSTREAM 0001-jack-update-bufsize-and-samplerate-when-skipping-not.patch
Patch1: 0001-jack-update-bufsize-and-samplerate-when-skipping-not.patch
BuildRequires: docutils
BuildRequires: doxygen
BuildRequires: fdupes
@ -119,6 +117,7 @@ BuildRequires: libcamera-devel >= 0.0.1
BuildRequires: pkgconfig(libcanberra)
BuildRequires: pkgconfig(libcap)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libffado)
%if %{with aptx}
BuildRequires: pkgconfig(libfreeaptx)
%endif
@ -187,9 +186,6 @@ Summary: PipeWire libjack replacement libraries
Group: Development/Libraries/C and C++
Requires(post): update-alternatives
Requires(postun):update-alternatives
Conflicts: libjack0
Conflicts: libjacknet0
Conflicts: libjackserver0
%description libjack-%{apiver_str}
PipeWire is a server and user space API to deal with multimedia pipelines.
@ -367,9 +363,16 @@ Recommends: jack-dbus
Conflicts: jack-daemon
Provides: jack-daemon
#Provides: pulseaudio-module-jack
# We want applications to link with pipewire-libjack libraries and
# not the original ones
Conflicts: libjack0
Conflicts: libjacknet0
Conflicts: libjackserver0
%description jack
This package provides a JACK implementation based on PipeWire
This package provides an ld.so.conf file that makes all JACK clients
use the JACK implementation based on PipeWire instead of the original
JACK libraries.
%lang_package
@ -378,7 +381,6 @@ This package provides a JACK implementation based on PipeWire
%if %{?pkg_vcmp:%{pkg_vcmp meson <= 0.61.0}}
%patch0 -p1
%endif
%patch1 -p1
%build
%if %{pkg_vcmp gcc < 8}
@ -662,6 +664,7 @@ fi
%{_bindir}/pw-jack
%{_mandir}/man1/pw-jack-%{apiver}.1%{?ext_man}
%{_mandir}/man1/pw-jack.1%{?ext_man}
%{_datadir}/pipewire/jack.conf
%files libjack-%{apiver_str}-devel
%{_libdir}/pipewire-%{apiver}/jack/libjack.so
@ -747,7 +750,6 @@ fi
%files jack
%config %{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf
%{_datadir}/pipewire/jack.conf
%files lang -f %{name}.lang

View File

@ -4,7 +4,7 @@ Index: pipewire-0.3.69/meson.build
+++ pipewire-0.3.69/meson.build
@@ -1,7 +1,7 @@
project('pipewire', ['c' ],
version : '0.3.71',
version : '0.3.72',
license : [ 'MIT', 'LGPL-2.1-or-later', 'GPL-2.0-only' ],
- meson_version : '>= 0.61.1',
+ meson_version : '>= 0.59.4',