* [PR PATCH] pipewire: update to 0.3.64
@ 2023-01-24 19:40 cinerea0
2023-01-24 19:47 ` cinerea0
` (24 more replies)
0 siblings, 25 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-24 19:40 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 384 bytes --]
There is a new pull request by cinerea0 against master on the void-packages repository
https://github.com/cinerea0/void-packages pipewire
https://github.com/void-linux/void-packages/pull/41846
pipewire: update to 0.3.64
#### Testing the changes
- I tested the changes in this PR: **YES**
A patch file from https://github.com/void-linux/void-packages/pull/41846.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pipewire-41846.patch --]
[-- Type: text/x-diff, Size: 1463 bytes --]
From 216b1e8101aae5a011cdcace4a98c85d461732d2 Mon Sep 17 00:00:00 2001
From: cinerea0 <cinerea0@disroot.org>
Date: Tue, 24 Jan 2023 14:39:56 -0500
Subject: [PATCH] pipewire: update to 0.3.64
---
srcpkgs/pipewire/template | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/srcpkgs/pipewire/template b/srcpkgs/pipewire/template
index 5aa0d03d04b2..abd666c1f4e8 100644
--- a/srcpkgs/pipewire/template
+++ b/srcpkgs/pipewire/template
@@ -1,8 +1,8 @@
# Template file for 'pipewire'
pkgname=pipewire
-version=0.3.63
+version=0.3.64
revision=1
-_pms_version=0.4.1
+_pms_version=0.4.2
create_wrksrc=yes
build_wrksrc="${pkgname}-${version}"
build_style=meson
@@ -37,8 +37,8 @@ homepage="https://pipewire.org/"
changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS"
distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz
https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${_pms_version}/media-session-${_pms_version}.tar.gz"
-checksum="1c10cc15ae8889ff0ff1653c088561ba6d46e3b1e5d4e5aacc9b01e6c1bb64b1
- 119c9216070b54018217552c7924f9888da270c3c4647c5e2b85ffa6b1574975"
+checksum="a1ab25d4ff85aefa3da3452cb41e972487b1a2da613ccd207a5d312e5c241d7c
+ 4cf8577d4431e08b0e6f29c1ad6bf8662765ab66986ea6f0151883101811c119"
make_dirs="/var/lib/pipewire 0755 _pipewire _pipewire"
system_accounts="_pipewire"
patch_args="-Np1 --directory=${build_wrksrc}"
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
@ 2023-01-24 19:47 ` cinerea0
2023-01-24 19:47 ` oreo639
` (23 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-24 19:47 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 614 bytes --]
New comment by cinerea0 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1402502885
Comment:
This PR was only able to be submitted without significant patching because the devs released a new version of pipewire-media-session compatible with this version of pipewire. It took them a week to do so, and their [release notes](https://gitlab.freedesktop.org/pipewire/media-session/-/releases/0.4.2) indicate that they may not do so again. As such I would like to draw attention to this PR that splits p-m-s out: https://github.com/void-linux/void-packages/pull/38521.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
2023-01-24 19:47 ` cinerea0
@ 2023-01-24 19:47 ` oreo639
2023-01-24 19:47 ` oreo639
` (22 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: oreo639 @ 2023-01-24 19:47 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 238 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1402502921
Comment:
There are some patches listed here:
https://gitlab.freedesktop.org/pipewire/pipewire/-/releases
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
2023-01-24 19:47 ` cinerea0
2023-01-24 19:47 ` oreo639
@ 2023-01-24 19:47 ` oreo639
2023-01-24 20:18 ` cinerea0
` (21 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: oreo639 @ 2023-01-24 19:47 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 238 bytes --]
New comment by oreo639 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1402502921
Comment:
There are some patches listed here:
https://gitlab.freedesktop.org/pipewire/pipewire/-/releases
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (2 preceding siblings ...)
2023-01-24 19:47 ` oreo639
@ 2023-01-24 20:18 ` cinerea0
2023-01-24 20:39 ` [PR PATCH] [Updated] " cinerea0
` (20 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-24 20:18 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 235 bytes --]
New comment by cinerea0 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1402577267
Comment:
Temporarily marking as draft as I test other, non-p-m-s patches linked in the release notes.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PR PATCH] [Updated] pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (3 preceding siblings ...)
2023-01-24 20:18 ` cinerea0
@ 2023-01-24 20:39 ` cinerea0
2023-01-25 14:54 ` ahesford
` (19 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-24 20:39 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 389 bytes --]
There is an updated pull request by cinerea0 against master on the void-packages repository
https://github.com/cinerea0/void-packages pipewire
https://github.com/void-linux/void-packages/pull/41846
pipewire: update to 0.3.64
#### Testing the changes
- I tested the changes in this PR: **YES**
A patch file from https://github.com/void-linux/void-packages/pull/41846.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pipewire-41846.patch --]
[-- Type: text/x-diff, Size: 8476 bytes --]
From 0f2cb55c9037c6cd790688c9f975d5e3b9772dc8 Mon Sep 17 00:00:00 2001
From: cinerea0 <cinerea0@disroot.org>
Date: Tue, 24 Jan 2023 15:38:56 -0500
Subject: [PATCH] pipewire: update to 0.3.64
---
.../patches/fix-audioconvert-overflow.patch | 56 +++++++++++++++++++
.../pipewire/patches/fix-avx-crackle.patch | 15 +++++
.../patches/mark-deprecated-keys.patch | 51 +++++++++++++++++
srcpkgs/pipewire/template | 8 +--
4 files changed, 126 insertions(+), 4 deletions(-)
create mode 100644 srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
create mode 100644 srcpkgs/pipewire/patches/fix-avx-crackle.patch
create mode 100644 srcpkgs/pipewire/patches/mark-deprecated-keys.patch
diff --git a/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch b/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
new file mode 100644
index 000000000000..6af679027a13
--- /dev/null
+++ b/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
@@ -0,0 +1,56 @@
+# fixes audioconvert overflow when scaling, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1d9640af5a7906620f214aa0a39c63128c8506a6
+diff --git a/spa/include/spa/utils/defs.h b/spa/include/spa/utils/defs.h
+index c602c9348827805dbafc63bf2732e0d5df833158..3b4862663643e35595d7d12d3d9cdd45fdc85868 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 08b9ceddd89f1602b39a3a0e3c0e7cbe221f49c5..012b4603101cdd76e1796f66f932a7a21f847176 100644
+--- a/spa/plugins/alsa/alsa-pcm.c
++++ b/spa/plugins/alsa/alsa-pcm.c
+@@ -1999,7 +1999,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;
+@@ -2569,7 +2569,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 578f70ff9a769fce2d45fa414b6f89fab37216a8..783ab81741a99fb00762382b2e6507f369757906 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,
diff --git a/srcpkgs/pipewire/patches/fix-avx-crackle.patch b/srcpkgs/pipewire/patches/fix-avx-crackle.patch
new file mode 100644
index 000000000000..847269c06a32
--- /dev/null
+++ b/srcpkgs/pipewire/patches/fix-avx-crackle.patch
@@ -0,0 +1,15 @@
+# fixes crackling when using virtual sound, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/ccedf1722ae44c97ec0d058b349494c67a0b56dc
+diff --git a/src/modules/module-filter-chain/dsp-ops-avx.c b/src/modules/module-filter-chain/dsp-ops-avx.c
+index 64abcaa441ec632972137c1f6ac86f1a85c9d77e..7ea5456fa66e3689a7d238c94c96600edaf01250 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]);
diff --git a/srcpkgs/pipewire/patches/mark-deprecated-keys.patch b/srcpkgs/pipewire/patches/mark-deprecated-keys.patch
new file mode 100644
index 000000000000..e21f0bda99c9
--- /dev/null
+++ b/srcpkgs/pipewire/patches/mark-deprecated-keys.patch
@@ -0,0 +1,51 @@
+# Adds macro to mark deprecated keys instead of removing them outright, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/a979c0f43078cbfefa2ba614ee078579042d2de2
+diff --git a/src/pipewire/keys.h b/src/pipewire/keys.h
+index ae54807bcf1c7ad5e2d3d3da1abd2095f901c66e..b0faf611d8926c4ea82c4b4ec82af33347edcc31 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
+ *
+@@ -337,14 +338,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 8106710dc0009752968a06b6f8cfb3136f1ecb1a..d8d45e0008ae946f1d135e44a065f1d66f1a1f3e 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 */
++
+ /**
+ * \}
+ */
diff --git a/srcpkgs/pipewire/template b/srcpkgs/pipewire/template
index 5aa0d03d04b2..abd666c1f4e8 100644
--- a/srcpkgs/pipewire/template
+++ b/srcpkgs/pipewire/template
@@ -1,8 +1,8 @@
# Template file for 'pipewire'
pkgname=pipewire
-version=0.3.63
+version=0.3.64
revision=1
-_pms_version=0.4.1
+_pms_version=0.4.2
create_wrksrc=yes
build_wrksrc="${pkgname}-${version}"
build_style=meson
@@ -37,8 +37,8 @@ homepage="https://pipewire.org/"
changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS"
distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz
https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${_pms_version}/media-session-${_pms_version}.tar.gz"
-checksum="1c10cc15ae8889ff0ff1653c088561ba6d46e3b1e5d4e5aacc9b01e6c1bb64b1
- 119c9216070b54018217552c7924f9888da270c3c4647c5e2b85ffa6b1574975"
+checksum="a1ab25d4ff85aefa3da3452cb41e972487b1a2da613ccd207a5d312e5c241d7c
+ 4cf8577d4431e08b0e6f29c1ad6bf8662765ab66986ea6f0151883101811c119"
make_dirs="/var/lib/pipewire 0755 _pipewire _pipewire"
system_accounts="_pipewire"
patch_args="-Np1 --directory=${build_wrksrc}"
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (4 preceding siblings ...)
2023-01-24 20:39 ` [PR PATCH] [Updated] " cinerea0
@ 2023-01-25 14:54 ` ahesford
2023-01-25 21:46 ` [PR PATCH] [Updated] " cinerea0
` (18 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: ahesford @ 2023-01-25 14:54 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 478 bytes --]
New comment by ahesford on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1403745624
Comment:
For reasons I outlined in https://github.com/void-linux/void-packages/pull/38521#issuecomment-1403743362, I think we should decide how we want to handle p-m-s after the 0.3.64 release. Based on that decision, we should use this bump to ensure continuity while also providing an `INSTALL.msg` to warn users of anything that might break.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PR PATCH] [Updated] pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (5 preceding siblings ...)
2023-01-25 14:54 ` ahesford
@ 2023-01-25 21:46 ` cinerea0
2023-01-25 21:48 ` cinerea0
` (17 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-25 21:46 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 389 bytes --]
There is an updated pull request by cinerea0 against master on the void-packages repository
https://github.com/cinerea0/void-packages pipewire
https://github.com/void-linux/void-packages/pull/41846
pipewire: update to 0.3.64
#### Testing the changes
- I tested the changes in this PR: **YES**
A patch file from https://github.com/void-linux/void-packages/pull/41846.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pipewire-41846.patch --]
[-- Type: text/x-diff, Size: 9158 bytes --]
From 85c984b0a8cf47a0c02d56074c640829e9cbef97 Mon Sep 17 00:00:00 2001
From: cinerea0 <cinerea0@disroot.org>
Date: Wed, 25 Jan 2023 16:46:06 -0500
Subject: [PATCH] pipewire: update to 0.3.64
---
srcpkgs/pipewire/INSTALL.msg | 5 ++
.../patches/fix-audioconvert-overflow.patch | 56 +++++++++++++++++++
.../pipewire/patches/fix-avx-crackle.patch | 15 +++++
.../patches/mark-deprecated-keys.patch | 51 +++++++++++++++++
srcpkgs/pipewire/template | 8 +--
5 files changed, 131 insertions(+), 4 deletions(-)
create mode 100644 srcpkgs/pipewire/INSTALL.msg
create mode 100644 srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
create mode 100644 srcpkgs/pipewire/patches/fix-avx-crackle.patch
create mode 100644 srcpkgs/pipewire/patches/mark-deprecated-keys.patch
diff --git a/srcpkgs/pipewire/INSTALL.msg b/srcpkgs/pipewire/INSTALL.msg
new file mode 100644
index 000000000000..7c6d1f536d77
--- /dev/null
+++ b/srcpkgs/pipewire/INSTALL.msg
@@ -0,0 +1,5 @@
+Support for pipewire-media-session has been dropped by the pipewire developers,
+and will no longer be included in Void packages of pipewire after 0.3.64.
+Wireplumber, an alternate session manager, is supported and packaged. If you
+are currently using pipewire-media-session, you must install wireplumber and
+change your configuration to use it before the next pipewire release.
diff --git a/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch b/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
new file mode 100644
index 000000000000..6af679027a13
--- /dev/null
+++ b/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
@@ -0,0 +1,56 @@
+# fixes audioconvert overflow when scaling, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1d9640af5a7906620f214aa0a39c63128c8506a6
+diff --git a/spa/include/spa/utils/defs.h b/spa/include/spa/utils/defs.h
+index c602c9348827805dbafc63bf2732e0d5df833158..3b4862663643e35595d7d12d3d9cdd45fdc85868 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 08b9ceddd89f1602b39a3a0e3c0e7cbe221f49c5..012b4603101cdd76e1796f66f932a7a21f847176 100644
+--- a/spa/plugins/alsa/alsa-pcm.c
++++ b/spa/plugins/alsa/alsa-pcm.c
+@@ -1999,7 +1999,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;
+@@ -2569,7 +2569,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 578f70ff9a769fce2d45fa414b6f89fab37216a8..783ab81741a99fb00762382b2e6507f369757906 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,
diff --git a/srcpkgs/pipewire/patches/fix-avx-crackle.patch b/srcpkgs/pipewire/patches/fix-avx-crackle.patch
new file mode 100644
index 000000000000..847269c06a32
--- /dev/null
+++ b/srcpkgs/pipewire/patches/fix-avx-crackle.patch
@@ -0,0 +1,15 @@
+# fixes crackling when using virtual sound, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/ccedf1722ae44c97ec0d058b349494c67a0b56dc
+diff --git a/src/modules/module-filter-chain/dsp-ops-avx.c b/src/modules/module-filter-chain/dsp-ops-avx.c
+index 64abcaa441ec632972137c1f6ac86f1a85c9d77e..7ea5456fa66e3689a7d238c94c96600edaf01250 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]);
diff --git a/srcpkgs/pipewire/patches/mark-deprecated-keys.patch b/srcpkgs/pipewire/patches/mark-deprecated-keys.patch
new file mode 100644
index 000000000000..e21f0bda99c9
--- /dev/null
+++ b/srcpkgs/pipewire/patches/mark-deprecated-keys.patch
@@ -0,0 +1,51 @@
+# Adds macro to mark deprecated keys instead of removing them outright, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/a979c0f43078cbfefa2ba614ee078579042d2de2
+diff --git a/src/pipewire/keys.h b/src/pipewire/keys.h
+index ae54807bcf1c7ad5e2d3d3da1abd2095f901c66e..b0faf611d8926c4ea82c4b4ec82af33347edcc31 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
+ *
+@@ -337,14 +338,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 8106710dc0009752968a06b6f8cfb3136f1ecb1a..d8d45e0008ae946f1d135e44a065f1d66f1a1f3e 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 */
++
+ /**
+ * \}
+ */
diff --git a/srcpkgs/pipewire/template b/srcpkgs/pipewire/template
index 5aa0d03d04b2..abd666c1f4e8 100644
--- a/srcpkgs/pipewire/template
+++ b/srcpkgs/pipewire/template
@@ -1,8 +1,8 @@
# Template file for 'pipewire'
pkgname=pipewire
-version=0.3.63
+version=0.3.64
revision=1
-_pms_version=0.4.1
+_pms_version=0.4.2
create_wrksrc=yes
build_wrksrc="${pkgname}-${version}"
build_style=meson
@@ -37,8 +37,8 @@ homepage="https://pipewire.org/"
changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS"
distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz
https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${_pms_version}/media-session-${_pms_version}.tar.gz"
-checksum="1c10cc15ae8889ff0ff1653c088561ba6d46e3b1e5d4e5aacc9b01e6c1bb64b1
- 119c9216070b54018217552c7924f9888da270c3c4647c5e2b85ffa6b1574975"
+checksum="a1ab25d4ff85aefa3da3452cb41e972487b1a2da613ccd207a5d312e5c241d7c
+ 4cf8577d4431e08b0e6f29c1ad6bf8662765ab66986ea6f0151883101811c119"
make_dirs="/var/lib/pipewire 0755 _pipewire _pipewire"
system_accounts="_pipewire"
patch_args="-Np1 --directory=${build_wrksrc}"
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (6 preceding siblings ...)
2023-01-25 21:46 ` [PR PATCH] [Updated] " cinerea0
@ 2023-01-25 21:48 ` cinerea0
2023-01-25 21:54 ` cinerea0
` (16 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-25 21:48 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 301 bytes --]
New comment by cinerea0 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1404269707
Comment:
I've added an `INSTALL.msg` file that explains the situation. I worry that it may be too wordy, which is bad because it seems like no one reads them as it is.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (7 preceding siblings ...)
2023-01-25 21:48 ` cinerea0
@ 2023-01-25 21:54 ` cinerea0
2023-01-25 22:00 ` [PR REVIEW] " ahesford
` (15 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-25 21:54 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 307 bytes --]
New comment by cinerea0 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1404269707
Comment:
I've added an `INSTALL.msg` file that explains the situation. I worry that it may be too wordy, which would be bad because it seems like no one reads them as it is.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PR REVIEW] pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (8 preceding siblings ...)
2023-01-25 21:54 ` cinerea0
@ 2023-01-25 22:00 ` ahesford
2023-01-26 2:14 ` [PR PATCH] [Updated] " cinerea0
` (14 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: ahesford @ 2023-01-25 22:00 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 405 bytes --]
New review comment by ahesford on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#discussion_r1087226175
Comment:
The pipewire-media-session session manager has been abandoned upstream and will be removed from Void in a subsequent pipewire update. All users are encouraged to transition to wireplumber immediately to avoid unexpected loss of functionality in the future.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PR PATCH] [Updated] pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (9 preceding siblings ...)
2023-01-25 22:00 ` [PR REVIEW] " ahesford
@ 2023-01-26 2:14 ` cinerea0
2023-01-26 2:15 ` [PR REVIEW] " cinerea0
` (13 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-26 2:14 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 389 bytes --]
There is an updated pull request by cinerea0 against master on the void-packages repository
https://github.com/cinerea0/void-packages pipewire
https://github.com/void-linux/void-packages/pull/41846
pipewire: update to 0.3.64
#### Testing the changes
- I tested the changes in this PR: **YES**
A patch file from https://github.com/void-linux/void-packages/pull/41846.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pipewire-41846.patch --]
[-- Type: text/x-diff, Size: 9061 bytes --]
From 87066a23fa83f3e1ed1f8949241a3009324f3433 Mon Sep 17 00:00:00 2001
From: cinerea0 <cinerea0@disroot.org>
Date: Wed, 25 Jan 2023 21:13:51 -0500
Subject: [PATCH] pipewire: update to 0.3.64
---
srcpkgs/pipewire/INSTALL.msg | 4 ++
.../patches/fix-audioconvert-overflow.patch | 56 +++++++++++++++++++
.../pipewire/patches/fix-avx-crackle.patch | 15 +++++
.../patches/mark-deprecated-keys.patch | 51 +++++++++++++++++
srcpkgs/pipewire/template | 8 +--
5 files changed, 130 insertions(+), 4 deletions(-)
create mode 100644 srcpkgs/pipewire/INSTALL.msg
create mode 100644 srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
create mode 100644 srcpkgs/pipewire/patches/fix-avx-crackle.patch
create mode 100644 srcpkgs/pipewire/patches/mark-deprecated-keys.patch
diff --git a/srcpkgs/pipewire/INSTALL.msg b/srcpkgs/pipewire/INSTALL.msg
new file mode 100644
index 000000000000..6293ff76f853
--- /dev/null
+++ b/srcpkgs/pipewire/INSTALL.msg
@@ -0,0 +1,4 @@
+The pipewire-media-session session manager has been abandoned upstream and
+will be removed from Void in a subsequent pipewire update. All users are
+encouraged to transition to wireplumber immediately to avoid unexpected loss
+of functionality in the future.
\ No newline at end of file
diff --git a/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch b/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
new file mode 100644
index 000000000000..6af679027a13
--- /dev/null
+++ b/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
@@ -0,0 +1,56 @@
+# fixes audioconvert overflow when scaling, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1d9640af5a7906620f214aa0a39c63128c8506a6
+diff --git a/spa/include/spa/utils/defs.h b/spa/include/spa/utils/defs.h
+index c602c9348827805dbafc63bf2732e0d5df833158..3b4862663643e35595d7d12d3d9cdd45fdc85868 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 08b9ceddd89f1602b39a3a0e3c0e7cbe221f49c5..012b4603101cdd76e1796f66f932a7a21f847176 100644
+--- a/spa/plugins/alsa/alsa-pcm.c
++++ b/spa/plugins/alsa/alsa-pcm.c
+@@ -1999,7 +1999,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;
+@@ -2569,7 +2569,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 578f70ff9a769fce2d45fa414b6f89fab37216a8..783ab81741a99fb00762382b2e6507f369757906 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,
diff --git a/srcpkgs/pipewire/patches/fix-avx-crackle.patch b/srcpkgs/pipewire/patches/fix-avx-crackle.patch
new file mode 100644
index 000000000000..847269c06a32
--- /dev/null
+++ b/srcpkgs/pipewire/patches/fix-avx-crackle.patch
@@ -0,0 +1,15 @@
+# fixes crackling when using virtual sound, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/ccedf1722ae44c97ec0d058b349494c67a0b56dc
+diff --git a/src/modules/module-filter-chain/dsp-ops-avx.c b/src/modules/module-filter-chain/dsp-ops-avx.c
+index 64abcaa441ec632972137c1f6ac86f1a85c9d77e..7ea5456fa66e3689a7d238c94c96600edaf01250 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]);
diff --git a/srcpkgs/pipewire/patches/mark-deprecated-keys.patch b/srcpkgs/pipewire/patches/mark-deprecated-keys.patch
new file mode 100644
index 000000000000..e21f0bda99c9
--- /dev/null
+++ b/srcpkgs/pipewire/patches/mark-deprecated-keys.patch
@@ -0,0 +1,51 @@
+# Adds macro to mark deprecated keys instead of removing them outright, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/a979c0f43078cbfefa2ba614ee078579042d2de2
+diff --git a/src/pipewire/keys.h b/src/pipewire/keys.h
+index ae54807bcf1c7ad5e2d3d3da1abd2095f901c66e..b0faf611d8926c4ea82c4b4ec82af33347edcc31 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
+ *
+@@ -337,14 +338,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 8106710dc0009752968a06b6f8cfb3136f1ecb1a..d8d45e0008ae946f1d135e44a065f1d66f1a1f3e 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 */
++
+ /**
+ * \}
+ */
diff --git a/srcpkgs/pipewire/template b/srcpkgs/pipewire/template
index 5aa0d03d04b2..abd666c1f4e8 100644
--- a/srcpkgs/pipewire/template
+++ b/srcpkgs/pipewire/template
@@ -1,8 +1,8 @@
# Template file for 'pipewire'
pkgname=pipewire
-version=0.3.63
+version=0.3.64
revision=1
-_pms_version=0.4.1
+_pms_version=0.4.2
create_wrksrc=yes
build_wrksrc="${pkgname}-${version}"
build_style=meson
@@ -37,8 +37,8 @@ homepage="https://pipewire.org/"
changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS"
distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz
https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${_pms_version}/media-session-${_pms_version}.tar.gz"
-checksum="1c10cc15ae8889ff0ff1653c088561ba6d46e3b1e5d4e5aacc9b01e6c1bb64b1
- 119c9216070b54018217552c7924f9888da270c3c4647c5e2b85ffa6b1574975"
+checksum="a1ab25d4ff85aefa3da3452cb41e972487b1a2da613ccd207a5d312e5c241d7c
+ 4cf8577d4431e08b0e6f29c1ad6bf8662765ab66986ea6f0151883101811c119"
make_dirs="/var/lib/pipewire 0755 _pipewire _pipewire"
system_accounts="_pipewire"
patch_args="-Np1 --directory=${build_wrksrc}"
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PR REVIEW] pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (10 preceding siblings ...)
2023-01-26 2:14 ` [PR PATCH] [Updated] " cinerea0
@ 2023-01-26 2:15 ` cinerea0
2023-01-26 7:22 ` paper42
` (12 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-26 2:15 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 173 bytes --]
New review comment by cinerea0 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#discussion_r1087375853
Comment:
Changed to this wording.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (11 preceding siblings ...)
2023-01-26 2:15 ` [PR REVIEW] " cinerea0
@ 2023-01-26 7:22 ` paper42
2023-01-26 11:03 ` paper42
` (11 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: paper42 @ 2023-01-26 7:22 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 279 bytes --]
New comment by paper42 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1404636459
Comment:
Documentation on how to use wireplumber is missing from the handbook, so before telling people they should use it, we should document it.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (12 preceding siblings ...)
2023-01-26 7:22 ` paper42
@ 2023-01-26 11:03 ` paper42
2023-01-26 15:11 ` ahesford
` (10 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: paper42 @ 2023-01-26 11:03 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 161 bytes --]
New comment by paper42 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1404848902
Comment:
.65 is released now
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (13 preceding siblings ...)
2023-01-26 11:03 ` paper42
@ 2023-01-26 15:11 ` ahesford
2023-01-27 18:00 ` [PR PATCH] [Updated] " cinerea0
` (9 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: ahesford @ 2023-01-26 15:11 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 314 bytes --]
New comment by ahesford on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1405155249
Comment:
https://github.com/void-linux/void-docs/pull/738
@cinerea0 please pull the `wireplumber.desktop` file from #41868 into this PR because I plan to mention it in the docs.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PR PATCH] [Updated] pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (14 preceding siblings ...)
2023-01-26 15:11 ` ahesford
@ 2023-01-27 18:00 ` cinerea0
2023-01-27 18:02 ` cinerea0
` (8 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-27 18:00 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 389 bytes --]
There is an updated pull request by cinerea0 against master on the void-packages repository
https://github.com/cinerea0/void-packages pipewire
https://github.com/void-linux/void-packages/pull/41846
pipewire: update to 0.3.64
#### Testing the changes
- I tested the changes in this PR: **YES**
A patch file from https://github.com/void-linux/void-packages/pull/41846.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pipewire-41846.patch --]
[-- Type: text/x-diff, Size: 10003 bytes --]
From d4936f8afd51b2470bbcf918f4757239c1b9a330 Mon Sep 17 00:00:00 2001
From: cinerea0 <cinerea0@disroot.org>
Date: Fri, 27 Jan 2023 13:00:28 -0500
Subject: [PATCH 1/2] pipewire: update to 0.3.64
---
srcpkgs/pipewire/INSTALL.msg | 4 ++
.../patches/fix-audioconvert-overflow.patch | 56 +++++++++++++++++++
.../pipewire/patches/fix-avx-crackle.patch | 15 +++++
.../patches/mark-deprecated-keys.patch | 51 +++++++++++++++++
srcpkgs/pipewire/template | 8 +--
5 files changed, 130 insertions(+), 4 deletions(-)
create mode 100644 srcpkgs/pipewire/INSTALL.msg
create mode 100644 srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
create mode 100644 srcpkgs/pipewire/patches/fix-avx-crackle.patch
create mode 100644 srcpkgs/pipewire/patches/mark-deprecated-keys.patch
diff --git a/srcpkgs/pipewire/INSTALL.msg b/srcpkgs/pipewire/INSTALL.msg
new file mode 100644
index 000000000000..6293ff76f853
--- /dev/null
+++ b/srcpkgs/pipewire/INSTALL.msg
@@ -0,0 +1,4 @@
+The pipewire-media-session session manager has been abandoned upstream and
+will be removed from Void in a subsequent pipewire update. All users are
+encouraged to transition to wireplumber immediately to avoid unexpected loss
+of functionality in the future.
\ No newline at end of file
diff --git a/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch b/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
new file mode 100644
index 000000000000..6af679027a13
--- /dev/null
+++ b/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
@@ -0,0 +1,56 @@
+# fixes audioconvert overflow when scaling, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1d9640af5a7906620f214aa0a39c63128c8506a6
+diff --git a/spa/include/spa/utils/defs.h b/spa/include/spa/utils/defs.h
+index c602c9348827805dbafc63bf2732e0d5df833158..3b4862663643e35595d7d12d3d9cdd45fdc85868 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 08b9ceddd89f1602b39a3a0e3c0e7cbe221f49c5..012b4603101cdd76e1796f66f932a7a21f847176 100644
+--- a/spa/plugins/alsa/alsa-pcm.c
++++ b/spa/plugins/alsa/alsa-pcm.c
+@@ -1999,7 +1999,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;
+@@ -2569,7 +2569,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 578f70ff9a769fce2d45fa414b6f89fab37216a8..783ab81741a99fb00762382b2e6507f369757906 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,
diff --git a/srcpkgs/pipewire/patches/fix-avx-crackle.patch b/srcpkgs/pipewire/patches/fix-avx-crackle.patch
new file mode 100644
index 000000000000..847269c06a32
--- /dev/null
+++ b/srcpkgs/pipewire/patches/fix-avx-crackle.patch
@@ -0,0 +1,15 @@
+# fixes crackling when using virtual sound, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/ccedf1722ae44c97ec0d058b349494c67a0b56dc
+diff --git a/src/modules/module-filter-chain/dsp-ops-avx.c b/src/modules/module-filter-chain/dsp-ops-avx.c
+index 64abcaa441ec632972137c1f6ac86f1a85c9d77e..7ea5456fa66e3689a7d238c94c96600edaf01250 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]);
diff --git a/srcpkgs/pipewire/patches/mark-deprecated-keys.patch b/srcpkgs/pipewire/patches/mark-deprecated-keys.patch
new file mode 100644
index 000000000000..e21f0bda99c9
--- /dev/null
+++ b/srcpkgs/pipewire/patches/mark-deprecated-keys.patch
@@ -0,0 +1,51 @@
+# Adds macro to mark deprecated keys instead of removing them outright, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/a979c0f43078cbfefa2ba614ee078579042d2de2
+diff --git a/src/pipewire/keys.h b/src/pipewire/keys.h
+index ae54807bcf1c7ad5e2d3d3da1abd2095f901c66e..b0faf611d8926c4ea82c4b4ec82af33347edcc31 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
+ *
+@@ -337,14 +338,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 8106710dc0009752968a06b6f8cfb3136f1ecb1a..d8d45e0008ae946f1d135e44a065f1d66f1a1f3e 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 */
++
+ /**
+ * \}
+ */
diff --git a/srcpkgs/pipewire/template b/srcpkgs/pipewire/template
index 5aa0d03d04b2..abd666c1f4e8 100644
--- a/srcpkgs/pipewire/template
+++ b/srcpkgs/pipewire/template
@@ -1,8 +1,8 @@
# Template file for 'pipewire'
pkgname=pipewire
-version=0.3.63
+version=0.3.64
revision=1
-_pms_version=0.4.1
+_pms_version=0.4.2
create_wrksrc=yes
build_wrksrc="${pkgname}-${version}"
build_style=meson
@@ -37,8 +37,8 @@ homepage="https://pipewire.org/"
changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS"
distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz
https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${_pms_version}/media-session-${_pms_version}.tar.gz"
-checksum="1c10cc15ae8889ff0ff1653c088561ba6d46e3b1e5d4e5aacc9b01e6c1bb64b1
- 119c9216070b54018217552c7924f9888da270c3c4647c5e2b85ffa6b1574975"
+checksum="a1ab25d4ff85aefa3da3452cb41e972487b1a2da613ccd207a5d312e5c241d7c
+ 4cf8577d4431e08b0e6f29c1ad6bf8662765ab66986ea6f0151883101811c119"
make_dirs="/var/lib/pipewire 0755 _pipewire _pipewire"
system_accounts="_pipewire"
patch_args="-Np1 --directory=${build_wrksrc}"
From b1c6ee6444b58bb0719fde2e97b6d1e73d61e1d5 Mon Sep 17 00:00:00 2001
From: cinerea0 <cinerea0@disroot.org>
Date: Fri, 27 Jan 2023 13:00:41 -0500
Subject: [PATCH 2/2] wireplumber: add desktop file
---
srcpkgs/wireplumber/template | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/srcpkgs/wireplumber/template b/srcpkgs/wireplumber/template
index 7f901a6ab2a0..fb9fa438c348 100644
--- a/srcpkgs/wireplumber/template
+++ b/srcpkgs/wireplumber/template
@@ -1,7 +1,7 @@
# Template file for 'wireplumber'
pkgname=wireplumber
version=0.4.13
-revision=1
+revision=2
build_style=meson
build_helper=gir
configure_args="-Dintrospection=enabled -Dsystem-lua=true"
@@ -19,6 +19,7 @@ checksum=2c3cd85a743249d418a64b137adaea475e9d36a3bb31e4230da83458c4d99e48
post_install() {
vlicense LICENSE
vsv wireplumber
+ vinstall "${FILESDIR}/wireplumber.desktop" 644 usr/share/applications
}
wireplumber-devel_package() {
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (15 preceding siblings ...)
2023-01-27 18:00 ` [PR PATCH] [Updated] " cinerea0
@ 2023-01-27 18:02 ` cinerea0
2023-01-27 18:04 ` [PR PATCH] [Updated] " cinerea0
` (7 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-27 18:02 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 326 bytes --]
New comment by cinerea0 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1406894038
Comment:
I've added wireplumber's desktop file. I have to test if 0.3.65 still allows p-m-s to be built. If it does should I change this PR to use 0.3.65 and we shift removing p-m-s to 0.3.66?
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PR PATCH] [Updated] pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (16 preceding siblings ...)
2023-01-27 18:02 ` cinerea0
@ 2023-01-27 18:04 ` cinerea0
2023-01-27 18:23 ` cinerea0
` (6 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-27 18:04 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 389 bytes --]
There is an updated pull request by cinerea0 against master on the void-packages repository
https://github.com/cinerea0/void-packages pipewire
https://github.com/void-linux/void-packages/pull/41846
pipewire: update to 0.3.64
#### Testing the changes
- I tested the changes in this PR: **YES**
A patch file from https://github.com/void-linux/void-packages/pull/41846.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pipewire-41846.patch --]
[-- Type: text/x-diff, Size: 10536 bytes --]
From d75b9f96ba38b54cecaecfbfa915fe5881570bf5 Mon Sep 17 00:00:00 2001
From: cinerea0 <cinerea0@disroot.org>
Date: Fri, 27 Jan 2023 13:03:51 -0500
Subject: [PATCH 1/2] pipewire: update to 0.3.64
---
srcpkgs/pipewire/INSTALL.msg | 4 ++
.../patches/fix-audioconvert-overflow.patch | 56 +++++++++++++++++++
.../pipewire/patches/fix-avx-crackle.patch | 15 +++++
.../patches/mark-deprecated-keys.patch | 51 +++++++++++++++++
srcpkgs/pipewire/template | 8 +--
5 files changed, 130 insertions(+), 4 deletions(-)
create mode 100644 srcpkgs/pipewire/INSTALL.msg
create mode 100644 srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
create mode 100644 srcpkgs/pipewire/patches/fix-avx-crackle.patch
create mode 100644 srcpkgs/pipewire/patches/mark-deprecated-keys.patch
diff --git a/srcpkgs/pipewire/INSTALL.msg b/srcpkgs/pipewire/INSTALL.msg
new file mode 100644
index 000000000000..6293ff76f853
--- /dev/null
+++ b/srcpkgs/pipewire/INSTALL.msg
@@ -0,0 +1,4 @@
+The pipewire-media-session session manager has been abandoned upstream and
+will be removed from Void in a subsequent pipewire update. All users are
+encouraged to transition to wireplumber immediately to avoid unexpected loss
+of functionality in the future.
\ No newline at end of file
diff --git a/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch b/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
new file mode 100644
index 000000000000..6af679027a13
--- /dev/null
+++ b/srcpkgs/pipewire/patches/fix-audioconvert-overflow.patch
@@ -0,0 +1,56 @@
+# fixes audioconvert overflow when scaling, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1d9640af5a7906620f214aa0a39c63128c8506a6
+diff --git a/spa/include/spa/utils/defs.h b/spa/include/spa/utils/defs.h
+index c602c9348827805dbafc63bf2732e0d5df833158..3b4862663643e35595d7d12d3d9cdd45fdc85868 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 08b9ceddd89f1602b39a3a0e3c0e7cbe221f49c5..012b4603101cdd76e1796f66f932a7a21f847176 100644
+--- a/spa/plugins/alsa/alsa-pcm.c
++++ b/spa/plugins/alsa/alsa-pcm.c
+@@ -1999,7 +1999,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;
+@@ -2569,7 +2569,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 578f70ff9a769fce2d45fa414b6f89fab37216a8..783ab81741a99fb00762382b2e6507f369757906 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,
diff --git a/srcpkgs/pipewire/patches/fix-avx-crackle.patch b/srcpkgs/pipewire/patches/fix-avx-crackle.patch
new file mode 100644
index 000000000000..847269c06a32
--- /dev/null
+++ b/srcpkgs/pipewire/patches/fix-avx-crackle.patch
@@ -0,0 +1,15 @@
+# fixes crackling when using virtual sound, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/ccedf1722ae44c97ec0d058b349494c67a0b56dc
+diff --git a/src/modules/module-filter-chain/dsp-ops-avx.c b/src/modules/module-filter-chain/dsp-ops-avx.c
+index 64abcaa441ec632972137c1f6ac86f1a85c9d77e..7ea5456fa66e3689a7d238c94c96600edaf01250 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]);
diff --git a/srcpkgs/pipewire/patches/mark-deprecated-keys.patch b/srcpkgs/pipewire/patches/mark-deprecated-keys.patch
new file mode 100644
index 000000000000..e21f0bda99c9
--- /dev/null
+++ b/srcpkgs/pipewire/patches/mark-deprecated-keys.patch
@@ -0,0 +1,51 @@
+# Adds macro to mark deprecated keys instead of removing them outright, will be in 0.3.65+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/a979c0f43078cbfefa2ba614ee078579042d2de2
+diff --git a/src/pipewire/keys.h b/src/pipewire/keys.h
+index ae54807bcf1c7ad5e2d3d3da1abd2095f901c66e..b0faf611d8926c4ea82c4b4ec82af33347edcc31 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
+ *
+@@ -337,14 +338,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 8106710dc0009752968a06b6f8cfb3136f1ecb1a..d8d45e0008ae946f1d135e44a065f1d66f1a1f3e 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 */
++
+ /**
+ * \}
+ */
diff --git a/srcpkgs/pipewire/template b/srcpkgs/pipewire/template
index 5aa0d03d04b2..abd666c1f4e8 100644
--- a/srcpkgs/pipewire/template
+++ b/srcpkgs/pipewire/template
@@ -1,8 +1,8 @@
# Template file for 'pipewire'
pkgname=pipewire
-version=0.3.63
+version=0.3.64
revision=1
-_pms_version=0.4.1
+_pms_version=0.4.2
create_wrksrc=yes
build_wrksrc="${pkgname}-${version}"
build_style=meson
@@ -37,8 +37,8 @@ homepage="https://pipewire.org/"
changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS"
distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz
https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${_pms_version}/media-session-${_pms_version}.tar.gz"
-checksum="1c10cc15ae8889ff0ff1653c088561ba6d46e3b1e5d4e5aacc9b01e6c1bb64b1
- 119c9216070b54018217552c7924f9888da270c3c4647c5e2b85ffa6b1574975"
+checksum="a1ab25d4ff85aefa3da3452cb41e972487b1a2da613ccd207a5d312e5c241d7c
+ 4cf8577d4431e08b0e6f29c1ad6bf8662765ab66986ea6f0151883101811c119"
make_dirs="/var/lib/pipewire 0755 _pipewire _pipewire"
system_accounts="_pipewire"
patch_args="-Np1 --directory=${build_wrksrc}"
From 5327c55dabd1ec734fe7ef717327e4bb403278bf Mon Sep 17 00:00:00 2001
From: cinerea0 <cinerea0@disroot.org>
Date: Fri, 27 Jan 2023 13:04:20 -0500
Subject: [PATCH 2/2] wireplumber: add desktop file
---
srcpkgs/wireplumber/files/wireplumber.desktop | 8 ++++++++
srcpkgs/wireplumber/template | 3 ++-
2 files changed, 10 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/wireplumber/files/wireplumber.desktop
diff --git a/srcpkgs/wireplumber/files/wireplumber.desktop b/srcpkgs/wireplumber/files/wireplumber.desktop
new file mode 100644
index 000000000000..38a3b2101844
--- /dev/null
+++ b/srcpkgs/wireplumber/files/wireplumber.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=WirePlumber
+Comment=Start WirePlumber
+Icon=pipewire
+Exec=wireplumber
+Terminal=false
+Type=Application
+NoDisplay=true
diff --git a/srcpkgs/wireplumber/template b/srcpkgs/wireplumber/template
index 7f901a6ab2a0..fb9fa438c348 100644
--- a/srcpkgs/wireplumber/template
+++ b/srcpkgs/wireplumber/template
@@ -1,7 +1,7 @@
# Template file for 'wireplumber'
pkgname=wireplumber
version=0.4.13
-revision=1
+revision=2
build_style=meson
build_helper=gir
configure_args="-Dintrospection=enabled -Dsystem-lua=true"
@@ -19,6 +19,7 @@ checksum=2c3cd85a743249d418a64b137adaea475e9d36a3bb31e4230da83458c4d99e48
post_install() {
vlicense LICENSE
vsv wireplumber
+ vinstall "${FILESDIR}/wireplumber.desktop" 644 usr/share/applications
}
wireplumber-devel_package() {
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (17 preceding siblings ...)
2023-01-27 18:04 ` [PR PATCH] [Updated] " cinerea0
@ 2023-01-27 18:23 ` cinerea0
2023-01-27 18:34 ` ahesford
` (5 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-27 18:23 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 441 bytes --]
New comment by cinerea0 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1406894038
Comment:
I've added wireplumber's desktop file. I have to test if 0.3.65 still allows p-m-s to be built. If it does should I change this PR to use 0.3.65 and we shift removing p-m-s to 0.3.66?
EDIT: 0.3.65 has no problems building p-m-s with our current templates. Still need to do functionality testing.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (18 preceding siblings ...)
2023-01-27 18:23 ` cinerea0
@ 2023-01-27 18:34 ` ahesford
2023-01-27 22:14 ` [PR PATCH] [Updated] " cinerea0
` (4 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: ahesford @ 2023-01-27 18:34 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 395 bytes --]
New comment by ahesford on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1406926293
Comment:
If 0.3.65 works with p-m-s, go ahead and bump this. I want to give the INSTALL.msg time to sink in and hopefully get people to transition to wireplumber. We can keep building p-m-s and extend the warning for a few releases if it works without patching.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PR PATCH] [Updated] pipewire: update to 0.3.64
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (19 preceding siblings ...)
2023-01-27 18:34 ` ahesford
@ 2023-01-27 22:14 ` cinerea0
2023-01-27 23:29 ` pipewire: update to 0.3.65 cinerea0
` (3 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-27 22:14 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 389 bytes --]
There is an updated pull request by cinerea0 against master on the void-packages repository
https://github.com/cinerea0/void-packages pipewire
https://github.com/void-linux/void-packages/pull/41846
pipewire: update to 0.3.64
#### Testing the changes
- I tested the changes in this PR: **YES**
A patch file from https://github.com/void-linux/void-packages/pull/41846.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pipewire-41846.patch --]
[-- Type: text/x-diff, Size: 5247 bytes --]
From 3cc54b4dfffcaeb79c3a62c83706c3c16d6c1b73 Mon Sep 17 00:00:00 2001
From: cinerea0 <cinerea0@disroot.org>
Date: Fri, 27 Jan 2023 17:14:18 -0500
Subject: [PATCH 1/2] pipewire: update to 0.3.65
---
srcpkgs/pipewire/INSTALL.msg | 4 ++++
.../patches/install-module-combine-stream.patch | 16 ++++++++++++++++
srcpkgs/pipewire/template | 11 ++++++-----
3 files changed, 26 insertions(+), 5 deletions(-)
create mode 100644 srcpkgs/pipewire/INSTALL.msg
create mode 100644 srcpkgs/pipewire/patches/install-module-combine-stream.patch
diff --git a/srcpkgs/pipewire/INSTALL.msg b/srcpkgs/pipewire/INSTALL.msg
new file mode 100644
index 000000000000..6293ff76f853
--- /dev/null
+++ b/srcpkgs/pipewire/INSTALL.msg
@@ -0,0 +1,4 @@
+The pipewire-media-session session manager has been abandoned upstream and
+will be removed from Void in a subsequent pipewire update. All users are
+encouraged to transition to wireplumber immediately to avoid unexpected loss
+of functionality in the future.
\ No newline at end of file
diff --git a/srcpkgs/pipewire/patches/install-module-combine-stream.patch b/srcpkgs/pipewire/patches/install-module-combine-stream.patch
new file mode 100644
index 000000000000..e75b72db0aa3
--- /dev/null
+++ b/srcpkgs/pipewire/patches/install-module-combine-stream.patch
@@ -0,0 +1,16 @@
+# Upstream patch, will be in 0.3.66+
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/fba7083f8ceb210c7c20aceafeb5c9a8767cf705
+diff --git a/src/modules/meson.build b/src/modules/meson.build
+index 89e4233d9f742042d5fcacbb24a1d8b0fa44b8ef..1bfb03b4b02b63e29346b9a50451c590a5c686c6 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],
+
diff --git a/srcpkgs/pipewire/template b/srcpkgs/pipewire/template
index 5aa0d03d04b2..03398aa923c6 100644
--- a/srcpkgs/pipewire/template
+++ b/srcpkgs/pipewire/template
@@ -1,8 +1,8 @@
# Template file for 'pipewire'
pkgname=pipewire
-version=0.3.63
+version=0.3.65
revision=1
-_pms_version=0.4.1
+_pms_version=0.4.2
create_wrksrc=yes
build_wrksrc="${pkgname}-${version}"
build_style=meson
@@ -20,7 +20,8 @@ configure_args="
-Dbluez5-codec-lc3plus=disabled
-Dsession-managers=media-session
"
-hostmakedepends="doxygen graphviz pkg-config python3-docutils gettext"
+hostmakedepends="doxygen graphviz pkg-config python3-docutils gettext
+ glib-devel"
makedepends="$(vopt_if sdl2 SDL2-devel) gst-plugins-base1-devel jack-devel
sbc-devel v4l-utils-devel libva-devel libbluetooth-devel ncurses-devel
libfreeaptx-devel libusb-devel fdk-aac-devel libsndfile-devel Vulkan-Headers
@@ -37,8 +38,8 @@ homepage="https://pipewire.org/"
changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS"
distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz
https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${_pms_version}/media-session-${_pms_version}.tar.gz"
-checksum="1c10cc15ae8889ff0ff1653c088561ba6d46e3b1e5d4e5aacc9b01e6c1bb64b1
- 119c9216070b54018217552c7924f9888da270c3c4647c5e2b85ffa6b1574975"
+checksum="bb76f938136d0ce8c35bffa99e002dc2dbaeab5e14c6c34154e7f750013d1d6b
+ 4cf8577d4431e08b0e6f29c1ad6bf8662765ab66986ea6f0151883101811c119"
make_dirs="/var/lib/pipewire 0755 _pipewire _pipewire"
system_accounts="_pipewire"
patch_args="-Np1 --directory=${build_wrksrc}"
From d019e295eae141fa88bff4e62ef4fa96691c84f7 Mon Sep 17 00:00:00 2001
From: cinerea0 <cinerea0@disroot.org>
Date: Fri, 27 Jan 2023 17:14:36 -0500
Subject: [PATCH 2/2] wireplumber: add desktop file
---
srcpkgs/wireplumber/files/wireplumber.desktop | 8 ++++++++
srcpkgs/wireplumber/template | 3 ++-
2 files changed, 10 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/wireplumber/files/wireplumber.desktop
diff --git a/srcpkgs/wireplumber/files/wireplumber.desktop b/srcpkgs/wireplumber/files/wireplumber.desktop
new file mode 100644
index 000000000000..38a3b2101844
--- /dev/null
+++ b/srcpkgs/wireplumber/files/wireplumber.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=WirePlumber
+Comment=Start WirePlumber
+Icon=pipewire
+Exec=wireplumber
+Terminal=false
+Type=Application
+NoDisplay=true
diff --git a/srcpkgs/wireplumber/template b/srcpkgs/wireplumber/template
index 7f901a6ab2a0..fb9fa438c348 100644
--- a/srcpkgs/wireplumber/template
+++ b/srcpkgs/wireplumber/template
@@ -1,7 +1,7 @@
# Template file for 'wireplumber'
pkgname=wireplumber
version=0.4.13
-revision=1
+revision=2
build_style=meson
build_helper=gir
configure_args="-Dintrospection=enabled -Dsystem-lua=true"
@@ -19,6 +19,7 @@ checksum=2c3cd85a743249d418a64b137adaea475e9d36a3bb31e4230da83458c4d99e48
post_install() {
vlicense LICENSE
vsv wireplumber
+ vinstall "${FILESDIR}/wireplumber.desktop" 644 usr/share/applications
}
wireplumber-devel_package() {
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.65
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (20 preceding siblings ...)
2023-01-27 22:14 ` [PR PATCH] [Updated] " cinerea0
@ 2023-01-27 23:29 ` cinerea0
2023-01-28 11:12 ` ardadem
` (2 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: cinerea0 @ 2023-01-27 23:29 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 228 bytes --]
New comment by cinerea0 on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1407189191
Comment:
p-m-s build correctly locally and CI indicates it builds correctly elsewhere as well.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.65
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (21 preceding siblings ...)
2023-01-27 23:29 ` pipewire: update to 0.3.65 cinerea0
@ 2023-01-28 11:12 ` ardadem
2023-01-28 14:33 ` [PR PATCH] [Closed]: " ahesford
2023-01-28 14:39 ` ahesford
24 siblings, 0 replies; 26+ messages in thread
From: ardadem @ 2023-01-28 11:12 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 348 bytes --]
New comment by ardadem on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1407376129
Comment:
@ahesford if you plan to use .desktop file for autostart, i want to point out oreo's comment [here](https://github.com/void-linux/void-packages/pull/38521#issuecomment-1399777559) since it makes more sense.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PR PATCH] [Closed]: pipewire: update to 0.3.65
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (22 preceding siblings ...)
2023-01-28 11:12 ` ardadem
@ 2023-01-28 14:33 ` ahesford
2023-01-28 14:39 ` ahesford
24 siblings, 0 replies; 26+ messages in thread
From: ahesford @ 2023-01-28 14:33 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 230 bytes --]
There's a closed pull request on the void-packages repository
pipewire: update to 0.3.65
https://github.com/void-linux/void-packages/pull/41846
Description:
#### Testing the changes
- I tested the changes in this PR: **YES**
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: pipewire: update to 0.3.65
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
` (23 preceding siblings ...)
2023-01-28 14:33 ` [PR PATCH] [Closed]: " ahesford
@ 2023-01-28 14:39 ` ahesford
24 siblings, 0 replies; 26+ messages in thread
From: ahesford @ 2023-01-28 14:39 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 530 bytes --]
New comment by ahesford on void-packages repository
https://github.com/void-linux/void-packages/pull/41846#issuecomment-1407412278
Comment:
There has been a lot of bikeshedding around pipewire, and I suspect there will continue to be more as we iron out the wrinkles in wireplumber documentation. None of that changes the fact that pipewire-media-session will soon become unmaintainable and we should drop it eventually. People should have the maximum possible notice that this will happen, even if the docs aren't quite ready.
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2023-01-28 14:39 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-24 19:40 [PR PATCH] pipewire: update to 0.3.64 cinerea0
2023-01-24 19:47 ` cinerea0
2023-01-24 19:47 ` oreo639
2023-01-24 19:47 ` oreo639
2023-01-24 20:18 ` cinerea0
2023-01-24 20:39 ` [PR PATCH] [Updated] " cinerea0
2023-01-25 14:54 ` ahesford
2023-01-25 21:46 ` [PR PATCH] [Updated] " cinerea0
2023-01-25 21:48 ` cinerea0
2023-01-25 21:54 ` cinerea0
2023-01-25 22:00 ` [PR REVIEW] " ahesford
2023-01-26 2:14 ` [PR PATCH] [Updated] " cinerea0
2023-01-26 2:15 ` [PR REVIEW] " cinerea0
2023-01-26 7:22 ` paper42
2023-01-26 11:03 ` paper42
2023-01-26 15:11 ` ahesford
2023-01-27 18:00 ` [PR PATCH] [Updated] " cinerea0
2023-01-27 18:02 ` cinerea0
2023-01-27 18:04 ` [PR PATCH] [Updated] " cinerea0
2023-01-27 18:23 ` cinerea0
2023-01-27 18:34 ` ahesford
2023-01-27 22:14 ` [PR PATCH] [Updated] " cinerea0
2023-01-27 23:29 ` pipewire: update to 0.3.65 cinerea0
2023-01-28 11:12 ` ardadem
2023-01-28 14:33 ` [PR PATCH] [Closed]: " ahesford
2023-01-28 14:39 ` ahesford
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).