Accepting request 1009760 from multimedia:libs

OBS-URL: https://build.opensuse.org/request/show/1009760
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=65
This commit is contained in:
Richard Brown 2022-10-11 16:01:46 +00:00 committed by Git OBS Bridge
commit 2642e29397
8 changed files with 203 additions and 71 deletions

View File

@ -0,0 +1,40 @@
From 94a64268613adac8ef6f3e6c1f04468220540d00 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Mon, 3 Oct 2022 09:55:44 +0200
Subject: [PATCH] filter-chain: iterate the port correctly
Don't use the number of handles to iterate the output ports but the
number of output ports on the node.
Fixes #2737
---
src/modules/module-filter-chain.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/modules/module-filter-chain.c b/src/modules/module-filter-chain.c
index 6a899ef5f..9d65aa938 100644
--- a/src/modules/module-filter-chain.c
+++ b/src/modules/module-filter-chain.c
@@ -1561,6 +1561,10 @@ static int load_node(struct graph *graph, struct spa_json *json)
node->control_port = calloc(desc->n_control, sizeof(struct port));
node->notify_port = calloc(desc->n_notify, sizeof(struct port));
+ pw_log_info("loaded n_input:%d n_output:%d n_control:%d n_notify:%d",
+ desc->n_input, desc->n_output,
+ desc->n_control, desc->n_notify);
+
for (i = 0; i < desc->n_input; i++) {
struct port *port = &node->input_port[i];
port->node = node;
@@ -1953,6 +1957,8 @@ static int setup_graph(struct graph *graph, struct spa_json *inputs, struct spa_
gh->hndl = &node->hndl[i];
gh->desc = d;
+ }
+ for (i = 0; i < desc->n_output; i++) {
spa_list_for_each(link, &node->output_port[i].link_list, output_link)
link->input->node->n_deps--;
}
--
2.37.3

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.58</param>
<param name="revision">refs/tags/0.3.59</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:8aa6496870acd376d9ac79914a8cf7c42b8231cba853a4203b67e52ce8411c3c
size 11203597

3
pipewire-0.3.59.obscpio Normal file
View File

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

View File

@ -1,3 +1,83 @@
-------------------------------------------------------------------
Sat Oct 8 20:46:58 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
- Add 0001-filter-chain-iterate-the-port-correctly.patch: Fix
filter-chain convolver segfault at start.
-------------------------------------------------------------------
Sat Oct 1 18:25:10 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
- Update to version 0.3.59:
* Highlights
- Fix possible wrong samplerate in loopback streams after
suspend and rate switch.
- module-filter-chain can now adapt to the graph samplerate.
- Fix some potential stuttering and crackling in pulse-server.
- Add Bluetooth LE support. This requires experimental kernel
and bluez support.
- The ALSA plugin has more options to control the buffer size.
This can be used to work around high latency in
davinci resolve.
- Many bugfixes and improvements.
* PipeWire
- Add audio capture example with volume meter.
- Fix a case where a rate switch would not suspend all the
nodes of the driver first. This could cause wrong samplerates
in streams.
- Fix a case where a node would be Paused while still added to
the graph, causing potential crashes.
* Modules
- module-filter-chain and module-loopback now use the
resample.prefill option to avoid buffering extra samples and
causing unwanted latency when resampling is activated.
- module-filter-chain can now adapt to the graph samplerate.
- Improve module-raop to support the ALAC codec as raw PCM.
- Improve RTSP parsing to improve compatibility.
* Tools
- Fix 100% CPU in pw-cli monitor mode.
- spa-acp-tool can now be exited with ctrl-D.
* SPA
- Various libcamera fixes and improvements.
- Set stride on audioconvert output buffers.
- Make sure we always place the last requested size from the
resampler on the buffers in pw-stream.
- Add resample.prefill option in the resampler to fill the
history with 0 so that we don't have smaller buffers at the
start.
- Make sure that when an overflow corrupts a POD, that it will
always stay corrupted.
- Rate limit some ALSA warnings and reduce some unwanted
warnings.
- Don't recalculate the audioconverter state for each
pause/play.
- Fix some POD parsing inconsistencies and potential overflows.
- Add support for Asus Xonar SE.
- Fix Flush command handling. It should not stop playback.
- Refactor the peaks function and add some unit tests and
optimisations.
- The channelmix has an optimized nXm converter and new
unit tests.
- Normalisation in the channelmixer was fixed.
* pulse-server
- The requested latency of record streams was reduced to fix
some stuttering in Teamspeak.
- Tweak the max amount of bytes sent to a client.
- Improve maxlength calculations, this fixes some crackling
noise with high samplerate and channel counts in some
players (audacious).
* Bluetooth
- Merge Bluetooth LE support.
- Make sure we are backward compatible with WirePlumber.
- Fix some HFP and HSP AT command parsing.
- Use HFP by default over HSP.
* ALSA
- Increase max number of periods.
- The parameters handling was improved. There is now an option
to set the buffer-bytes of the ALSA plugin.
- PIPEWIRE_ALSA can now be used as an environment variable to
restrict the plugin formats and buffer size.
- Rebase reduce-meson-dependency.patch.
-------------------------------------------------------------------
Thu Sep 15 09:26:22 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>

View File

@ -1,4 +1,4 @@
name: pipewire
version: 0.3.58
mtime: 1663167737
commit: 64a3edf89ec07957107dff984f053f41ded443fe
version: 0.3.59
mtime: 1664524688
commit: f54a72fd9a67eeb8d1502d6d75979dbddb00fdf2

View File

@ -54,7 +54,7 @@
%bcond_with aptx
Name: pipewire
Version: 0.3.58
Version: 0.3.59
Release: 0
Summary: A Multimedia Framework designed to be an audio and video server and more
License: MIT
@ -64,6 +64,8 @@ Source0: %{name}-%{version}.tar.xz
Source99: baselibs.conf
# PATCH-FIX-OPENSUSE reduce-meson-dependency.patch
Patch0: reduce-meson-dependency.patch
# PATCH-FIX-UPSTREAM 0001-filter-chain-iterate-the-port-correctly.patch
Patch1: 0001-filter-chain-iterate-the-port-correctly.patch
BuildRequires: docutils
BuildRequires: doxygen
BuildRequires: fdupes
@ -335,6 +337,7 @@ This package provides a PulseAudio implementation based on PipeWire
%if 0%{?sle_version} <= 150300
%patch0 -p1
%endif
%patch1 -p1
%build
%if %{pkg_vcmp gcc < 8}

View File

@ -1,7 +1,7 @@
Index: pipewire-0.3.57/doc/meson.build
Index: pipewire-0.3.59/doc/meson.build
===================================================================
--- pipewire-0.3.57.orig/doc/meson.build
+++ pipewire-0.3.57/doc/meson.build
--- pipewire-0.3.59.orig/doc/meson.build
+++ pipewire-0.3.59/doc/meson.build
@@ -1,8 +1,8 @@
doxyfile_conf = configuration_data()
doxyfile_conf.set('PACKAGE_NAME', meson.project_name())
@ -102,10 +102,10 @@ Index: pipewire-0.3.57/doc/meson.build
doxyfile = configure_file(input: 'Doxyfile.in',
output: 'Doxyfile',
Index: pipewire-0.3.57/man/meson.build
Index: pipewire-0.3.59/man/meson.build
===================================================================
--- pipewire-0.3.57.orig/man/meson.build
+++ pipewire-0.3.57/man/meson.build
--- pipewire-0.3.59.orig/man/meson.build
+++ pipewire-0.3.59/man/meson.build
@@ -21,7 +21,7 @@ manpages = [
'pw-top.1.rst.in',
]
@ -115,18 +115,18 @@ Index: pipewire-0.3.57/man/meson.build
manpages += 'pw-jack.1.rst.in'
endif
Index: pipewire-0.3.57/meson.build
Index: pipewire-0.3.59/meson.build
===================================================================
--- pipewire-0.3.57.orig/meson.build
+++ pipewire-0.3.57/meson.build
--- pipewire-0.3.59.orig/meson.build
+++ pipewire-0.3.59/meson.build
@@ -1,7 +1,7 @@
project('pipewire', ['c' ],
version : '0.3.58',
version : '0.3.59',
license : [ 'MIT', 'LGPL-2.1-or-later', 'GPL-2.0-only' ],
- meson_version : '>= 0.59.0',
+ meson_version : '>= 0.54.0',
default_options : [ 'warning_level=3',
'c_std=gnu99',
'c_std=gnu11',
'cpp_std=c++17',
@@ -235,8 +235,8 @@ includes_inc = include_directories('incl
pipewire_inc = include_directories('src')
@ -227,10 +227,10 @@ Index: pipewire-0.3.57/meson.build
+if meson.version().version_compare('>=0.58.0')
+ meson.add_devenv(devenv)
+endif
Index: pipewire-0.3.57/spa/meson.build
Index: pipewire-0.3.59/spa/meson.build
===================================================================
--- pipewire-0.3.57.orig/spa/meson.build
+++ pipewire-0.3.57/spa/meson.build
--- pipewire-0.3.59.orig/spa/meson.build
+++ pipewire-0.3.59/spa/meson.build
@@ -31,7 +31,7 @@ pkgconfig.generate(filebase : 'lib@0@'.f
subdir('include')
@ -240,7 +240,7 @@ Index: pipewire-0.3.57/spa/meson.build
udevrulesdir = get_option('udevrulesdir')
if udevrulesdir == ''
# absolute path, otherwise meson prepends the prefix
@@ -84,6 +84,6 @@ endif
@@ -86,6 +86,6 @@ endif
subdir('tools')
subdir('tests')
@ -248,11 +248,11 @@ Index: pipewire-0.3.57/spa/meson.build
+if (get_option('examples').enabled() or get_option('examples').auto())
subdir('examples')
endif
Index: pipewire-0.3.57/spa/plugins/audioconvert/meson.build
Index: pipewire-0.3.59/spa/plugins/audioconvert/meson.build
===================================================================
--- pipewire-0.3.57.orig/spa/plugins/audioconvert/meson.build
+++ pipewire-0.3.57/spa/plugins/audioconvert/meson.build
@@ -146,7 +146,7 @@ foreach a : test_apps
--- pipewire-0.3.59.orig/spa/plugins/audioconvert/meson.build
+++ pipewire-0.3.59/spa/plugins/audioconvert/meson.build
@@ -148,7 +148,7 @@ foreach a : test_apps
install : installed_tests_enabled,
install_dir : installed_tests_execdir / 'audioconvert'),
env : [
@ -261,7 +261,7 @@ Index: pipewire-0.3.57/spa/plugins/audioconvert/meson.build
])
if installed_tests_enabled
@@ -176,7 +176,7 @@ foreach a : benchmark_apps
@@ -178,7 +178,7 @@ foreach a : benchmark_apps
install : installed_tests_enabled,
install_dir : installed_tests_execdir / 'audioconvert'),
env : [
@ -270,10 +270,10 @@ Index: pipewire-0.3.57/spa/plugins/audioconvert/meson.build
])
if installed_tests_enabled
Index: pipewire-0.3.57/spa/plugins/audiomixer/meson.build
Index: pipewire-0.3.59/spa/plugins/audiomixer/meson.build
===================================================================
--- pipewire-0.3.57.orig/spa/plugins/audiomixer/meson.build
+++ pipewire-0.3.57/spa/plugins/audiomixer/meson.build
--- pipewire-0.3.59.orig/spa/plugins/audiomixer/meson.build
+++ pipewire-0.3.59/spa/plugins/audiomixer/meson.build
@@ -81,7 +81,7 @@ foreach a : test_apps
install : installed_tests_enabled,
install_dir : installed_tests_execdir / 'audiomixer'),
@ -292,10 +292,10 @@ Index: pipewire-0.3.57/spa/plugins/audiomixer/meson.build
])
if installed_tests_enabled
Index: pipewire-0.3.57/spa/plugins/bluez5/meson.build
Index: pipewire-0.3.59/spa/plugins/bluez5/meson.build
===================================================================
--- pipewire-0.3.57.orig/spa/plugins/bluez5/meson.build
+++ pipewire-0.3.57/spa/plugins/bluez5/meson.build
--- pipewire-0.3.59.orig/spa/plugins/bluez5/meson.build
+++ pipewire-0.3.59/spa/plugins/bluez5/meson.build
@@ -6,12 +6,12 @@ foreach dep: bluez5_deps
endforeach
@ -344,7 +344,7 @@ Index: pipewire-0.3.57/spa/plugins/bluez5/meson.build
-if get_option('bluez5-codec-lc3plus').allowed() and lc3plus_dep.found()
+if (get_option('bluez5-codec-lc3plus').enabled() or get_option('bluez5-codec-lc3plus').auto()) and lc3plus_dep.found()
bluez_codec_lc3plus = shared_library('spa-codec-bluez5-lc3plus',
[ 'a2dp-codec-lc3plus.c', 'a2dp-codecs.c' ],
[ 'a2dp-codec-lc3plus.c', 'media-codecs.c' ],
include_directories : [ configinc ],
@@ -120,7 +120,7 @@ if get_option('bluez5-codec-lc3plus').al
install_dir : spa_plugindir / 'bluez5')
@ -355,10 +355,19 @@ Index: pipewire-0.3.57/spa/plugins/bluez5/meson.build
opus_args = codec_args
opus_dep = [ opus_dep ]
bluez_codec_opus = shared_library('spa-codec-bluez5-opus',
Index: pipewire-0.3.57/spa/plugins/meson.build
@@ -132,7 +132,7 @@ if get_option('bluez5-codec-opus').allow
install_dir : spa_plugindir / 'bluez5')
endif
-if get_option('bluez5-codec-lc3').allowed() and lc3_dep.found()
+if (get_option('bluez5-codec-lc3').enabled() or get_option('bluez5-codec-lc3').auto()) and lc3_dep.found()
bluez_codec_lc3 = shared_library('spa-codec-bluez5-lc3',
[ 'bap-codec-lc3.c', 'media-codecs.c' ],
include_directories : [ configinc ],
Index: pipewire-0.3.59/spa/plugins/meson.build
===================================================================
--- pipewire-0.3.57.orig/spa/plugins/meson.build
+++ pipewire-0.3.57/spa/plugins/meson.build
--- pipewire-0.3.59.orig/spa/plugins/meson.build
+++ pipewire-0.3.59/spa/plugins/meson.build
@@ -1,19 +1,22 @@
if alsa_dep.found()
subdir('alsa')
@ -412,10 +421,10 @@ Index: pipewire-0.3.57/spa/plugins/meson.build
subdir('volume')
endif
if vulkan_headers
Index: pipewire-0.3.57/spa/plugins/support/meson.build
Index: pipewire-0.3.59/spa/plugins/support/meson.build
===================================================================
--- pipewire-0.3.57.orig/spa/plugins/support/meson.build
+++ pipewire-0.3.57/spa/plugins/support/meson.build
--- pipewire-0.3.59.orig/spa/plugins/support/meson.build
+++ pipewire-0.3.59/spa/plugins/support/meson.build
@@ -23,7 +23,7 @@ spa_support_lib = shared_library('spa-su
install_dir : spa_plugindir / 'support')
spa_support_dep = declare_dependency(link_with: spa_support_lib)
@ -425,10 +434,10 @@ Index: pipewire-0.3.57/spa/plugins/support/meson.build
evl_inc = include_directories('/usr/evl/include')
evl_lib = cc.find_library('evl',
dirs: ['/usr/evl/lib/'],
Index: pipewire-0.3.57/spa/tests/meson.build
Index: pipewire-0.3.59/spa/tests/meson.build
===================================================================
--- pipewire-0.3.57.orig/spa/tests/meson.build
+++ pipewire-0.3.57/spa/tests/meson.build
--- pipewire-0.3.59.orig/spa/tests/meson.build
+++ pipewire-0.3.59/spa/tests/meson.build
@@ -5,7 +5,7 @@ find = find_program('find', required: fa
summary({'find (for header testing)': find.found()}, bool_yn: true, section: 'Optional programs')
if find.found()
@ -447,10 +456,10 @@ Index: pipewire-0.3.57/spa/tests/meson.build
]
)
Index: pipewire-0.3.57/src/daemon/meson.build
Index: pipewire-0.3.59/src/daemon/meson.build
===================================================================
--- pipewire-0.3.57.orig/src/daemon/meson.build
+++ pipewire-0.3.57/src/daemon/meson.build
--- pipewire-0.3.59.orig/src/daemon/meson.build
+++ pipewire-0.3.59/src/daemon/meson.build
@@ -18,9 +18,9 @@ conf_config.set('pulse_comment', '#')
conf_config_uninstalled = conf_config
@ -472,10 +481,10 @@ Index: pipewire-0.3.57/src/daemon/meson.build
)
#desktop_file = i18n.merge_file(
Index: pipewire-0.3.57/src/daemon/systemd/meson.build
Index: pipewire-0.3.59/src/daemon/systemd/meson.build
===================================================================
--- pipewire-0.3.57.orig/src/daemon/systemd/meson.build
+++ pipewire-0.3.57/src/daemon/systemd/meson.build
--- pipewire-0.3.59.orig/src/daemon/systemd/meson.build
+++ pipewire-0.3.59/src/daemon/systemd/meson.build
@@ -1,6 +1,6 @@
-if get_option('systemd-system-service').allowed()
+if (get_option('systemd-system-service').enabled() or get_option('systemd-system-service').auto())
@ -485,20 +494,20 @@ Index: pipewire-0.3.57/src/daemon/systemd/meson.build
+if (get_option('systemd-user-service').enabled() or get_option('systemd-user-service').auto())
subdir('user')
endif
Index: pipewire-0.3.57/src/daemon/systemd/user/meson.build
Index: pipewire-0.3.59/src/daemon/systemd/user/meson.build
===================================================================
--- pipewire-0.3.57.orig/src/daemon/systemd/user/meson.build
+++ pipewire-0.3.57/src/daemon/systemd/user/meson.build
--- pipewire-0.3.59.orig/src/daemon/systemd/user/meson.build
+++ pipewire-0.3.59/src/daemon/systemd/user/meson.build
@@ -1,4 +1,4 @@
-systemd_user_services_dir = systemd.get_variable('systemduserunitdir', pkgconfig_define : [ 'prefix', prefix])
+#systemd_user_services_dir = systemd.get_variable('systemduserunitdir', pkgconfig_define : [ 'prefix', prefix])
if get_option('systemd-user-unit-dir') != ''
systemd_user_services_dir = get_option('systemd-user-unit-dir')
endif
Index: pipewire-0.3.57/src/gst/meson.build
Index: pipewire-0.3.59/src/gst/meson.build
===================================================================
--- pipewire-0.3.57.orig/src/gst/meson.build
+++ pipewire-0.3.57/src/gst/meson.build
--- pipewire-0.3.59.orig/src/gst/meson.build
+++ pipewire-0.3.59/src/gst/meson.build
@@ -8,7 +8,7 @@ pipewire_gst_sources = [
'gstpipewiresrc.c',
]
@ -508,10 +517,10 @@ Index: pipewire-0.3.57/src/gst/meson.build
pipewire_gst_sources += [ 'gstpipewiredeviceprovider.c' ]
endif
Index: pipewire-0.3.57/src/meson.build
Index: pipewire-0.3.59/src/meson.build
===================================================================
--- pipewire-0.3.57.orig/src/meson.build
+++ pipewire-0.3.57/src/meson.build
--- pipewire-0.3.59.orig/src/meson.build
+++ pipewire-0.3.59/src/meson.build
@@ -3,10 +3,10 @@ subdir('pipewire')
subdir('daemon')
subdir('tools')
@ -525,10 +534,10 @@ Index: pipewire-0.3.57/src/meson.build
subdir('tests')
endif
Index: pipewire-0.3.57/src/modules/meson.build
Index: pipewire-0.3.59/src/modules/meson.build
===================================================================
--- pipewire-0.3.57.orig/src/modules/meson.build
+++ pipewire-0.3.57/src/modules/meson.build
--- pipewire-0.3.59.orig/src/modules/meson.build
+++ pipewire-0.3.59/src/modules/meson.build
@@ -386,9 +386,9 @@ test('pw-test-protocol-native',
install_dir : installed_tests_execdir,
),
@ -555,10 +564,10 @@ Index: pipewire-0.3.57/src/modules/meson.build
pipewire_module_avb = shared_library('pipewire-module-avb',
[ 'module-avb.c',
'module-avb/avb.c',
Index: pipewire-0.3.57/src/tests/meson.build
Index: pipewire-0.3.59/src/tests/meson.build
===================================================================
--- pipewire-0.3.57.orig/src/tests/meson.build
+++ pipewire-0.3.57/src/tests/meson.build
--- pipewire-0.3.59.orig/src/tests/meson.build
+++ pipewire-0.3.59/src/tests/meson.build
@@ -14,9 +14,9 @@ foreach a : test_apps
install : installed_tests_enabled,
install_dir : installed_tests_execdir),
@ -572,10 +581,10 @@ Index: pipewire-0.3.57/src/tests/meson.build
])
if installed_tests_enabled
Index: pipewire-0.3.57/src/tools/meson.build
Index: pipewire-0.3.59/src/tools/meson.build
===================================================================
--- pipewire-0.3.57.orig/src/tools/meson.build
+++ pipewire-0.3.57/src/tools/meson.build
--- pipewire-0.3.59.orig/src/tools/meson.build
+++ pipewire-0.3.59/src/tools/meson.build
@@ -32,7 +32,7 @@ if ncurses_dep.found()
endif
@ -585,10 +594,10 @@ Index: pipewire-0.3.57/src/tools/meson.build
build_pw_cat = true
pwcat_sources = [
Index: pipewire-0.3.57/test/meson.build
Index: pipewire-0.3.59/test/meson.build
===================================================================
--- pipewire-0.3.57.orig/test/meson.build
+++ pipewire-0.3.57/test/meson.build
--- pipewire-0.3.59.orig/test/meson.build
+++ pipewire-0.3.59/test/meson.build
@@ -14,8 +14,8 @@ pwtest_deps = [
]