Accepting request 1058208 from multimedia:libs

OBS-URL: https://build.opensuse.org/request/show/1058208
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=73
This commit is contained in:
Dominique Leuenberger 2023-01-14 19:31:23 +00:00 committed by Git OBS Bridge
commit 426ba472c9
12 changed files with 139 additions and 190 deletions

View File

@ -1,29 +0,0 @@
From 89ac6b353521fb9a6d6eb6bb74724c4fa968f75c Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Sat, 17 Dec 2022 18:17:33 +0100
Subject: [PATCH] =?UTF-8?q?alsa:=20don=C2=B4t=20set=20-1=20as=20node.targe?=
=?UTF-8?q?t?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Leave the target unset when -1, just like what pw-stream does.
See #2893
---
pipewire-alsa/alsa-plugins/pcm_pipewire.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pipewire-alsa/alsa-plugins/pcm_pipewire.c b/pipewire-alsa/alsa-plugins/pcm_pipewire.c
index 37a907b24..96b57da78 100644
--- a/pipewire-alsa/alsa-plugins/pcm_pipewire.c
+++ b/pipewire-alsa/alsa-plugins/pcm_pipewire.c
@@ -579,7 +579,7 @@ static int snd_pcm_pipewire_prepare(snd_pcm_ioplug_t *io)
pw_properties_setf(props, PW_KEY_NODE_LATENCY, "%lu/%u", pw->min_avail, io->rate);
if (pw_properties_get(props, PW_KEY_NODE_RATE) == NULL)
pw_properties_setf(props, PW_KEY_NODE_RATE, "1/%u", io->rate);
- if (pw->target != NULL &&
+ if (pw->target != NULL && !spa_streq(pw->target, "-1") &&
pw_properties_get(props, PW_KEY_NODE_TARGET) == NULL)
pw_properties_setf(props, PW_KEY_NODE_TARGET, "%s", pw->target);

View File

@ -1,24 +0,0 @@
From ed463248721cc03c826f80dac9667b238c844e03 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
Date: Sun, 1 Jan 2023 02:00:36 +0000
Subject: [PATCH] alsa: fix memory leak of properties
---
pipewire-alsa/alsa-plugins/ctl_pipewire.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/pipewire-alsa/alsa-plugins/ctl_pipewire.c b/pipewire-alsa/alsa-plugins/ctl_pipewire.c
index 71f02f90e..67bd2f432 100644
--- a/pipewire-alsa/alsa-plugins/ctl_pipewire.c
+++ b/pipewire-alsa/alsa-plugins/ctl_pipewire.c
@@ -1083,6 +1083,7 @@ static void proxy_destroy(void *data)
struct global *g = data;
spa_list_remove(&g->link);
g->proxy = NULL;
+ pw_properties_free(g->props);
}
static const struct pw_proxy_events proxy_events = {
--
GitLab

View File

@ -1,43 +0,0 @@
From 860b8fc27ffbfd0a095e3fa4b0cd125d536283d3 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Thu, 29 Dec 2022 12:22:56 +0100
Subject: [PATCH] modules: fix rate update
Setting the rate with the PROP_rate would actually result in a rate
adjustment of 1.0f / rate, so do the same here.
See #2891
---
src/modules/module-pulse-tunnel.c | 2 +-
src/modules/module-rtp-source.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/modules/module-pulse-tunnel.c b/src/modules/module-pulse-tunnel.c
index 916400d22..be89a51b3 100644
--- a/src/modules/module-pulse-tunnel.c
+++ b/src/modules/module-pulse-tunnel.c
@@ -270,7 +270,7 @@ static void update_rate(struct impl *impl, bool playback)
impl->current_latency, impl->target_latency);
SPA_FLAG_SET(impl->rate_match->flags, SPA_IO_RATE_MATCH_FLAG_ACTIVE);
- impl->rate_match->rate = corr;
+ impl->rate_match->rate = 1.0f / corr;
}
static void playback_stream_process(void *d)
diff --git a/src/modules/module-rtp-source.c b/src/modules/module-rtp-source.c
index bc25cdc3d..6d1443e6c 100644
--- a/src/modules/module-rtp-source.c
+++ b/src/modules/module-rtp-source.c
@@ -272,7 +272,7 @@ static void stream_process(void *data)
if (sess->rate_match) {
SPA_FLAG_SET(sess->rate_match->flags, SPA_IO_RATE_MATCH_FLAG_ACTIVE);
- sess->rate_match->rate = corr;
+ sess->rate_match->rate = 1.0f / corr;
}
}
spa_ringbuffer_read_data(&sess->ring,
--
GitLab

View File

@ -1,39 +0,0 @@
From f7c49bbdde5f9f09270ac391990264a501761420 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Thu, 15 Dec 2022 13:12:47 +0100
Subject: [PATCH] pulse-server: add channel-map in echo-cancel module
---
.../module-protocol-pulse/modules/module-echo-cancel.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/modules/module-protocol-pulse/modules/module-echo-cancel.c b/src/modules/module-protocol-pulse/modules/module-echo-cancel.c
index 47dfa75bb..72e0095b5 100644
--- a/src/modules/module-protocol-pulse/modules/module-echo-cancel.c
+++ b/src/modules/module-protocol-pulse/modules/module-echo-cancel.c
@@ -70,6 +70,7 @@ static int module_echo_cancel_load(struct module *module)
const char *str;
char *args;
size_t size;
+ uint32_t i;
if ((f = open_memstream(&args, &size)) == NULL)
return -errno;
@@ -85,7 +86,13 @@ static int module_echo_cancel_load(struct module *module)
fprintf(f, " audio.rate = %u", data->info.rate);
if (data->info.channels != 0) {
fprintf(f, " audio.channels = %u", data->info.channels);
- /* TODO: convert channel positions to string */
+ if (!(data->info.flags & SPA_AUDIO_FLAG_UNPOSITIONED)) {
+ fprintf(f, " audio.position = [ ");
+ for (i = 0; i < data->info.channels; i++)
+ fprintf(f, "%s%s", i == 0 ? "" : ",",
+ channel_id2name(data->info.position[i]));
+ fprintf(f, " ]");
+ }
}
fprintf(f, " source.props = {");
pw_properties_serialize_dict(f, &data->source_props->dict, 0);
--
2.39.0

View File

@ -1,26 +0,0 @@
From c7b3ef0d9ff16a1e69a299870860bebcb628e298 Mon Sep 17 00:00:00 2001
From: Pauli Virtanen <pav@iki.fi>
Date: Wed, 21 Dec 2022 12:54:52 +0200
Subject: [PATCH] bluez5: backend-native: fix missing brace in CIND reply
It should look like ...,("battchg,(0-5)) not ...,"battchg",(0-5))
---
spa/plugins/bluez5/backend-native.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/spa/plugins/bluez5/backend-native.c b/spa/plugins/bluez5/backend-native.c
index eed23f66e..ab543a621 100644
--- a/spa/plugins/bluez5/backend-native.c
+++ b/spa/plugins/bluez5/backend-native.c
@@ -74,7 +74,7 @@ enum {
HFP_AG_INITIAL_CODEC_SETUP_WAIT
};
-#define CIND_INDICATORS "(\"service\",(0-1)),(\"call\",(0-1)),(\"callsetup\",(0-3)),(\"callheld\",(0-2)),(\"signal\",(0-5)),(\"roam\",(0-1)),\"battchg\",(0-5))"
+#define CIND_INDICATORS "(\"service\",(0-1)),(\"call\",(0-1)),(\"callsetup\",(0-3)),(\"callheld\",(0-2)),(\"signal\",(0-5)),(\"roam\",(0-1)),(\"battchg\",(0-5))"
enum {
CIND_SERVICE = 1,
CIND_CALL,
--
2.39.0

View File

@ -3,7 +3,7 @@
<service name="obs_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://gitlab.freedesktop.org/pipewire/pipewire.git</param>
<param name="revision">refs/tags/0.3.63</param>
<param name="revision">refs/tags/0.3.64</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:d79a10a9d418ef4ec4314e3e257f063990ad32970c708bfa1a28d403f1c244dc
size 11569677

3
pipewire-0.3.64.obscpio Normal file
View File

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

View File

@ -1,3 +1,126 @@
-------------------------------------------------------------------
Fri Jan 13 07:46:11 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.3.64:
* Highlights
- Clear old buffer memory on ports to fix some SIGBUS errors.
- It is now possible to assign custom port names to the ports
from an adapter. This feature is helpful to those who use a
multichannel interface with long-term connections. This way
they can label each port with its designation, such as an
instrument name or anything else to be displayed in a
patchbay or DAW.
- Fix some issues with node suspend and quantum and rate
calculations.
- Fix some regressions in pulse-tunnel and RTP-source adaptive
resampling that could cause synchronization problems.
- UCM devices now also have a Pro Audio profile.
- NODE_TARGET (with the object.id) is now deprecated, use
TARGET_OBJECT (with the object.serial, which is not reused
and can avoid races).
* PipeWire
- Clear all peer input port buffers when suspending. This fixes
some SIGBUS errors when some plugins were using old memory.
(#2914)
- Fix a case where nodes that were not supposed to be
suspended, were kept suspended on a rate change. (#2929)
- Fix an error in the quantum and rate calculations that could
cause nodes to run with wrong quantum and rates when multiple
rates were allowed. (#2925)
* Tools
- pw-dump will now sort dictionaries to make it easier to
compare different outputs.
- Improve output of pw-reserve.
- pw-loopback uses TARGET_OBJECT so you will need to use the
serial id (or better the name) as the target instead of the
object id.
* modules
- The filter-chain modules has seen some cleanups, refactoring
and optimizations in the various DSP functions.
- The ROC module now supports setting a custom samplerate.
- ROC 0.2.X is now required.
- The pulse tunnel and RTP source were not updating the rate
field correctly which could cause synchronization problems.
(#2891)
- The filter-chain now supports an arbitrary number of control
properties. (#2933)
- It is now possible to assign custom port names to the ports
from an adapter with the PW_KEY_NODE_CHANNELNAMES.
- Support was added for capture and playback props in
echo-cancel. (#2939)
* SPA
- The ACP code now has an option to set the probe samplerate.
(#1599)
- UCM devices now also have a Pro Audio profile.
- Filtering of Step ranges is now implemented.
* Pulse-Server
- The channel-map is now set correctly on the echo-cancel
module.
- source_master and sink_master are now correctly handled in
module echo-cancel.
- Fix a regression in DRAIN where resuming after a DRAIN would
fail. This caused problems for espeak. (#2928)
- TARGET_OBJECT is now used to make it possible to use the
indexes as a target.
- ladspa-source and remap-source can now also link to monitors.
* ALSA
- The ALSA plugin now handles the target.object correctly when
set to -1. (#2893)
* V4L2
- The v4l2 replacement library now also follows symlinks.
- Support for getting and setting controls was added.
- Support for G_PARM was added.
- The environment variable PIPEWIRE_V4L2_TARGET can be used to
force an application onto a specific camera.
* Bluetooth
- Fix compilation without ldac_abr.
- Fix a missing brace in CIND reply. This could cause some
devices to fail.
- Fix configuration of the initial latency.
* GStreamer
- The device provider now supports setting an fd so that it can
connect to PipeWire sessions from the portal.
- DMABuf support was re-enabled in gstpipewiresrc.
- Rebase reduce-meson-dependency.patch.
- Remove patches from upstream
* 0001-pulse-server-add-channel-map-in-echo-cancel-module.patch
* 0003-bluez5-backend-native-fix-missing-brace-in-CIND-reply.patch
* 0001-alsa-dont-set--1-as-node.target.patch
* 0001-modules-fix-rate-update.patch
* 0001-alsa-fix-memory-leak-of-properties.patch
* 0001-module-rt-fix-warning-when-xdg-desktop-portal-isnt-running.patch
* 0001-midifile-error-won-invalid-track-size.patch
* 0001-impl-node-move-2-state-variables-to-private.patch
* 0001-context-rename-a-method.patch
* 0002-impl-node-restore-running-state-after-reconfigure.patch
* 0001-context-keep-per-node-quantum-and-rate-settings.patch
* 0001-fix-use_buffers-checks.patch
* 0001-pulse-server-clear-the-drained-state-correctly.patch
-------------------------------------------------------------------
Wed Jan 11 09:44:52 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>
- Add several patches from upstream to fix several issues
(glfo#pipewire/pipewire#2925, glfo#pipewire/pipewire#2928,
glfo#pipewire/pipewire#2929):
* 0001-module-rt-fix-warning-when-xdg-desktop-portal-isnt-running.patch
* 0001-midifile-error-won-invalid-track-size.patch
* 0001-impl-node-move-2-state-variables-to-private.patch
* 0001-context-rename-a-method.patch
* 0002-impl-node-restore-running-state-after-reconfigure.patch
* 0001-context-keep-per-node-quantum-and-rate-settings.patch
* 0001-fix-use_buffers-checks.patch
* 0001-pulse-server-clear-the-drained-state-correctly.patch
-------------------------------------------------------------------
Thu Jan 5 20:07:10 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
- Disable ffmpeg support, only needed for pw-play and pw-record.
Break a circular dependency with ffmpeg-5. Do this via disabling
pkgconfig(libavcodec), pkgconfig(libavfilter) and
pkgconfig(libavformat) BuildRequires as well as passing
ffmpeg=disabled to meson.
-------------------------------------------------------------------
Wed Jan 4 11:25:48 UTC 2023 - Antonio Larrosa <alarrosa@suse.com>

View File

@ -1,4 +1,4 @@
name: pipewire
version: 0.3.63
mtime: 1671094583
commit: 5ff00f40b9d3ecfc38305edc27e9c2b01629802c
version: 0.3.64
mtime: 1673515864
commit: bba452695eb673461c5cf626eec57728991eadf7

View File

@ -54,7 +54,7 @@
%bcond_with aptx
Name: pipewire
Version: 0.3.63
Version: 0.3.64
Release: 0
Summary: A Multimedia Framework designed to be an audio and video server and more
License: MIT
@ -64,16 +64,7 @@ Source0: %{name}-%{version}.tar.xz
Source99: baselibs.conf
# PATCH-FIX-OPENSUSE reduce-meson-dependency.patch
Patch0: reduce-meson-dependency.patch
# PATCH-FIX-UPSTREAM 0001-pulse-server-add-channel-map-in-echo-cancel-module.patch
Patch1: 0001-pulse-server-add-channel-map-in-echo-cancel-module.patch
# PATCH-FIX-UPSTREAM 0001-alsa-dont-set--1-as-node.target.patch
Patch2: 0001-alsa-dont-set--1-as-node.target.patch
# PATCH-FIX-UPSTREAM 0003-bluez5-backend-native-fix-missing-brace-in-CIND-reply.patch
Patch3: 0003-bluez5-backend-native-fix-missing-brace-in-CIND-reply.patch
# PATCH-FIX-UPSTREAM 0001-modules-fix-rate-update.patch
Patch4: 0001-modules-fix-rate-update.patch
# PATCH-FIX-UPSTREAM 0001-alsa-fix-memory-leak-of-properties.patch
Patch5: 0001-alsa-fix-memory-leak-of-properties.patch
BuildRequires: docutils
BuildRequires: doxygen
BuildRequires: fdupes
@ -113,9 +104,10 @@ BuildRequires: pkgconfig(jack) >= 1.9.10
BuildRequires: pkgconfig(ldacBT-abr)
BuildRequires: pkgconfig(ldacBT-enc)
%endif
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavfilter)
BuildRequires: pkgconfig(libavformat)
# ffmpeg disabled on purpose, only used for pw-play and pw-record (break circular dependency with ffmpeg).
#BuildRequires: pkgconfig(libavcodec)
#BuildRequires: pkgconfig(libavfilter)
#BuildRequires: pkgconfig(libavformat)
%if %{with libcamera}
BuildRequires: libcamera-devel >= 0.0.1
%endif
@ -364,11 +356,6 @@ This package provides a PulseAudio implementation based on PipeWire
%if 0%{?suse_version} <= 1500 && 0%{?sle_version} <= 150300
%patch0 -p1
%endif
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%build
%if %{pkg_vcmp gcc < 8}
@ -379,7 +366,7 @@ export CXX=g++-9
-Ddocs=enabled \
-Dman=enabled \
-Dgstreamer=enabled \
-Dffmpeg=enabled \
-Dffmpeg=disabled \
-Dsystemd=enabled \
-Dsystemd-user-unit-dir=%{_userunitdir} \
-Dgstreamer-device-provider=disabled \
@ -601,7 +588,7 @@ fi
%{_libdir}/spa-%{spa_ver}/avb/
%{_libdir}/spa-%{spa_ver}/bluez5/
%{_libdir}/spa-%{spa_ver}/control/
%{_libdir}/spa-%{spa_ver}/ffmpeg/
#%%{_libdir}/spa-%%{spa_ver}/ffmpeg/
%{_libdir}/spa-%{spa_ver}/jack/
%if %{with libcamera}
%{_libdir}/spa-%{spa_ver}/libcamera/

View File

@ -121,7 +121,7 @@ Index: pipewire-0.3.63/meson.build
+++ pipewire-0.3.63/meson.build
@@ -1,7 +1,7 @@
project('pipewire', ['c' ],
version : '0.3.63',
version : '0.3.64',
license : [ 'MIT', 'LGPL-2.1-or-later', 'GPL-2.0-only' ],
- meson_version : '>= 0.59.0',
+ meson_version : '>= 0.54.0',