Update version to 0.3.65

This commit is contained in:
Wim Taymans 2023-01-26 12:18:32 +01:00
parent 1a3017e153
commit 7b44622e89
7 changed files with 36 additions and 177 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
/pipewire-*.tar.gz
/media-session-0.4.1.tar.gz
/media-session-0.4.2.tar.gz

View File

@ -0,0 +1,25 @@
From fba7083f8ceb210c7c20aceafeb5c9a8767cf705 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Thu, 26 Jan 2023 11:57:45 +0100
Subject: [PATCH] modules: also install module-combine-stream
---
src/modules/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/modules/meson.build b/src/modules/meson.build
index 89e4233d9..1bfb03b4b 100644
--- a/src/modules/meson.build
+++ b/src/modules/meson.build
@@ -139,7 +139,7 @@ pipewire_module_echo_cancel_sources = [
pipewire_module_combine_stream = shared_library('pipewire-module-combine-stream',
[ 'module-combine-stream.c' ],
include_directories : [configinc],
- install : false,
+ install : true,
install_dir : modules_install_dir,
install_rpath: modules_install_dir,
dependencies : [spa_dep, dl_lib, pipewire_dep],
--
2.39.1

View File

@ -1,75 +0,0 @@
From f27ccf1fc4d58bd707c1907c4c137181566e274f Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Mon, 16 Jan 2023 18:28:31 +0100
Subject: [PATCH 1/3] spa: Fix audioconvert overflow when scaling
Add SPA_SCALE32_UP that scales a uint32 without overflow.
Use this for scaling the threshold in ALSA.
Fix the scaling in audioconvert of the buffer size, the scaling was
wrong and it was also causing an overflow resulting in choppy sound in
some cases.
See #2680
---
spa/include/spa/utils/defs.h | 8 ++++++++
spa/plugins/alsa/alsa-pcm.c | 4 ++--
spa/plugins/audioconvert/audioconvert.c | 2 +-
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/spa/include/spa/utils/defs.h b/spa/include/spa/utils/defs.h
index c602c9348..3b4862663 100644
--- a/spa/include/spa/utils/defs.h
+++ b/spa/include/spa/utils/defs.h
@@ -274,6 +274,14 @@ struct spa_fraction {
#define SPA_ROUND_DOWN_N(num,align) ((num) & ~SPA_ROUND_MASK(num, align))
#define SPA_ROUND_UP_N(num,align) ((((num)-1) | SPA_ROUND_MASK(num, align))+1)
+#define SPA_SCALE32_UP(val,num,denom) \
+({ \
+ uint64_t _val = (val); \
+ uint64_t _denom = (denom); \
+ (uint32_t)(((_val) * (num) + (_denom)-1) / (_denom)); \
+})
+
+
#define SPA_PTR_ALIGNMENT(p,align) ((intptr_t)(p) & ((align)-1))
#define SPA_IS_ALIGNED(p,align) (SPA_PTR_ALIGNMENT(p,align) == 0)
#define SPA_PTR_ALIGN(p,align,type) ((type*)SPA_ROUND_UP_N((intptr_t)(p), (intptr_t)(align)))
diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c
index 76fe433b8..d93e2869e 100644
--- a/spa/plugins/alsa/alsa-pcm.c
+++ b/spa/plugins/alsa/alsa-pcm.c
@@ -1985,7 +1985,7 @@ static inline void check_position_config(struct state *state)
(state->rate_denom != state->position->clock.rate.denom))) {
state->duration = state->position->clock.duration;
state->rate_denom = state->position->clock.rate.denom;
- state->threshold = (state->duration * state->rate + state->rate_denom-1) / state->rate_denom;
+ state->threshold = SPA_SCALE32_UP(state->duration, state->rate, state->rate_denom);
state->max_error = SPA_MAX(256.0f, state->threshold / 2.0f);
state->resample = ((uint32_t)state->rate != state->rate_denom) || state->matching;
state->alsa_sync = true;
@@ -2547,7 +2547,7 @@ int spa_alsa_start(struct state *state)
setup_matching(state);
spa_dll_init(&state->dll);
- state->threshold = (state->duration * state->rate + state->rate_denom-1) / state->rate_denom;
+ state->threshold = SPA_SCALE32_UP(state->duration, state->rate, state->rate_denom);
state->last_threshold = state->threshold;
state->max_error = SPA_MAX(256.0f, state->threshold / 2.0f);
diff --git a/spa/plugins/audioconvert/audioconvert.c b/spa/plugins/audioconvert/audioconvert.c
index 578f70ff9..783ab8174 100644
--- a/spa/plugins/audioconvert/audioconvert.c
+++ b/spa/plugins/audioconvert/audioconvert.c
@@ -1755,7 +1755,7 @@ impl_node_port_enum_params(void *object, int seq,
size = this->quantum_limit * 2;
/* scale the buffer size when we can. */
if (irate != 0 && orate != 0)
- size = size * (irate + orate - 1) / orate;
+ size = SPA_SCALE32_UP(size, irate, orate);
}
param = spa_pod_builder_add_object(&b,
--
2.39.0

View File

@ -1,26 +0,0 @@
From 2dc1bf3af7572eab99899b565aefa9f22b993a1f Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Tue, 17 Jan 2023 09:24:00 +0100
Subject: [PATCH 2/3] filter-chain: fix AVX dsp_sum index increment
Fixes #2965
---
src/modules/module-filter-chain/dsp-ops-avx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/modules/module-filter-chain/dsp-ops-avx.c b/src/modules/module-filter-chain/dsp-ops-avx.c
index 64abcaa44..7ea5456fa 100644
--- a/src/modules/module-filter-chain/dsp-ops-avx.c
+++ b/src/modules/module-filter-chain/dsp-ops-avx.c
@@ -59,7 +59,7 @@ void dsp_sum_avx(struct dsp_ops *ops, float *r, const float *a, const float *b,
_mm256_store_ps(&r[n+24], in[3]);
}
} else {
- for (n = 0; n < unrolled; n += 16) {
+ for (n = 0; n < unrolled; n += 32) {
in[0] = _mm256_loadu_ps(&a[n+ 0]);
in[1] = _mm256_loadu_ps(&a[n+ 8]);
in[2] = _mm256_loadu_ps(&a[n+16]);
--
2.39.0

View File

@ -1,68 +0,0 @@
From 7acd8551be3b8614b62026077931bd57c5368cfd Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Tue, 17 Jan 2023 11:58:04 +0100
Subject: [PATCH 3/3] keys: don't remove deprecated symbols by default
Add a new macro to mark deprecated keys. The macro will emit a warning
about the symbol being deprecated.
PW_ENABLE_DEPRECATED will suppress the deprecation warning.
Add PW_REMOVE_DEPRECATED to completely remove the deprecated symbols.
Fixes #2952
---
src/pipewire/keys.h | 11 ++++++-----
src/pipewire/utils.h | 6 ++++++
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/pipewire/keys.h b/src/pipewire/keys.h
index 81c9c30e0..c7cbf9da1 100644
--- a/src/pipewire/keys.h
+++ b/src/pipewire/keys.h
@@ -29,6 +29,7 @@
extern "C" {
#endif
+#include <pipewire/utils.h>
/**
* \defgroup pw_keys Key Names
*
@@ -334,14 +335,14 @@ extern "C" {
#define PW_KEY_VIDEO_FORMAT "video.format" /**< a video format */
#define PW_KEY_VIDEO_SIZE "video.size" /**< a video size as "<width>x<height" */
-#ifdef PW_ENABLE_DEPRECATED
-#define PW_KEY_PRIORITY_MASTER "priority.master" /**< deprecated */
-#define PW_KEY_NODE_TARGET "node.target" /**< deprecated since 0.3.64, use target.object. */
-#endif /* PW_ENABLE_DEPRECATED */
-
#define PW_KEY_TARGET_OBJECT "target.object" /**< a target object to link to. This can be
* and object name or object.serial */
+#ifndef PW_REMOVE_DEPRECATED
+#define PW_KEY_PRIORITY_MASTER PW_DEPRECATED("priority.master") /**< deprecated, use priority.driver */
+#define PW_KEY_NODE_TARGET PW_DEPRECATED("node.target") /**< deprecated since 0.3.64, use target.object. */
+#endif /* PW_REMOVE_DEPRECATED */
+
/** \}
*/
diff --git a/src/pipewire/utils.h b/src/pipewire/utils.h
index 8106710dc..d8d45e000 100644
--- a/src/pipewire/utils.h
+++ b/src/pipewire/utils.h
@@ -94,6 +94,12 @@ ssize_t pw_getrandom(void *buf, size_t buflen, unsigned int flags);
void* pw_reallocarray(void *ptr, size_t nmemb, size_t size);
+#ifdef PW_ENABLE_DEPRECATED
+#define PW_DEPRECATED(v) (v)
+#else
+#define PW_DEPRECATED(v) ({ __typeof__(v) _v SPA_DEPRECATED = (v); (void)_v; (v); })
+#endif /* PW_ENABLE_DEPRECATED */
+
/**
* \}
*/
--
2.39.0

View File

@ -1,15 +1,15 @@
%global majorversion 0
%global minorversion 3
%global microversion 64
%global microversion 65
%global apiversion 0.3
%global spaversion 0.2
%global soversion 0
%global libversion %{soversion}.%(bash -c '((intversion = (%{minorversion} * 100) + %{microversion})); echo ${intversion}').0
%global ms_version 0.4.1
%global ms_version 0.4.2
# For rpmdev-bumpspec and releng automation
%global baserelease 3
%global baserelease 1
#global snapdate 20210107
#global gitcommit b17db2cebc1a5ab2c01851d29c05f79cd2f262bb
@ -73,9 +73,7 @@ Source1: https://gitlab.freedesktop.org/pipewire/media-session/-/archive/
%endif
## upstream patches
Patch0001: 0001-spa-Fix-audioconvert-overflow-when-scaling.patch
Patch0002: 0002-filter-chain-fix-AVX-dsp_sum-index-increment.patch
Patch0003: 0003-keys-don-t-remove-deprecated-symbols-by-default.patch
Patch0001: 0001-modules-also-install-module-combine-stream.patch
## upstreamable patches
@ -512,6 +510,7 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-avb.so
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-client-device.so
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-client-node.so
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-combine-stream.so
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-echo-cancel.so
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-fallback-sink.so
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-filter-chain.so
@ -666,6 +665,9 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-x11-bell.so
%changelog
* Thu Jan 26 2023 Wim Taymans <wtaymans@redhat.com> - 0.3.65-1
- Update version to 0.3.65
* Thu Jan 19 2023 Wim Taymans <wtaymans@redhat.com> - 0.3.64-3
- Add patch to avoid DSP mixing issues with AVX in filter-chain.
- Add patch to revert API breakage with deprecated symbols.

View File

@ -1,2 +1,2 @@
SHA512 (pipewire-0.3.64.tar.gz) = ce4bbd7ac5a95318154cd5716ef684d271b43bfd3e10677c300e2d74f1652a64cac63779bbba8534f9f9a7139cbbca4006d805d80dbdf5cdc189ab7d6cb19518
SHA512 (media-session-0.4.1.tar.gz) = bfce472b7260b280c0d3cd74d917f48655b5be9976c89a109e94b81af2c3664e83446e97db573cedba6e5d54dedf77195b80eb0a76f6bfc0e96e342557469f99
SHA512 (pipewire-0.3.65.tar.gz) = ca217039f8e3d9095282844771ad5585567928fbeb10642797453c2e5db7ebbef7f0b71b1d23f3dd6d42ddd7301820b8c8b59023736fd962119d7f9d06929024
SHA512 (media-session-0.4.2.tar.gz) = ca3bce52141853b7d47228130d9f636a6ac0e0698f174d5fbab53af44242122e18cc5b5d3f5779101535bc7d779a17347d1b2cc44b30bf37ae89bbd965891ed0