diff options
| author | Markus Volk <f_l_k@t-online.de> | 2026-03-18 18:46:58 +0100 |
|---|---|---|
| committer | Khem Raj <raj.khem@gmail.com> | 2026-03-18 14:33:34 -0700 |
| commit | 5925a6108240f861c071648c7dd0e7c8dd897171 (patch) | |
| tree | 52d2627c932e8b4d2c9bd65cad148abfcda98e65 /meta-multimedia/recipes-multimedia/pipewire | |
| parent | 216b1c7cb2e49d8d54f14e3fdea5c5ca359f20a2 (diff) | |
| download | meta-openembedded-5925a6108240f861c071648c7dd0e7c8dd897171.tar.gz | |
pipewire: update 1.6.0 -> 1.6.2
- remove two backport patches
PipeWire 1.6.2 (2026-03-16)
This is a bugfix release that is API and ABI compatible with the previous
1.6.x releases.
Highlights
- Fix a potential crash when the wrong memory was freed.
- Fix a optimization with shared memory over some links that could
cause errors later on.
- Fix SOFA filter and default control input in LADSPA and LV2.
- Some other small fixes and improvements.
PipeWire
- Remove an optimization to skip share mem in links, it causes problems
later on. (#5159)
Modules
- Don't try to free invalid memory or close invalid fds when the client
aborted before allocating buffer memory. (#5162)
SPA
- support ACP_IGNORE_DB in udev.
- Use 0x as a prefix for hex values.
- Mark Props as write-only in libcamera.
- Small optimization in the audio mixer.
- Fix initialization of control properties for SOFA and biquads in the
filter-graph. (#5152)
- Fix min/max default values for LADSPA and LV2.
JACK
- Fix jack_port_type_id(). Return values that are compatible with JACK1/2.
Older versions:
PipeWire 1.6.1 (2026-03-09)
This is a bugfix release that is API and ABI compatible with the previous
1.6.x releases.
Highlights
- Fix socket activation, which could cause a failure to start PipeWire in
some setups.
- Fix crashes in many JACK apps when nodes/ports are quickly added/removed
such as when there are notifications (like when changing the volume in
KDE).
- Fix playback of encoded formats in pw-cat again.
- Some other smaller fixes and improvements.
Modules
- Fix socket activation. (#5140)
- Remove node.link-group from driver nodes.
SPA
- Fix the libcamera stop sequence.
JACK
- Never return NULL from jack_port_by_id(). (#3512)
GStreamer
- Improve the timestamps on buffers.
Tools
- Fix playback of encoded formats. (#5155)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-multimedia/recipes-multimedia/pipewire')
| -rw-r--r-- | meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-module-protocol-native-Fix-socket-activation.patch | 86 | ||||
| -rw-r--r-- | meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-treewide-fix-some-Wdiscarded-qualifiers.patch | 89 | ||||
| -rw-r--r-- | meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.2.bb (renamed from meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.0.bb) | 6 |
3 files changed, 2 insertions, 179 deletions
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-module-protocol-native-Fix-socket-activation.patch b/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-module-protocol-native-Fix-socket-activation.patch deleted file mode 100644 index c345067932..0000000000 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-module-protocol-native-Fix-socket-activation.patch +++ /dev/null | |||
| @@ -1,86 +0,0 @@ | |||
| 1 | From f4e174870eb8cbe60c922d3bf181f3eb2347523c Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Jonas Holmberg <jonashg@axis.com> | ||
| 3 | Date: Mon, 2 Mar 2026 10:28:26 +0100 | ||
| 4 | Subject: [PATCH] module-protocol-native: Fix socket activation | ||
| 5 | |||
| 6 | Fix path comparison in is_socket_unix() and don't unset LISTEN_FDS since | ||
| 7 | the function that uses it is called more than once and it was not unset | ||
| 8 | when sd_listen_fds() was used. | ||
| 9 | |||
| 10 | Fixes #5140 | ||
| 11 | Upstream-Status: Backport | ||
| 12 | [https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/f4e174870eb8cbe60c922d3bf181f3eb2347523c] | ||
| 13 | --- | ||
| 14 | src/modules/module-protocol-native.c | 2 +- | ||
| 15 | src/modules/module-protocol-pulse/server.c | 2 +- | ||
| 16 | src/modules/network-utils.h | 14 +++++--------- | ||
| 17 | 3 files changed, 7 insertions(+), 11 deletions(-) | ||
| 18 | |||
| 19 | diff --git a/src/modules/module-protocol-native.c b/src/modules/module-protocol-native.c | ||
| 20 | index 2be92a847..98a43829b 100644 | ||
| 21 | --- a/src/modules/module-protocol-native.c | ||
| 22 | +++ b/src/modules/module-protocol-native.c | ||
| 23 | @@ -907,7 +907,7 @@ static int add_socket(struct pw_protocol *protocol, struct server *s, struct soc | ||
| 24 | bool activated = false; | ||
| 25 | |||
| 26 | { | ||
| 27 | - int i, n = listen_fd(); | ||
| 28 | + int i, n = listen_fds(); | ||
| 29 | for (i = 0; i < n; ++i) { | ||
| 30 | if (is_socket_unix(LISTEN_FDS_START + i, SOCK_STREAM, | ||
| 31 | s->addr.sun_path) > 0) { | ||
| 32 | diff --git a/src/modules/module-protocol-pulse/server.c b/src/modules/module-protocol-pulse/server.c | ||
| 33 | index aeab710b0..637757dfd 100644 | ||
| 34 | --- a/src/modules/module-protocol-pulse/server.c | ||
| 35 | +++ b/src/modules/module-protocol-pulse/server.c | ||
| 36 | @@ -576,7 +576,7 @@ static bool is_stale_socket(int fd, const struct sockaddr_un *addr_un) | ||
| 37 | |||
| 38 | static int check_socket_activation(const char *path) | ||
| 39 | { | ||
| 40 | - const int n = listen_fd(); | ||
| 41 | + const int n = listen_fds(); | ||
| 42 | |||
| 43 | for (int i = 0; i < n; i++) { | ||
| 44 | const int fd = LISTEN_FDS_START + i; | ||
| 45 | diff --git a/src/modules/network-utils.h b/src/modules/network-utils.h | ||
| 46 | index a89b7d3bd..6ff80dd7a 100644 | ||
| 47 | --- a/src/modules/network-utils.h | ||
| 48 | +++ b/src/modules/network-utils.h | ||
| 49 | @@ -143,7 +143,7 @@ static inline bool pw_net_addr_is_any(struct sockaddr_storage *addr) | ||
| 50 | |||
| 51 | /* Returns the number of file descriptors passed for socket activation. | ||
| 52 | * Returns 0 if none, -1 on error. */ | ||
| 53 | -static inline int listen_fd(void) | ||
| 54 | +static inline int listen_fds(void) | ||
| 55 | { | ||
| 56 | uint32_t n; | ||
| 57 | int i, flags; | ||
| 58 | @@ -161,8 +161,6 @@ static inline int listen_fd(void) | ||
| 59 | return -1; | ||
| 60 | } | ||
| 61 | |||
| 62 | - unsetenv("LISTEN_FDS"); | ||
| 63 | - | ||
| 64 | return (int)n; | ||
| 65 | } | ||
| 66 | |||
| 67 | @@ -192,12 +190,10 @@ static inline int is_socket_unix(int fd, int type, const char *path) | ||
| 68 | if (addr.sun_family != AF_UNIX) | ||
| 69 | return 0; | ||
| 70 | size_t length = strlen(path); | ||
| 71 | - if (length > 0) { | ||
| 72 | - if (len < offsetof(struct sockaddr_un, sun_path) + length) | ||
| 73 | - return 0; | ||
| 74 | - if (memcmp(addr.sun_path, path, length) != 0) | ||
| 75 | - return 0; | ||
| 76 | - } | ||
| 77 | + if (len < offsetof(struct sockaddr_un, sun_path) + length + 1) | ||
| 78 | + return 0; | ||
| 79 | + if (memcmp(addr.sun_path, path, length + 1) != 0) | ||
| 80 | + return 0; | ||
| 81 | } | ||
| 82 | |||
| 83 | return 1; | ||
| 84 | -- | ||
| 85 | 2.34.1 | ||
| 86 | |||
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-treewide-fix-some-Wdiscarded-qualifiers.patch b/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-treewide-fix-some-Wdiscarded-qualifiers.patch deleted file mode 100644 index e8e677910b..0000000000 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-treewide-fix-some-Wdiscarded-qualifiers.patch +++ /dev/null | |||
| @@ -1,89 +0,0 @@ | |||
| 1 | From fa64e2873682180eae5ce5bd02298fa6739cf005 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= <pobrn@protonmail.com> | ||
| 3 | Date: Thu, 19 Feb 2026 20:56:36 +0100 | ||
| 4 | Subject: [PATCH] treewide: fix some `-Wdiscarded-qualifiers` | ||
| 5 | |||
| 6 | Newer glibc versions have made certain `str*()` functions into macros | ||
| 7 | that ensure that the const-ness of the argument is propagated to the | ||
| 8 | return type. | ||
| 9 | |||
| 10 | Signed-off-by: Martin Jansa <martin.jansa@gmail.com> | ||
| 11 | Upstream-Status: Backport [https://github.com/PipeWire/pipewire/commit/e46bfe67b60458e444ee2495209144b49e97d2f1] | ||
| 12 | --- | ||
| 13 | pipewire-jack/src/pipewire-jack.c | 2 +- | ||
| 14 | spa/plugins/bluez5/bluez5-dbus.c | 7 ++----- | ||
| 15 | spa/plugins/support/logger.c | 4 ++-- | ||
| 16 | 3 files changed, 5 insertions(+), 8 deletions(-) | ||
| 17 | |||
| 18 | diff --git a/pipewire-jack/src/pipewire-jack.c b/pipewire-jack/src/pipewire-jack.c | ||
| 19 | index 1bef74283..73627a67e 100644 | ||
| 20 | --- a/pipewire-jack/src/pipewire-jack.c | ||
| 21 | +++ b/pipewire-jack/src/pipewire-jack.c | ||
| 22 | @@ -5318,7 +5318,7 @@ int jack_set_freewheel(jack_client_t* client, int onoff) | ||
| 23 | pw_thread_loop_lock(c->context.loop); | ||
| 24 | str = pw_properties_get(c->props, PW_KEY_NODE_GROUP); | ||
| 25 | if (str != NULL) { | ||
| 26 | - char *p = strstr(str, ",pipewire.freewheel"); | ||
| 27 | + const char *p = strstr(str, ",pipewire.freewheel"); | ||
| 28 | if (p == NULL) | ||
| 29 | p = strstr(str, "pipewire.freewheel"); | ||
| 30 | if (p == NULL && onoff) | ||
| 31 | diff --git a/spa/plugins/bluez5/bluez5-dbus.c b/spa/plugins/bluez5/bluez5-dbus.c | ||
| 32 | index 21a5e53de..7dfe45911 100644 | ||
| 33 | --- a/spa/plugins/bluez5/bluez5-dbus.c | ||
| 34 | +++ b/spa/plugins/bluez5/bluez5-dbus.c | ||
| 35 | @@ -720,14 +720,12 @@ static const char *bap_features_get_uuid(struct bap_features *feat, size_t i) | ||
| 36 | /** Get feature name at \a i, or NULL if uuid doesn't match */ | ||
| 37 | static const char *bap_features_get_name(struct bap_features *feat, size_t i, const char *uuid) | ||
| 38 | { | ||
| 39 | - char *pos; | ||
| 40 | - | ||
| 41 | if (i >= feat->dict.n_items) | ||
| 42 | return NULL; | ||
| 43 | if (!spa_streq(feat->dict.items[i].value, uuid)) | ||
| 44 | return NULL; | ||
| 45 | |||
| 46 | - pos = strchr(feat->dict.items[i].key, ':'); | ||
| 47 | + const char *pos = strchr(feat->dict.items[i].key, ':'); | ||
| 48 | if (!pos) | ||
| 49 | return NULL; | ||
| 50 | return pos + 1; | ||
| 51 | @@ -1336,7 +1334,6 @@ static struct spa_bt_adapter *adapter_find(struct spa_bt_monitor *monitor, const | ||
| 52 | static int parse_modalias(const char *modalias, uint16_t *source, uint16_t *vendor, | ||
| 53 | uint16_t *product, uint16_t *version) | ||
| 54 | { | ||
| 55 | - char *pos; | ||
| 56 | unsigned int src, i, j, k; | ||
| 57 | |||
| 58 | if (spa_strstartswith(modalias, "bluetooth:")) | ||
| 59 | @@ -1346,7 +1343,7 @@ static int parse_modalias(const char *modalias, uint16_t *source, uint16_t *vend | ||
| 60 | else | ||
| 61 | return -EINVAL; | ||
| 62 | |||
| 63 | - pos = strchr(modalias, ':'); | ||
| 64 | + const char *pos = strchr(modalias, ':'); | ||
| 65 | if (pos == NULL) | ||
| 66 | return -EINVAL; | ||
| 67 | |||
| 68 | diff --git a/spa/plugins/support/logger.c b/spa/plugins/support/logger.c | ||
| 69 | index c6e6ca4b8..6ea5f31b5 100644 | ||
| 70 | --- a/spa/plugins/support/logger.c | ||
| 71 | +++ b/spa/plugins/support/logger.c | ||
| 72 | @@ -73,7 +73,7 @@ impl_log_logtv(void *object, | ||
| 73 | char timestamp[18] = {0}; | ||
| 74 | char topicstr[32] = {0}; | ||
| 75 | char filename[64] = {0}; | ||
| 76 | - char location[1000 + RESERVED_LENGTH], *p, *s; | ||
| 77 | + char location[1000 + RESERVED_LENGTH], *p; | ||
| 78 | static const char * const levels[] = { "-", "E", "W", "I", "D", "T", "*T*" }; | ||
| 79 | const char *prefix = "", *suffix = ""; | ||
| 80 | int size, len; | ||
| 81 | @@ -118,7 +118,7 @@ impl_log_logtv(void *object, | ||
| 82 | |||
| 83 | |||
| 84 | if (impl->line && line != 0) { | ||
| 85 | - s = strrchr(file, '/'); | ||
| 86 | + const char *s = strrchr(file, '/'); | ||
| 87 | spa_scnprintf(filename, sizeof(filename), "[%16.16s:%5i %s()]", | ||
| 88 | s ? s + 1 : file, line, func); | ||
| 89 | } | ||
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.0.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.2.bb index 596e86845b..14e467fa33 100644 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.0.bb +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.6.2.bb | |||
| @@ -12,11 +12,9 @@ LIC_FILES_CHKSUM = " \ | |||
| 12 | 12 | ||
| 13 | DEPENDS = "dbus ncurses" | 13 | DEPENDS = "dbus ncurses" |
| 14 | 14 | ||
| 15 | SRCREV = "700cea78dbe7564131d51b21a7795e2567ee048a" | 15 | SRCREV = "95da54a482b68475958bbc3fa572a9c20df0df74" |
| 16 | BRANCH = "${@oe.utils.trim_version('${PV}', 2)}" | 16 | BRANCH = "${@oe.utils.trim_version('${PV}', 2)}" |
| 17 | SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=${BRANCH};protocol=https;tag=${PV} \ | 17 | SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=${BRANCH};protocol=https;tag=${PV}" |
| 18 | file://0001-treewide-fix-some-Wdiscarded-qualifiers.patch \ | ||
| 19 | file://0001-module-protocol-native-Fix-socket-activation.patch" | ||
| 20 | 18 | ||
| 21 | inherit meson pkgconfig systemd gettext useradd | 19 | inherit meson pkgconfig systemd gettext useradd |
| 22 | 20 | ||
