Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package pipewire for openSUSE:Factory 
checked in at 2026-03-17 19:02:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pipewire (Old)
 and      /work/SRC/openSUSE:Factory/.pipewire.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pipewire"

Tue Mar 17 19:02:59 2026 rev:151 rq:1339425 version:1.6.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/pipewire/pipewire.changes        2026-03-10 
17:47:19.780727828 +0100
+++ /work/SRC/openSUSE:Factory/.pipewire.new.8177/pipewire.changes      
2026-03-17 19:04:19.920260087 +0100
@@ -1,0 +2,31 @@
+Mon Mar 16 17:19:24 UTC 2026 - Antonio Larrosa <[email protected]>
+
+- Update to version 1.6.2:
+  * 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 (closed))
+  * Modules
+    - Don't try to free invalid memory or close invalid fds when
+      the client aborted before allocating buffer memory.
+      (#5162 (closed))
+  * 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 (closed))
+    - Fix min/max default values for LADSPA and LV2.
+  * JACK
+    - Fix jack_port_type_id(). Return values that are compatible
+      with JACK1/2. 
+
+-------------------------------------------------------------------

Old:
----
  pipewire-1.6.1.obscpio

New:
----
  pipewire-1.6.2.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pipewire.spec ++++++
--- /var/tmp/diff_new_pack.ND8HjF/_old  2026-03-17 19:04:20.636289759 +0100
+++ /var/tmp/diff_new_pack.ND8HjF/_new  2026-03-17 19:04:20.640289925 +0100
@@ -71,7 +71,7 @@
 %bcond_with aptx
 
 Name:           pipewire
-Version:        1.6.1
+Version:        1.6.2
 Release:        0
 Summary:        A Multimedia Framework designed to be an audio and video 
server and more
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.ND8HjF/_old  2026-03-17 19:04:20.680291584 +0100
+++ /var/tmp/diff_new_pack.ND8HjF/_new  2026-03-17 19:04:20.696292246 +0100
@@ -3,7 +3,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param 
name="url">https://gitlab.freedesktop.org/pipewire/pipewire.git</param>
-    <param name="revision">1.6.1</param>
+    <param name="revision">1.6.2</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <!--
     <param name="revision">636cbae9b6cebc4ba55903e2a686f4c4a2bd4193</param>

++++++ pipewire-1.6.1.obscpio -> pipewire-1.6.2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/NEWS new/pipewire-1.6.2/NEWS
--- old/pipewire-1.6.1/NEWS     2026-03-09 10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/NEWS     2026-03-16 12:54:17.000000000 +0100
@@ -1,3 +1,39 @@
+# 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
@@ -28,8 +64,6 @@
 ## Tools
   - Fix playback of encoded formats. (#5155)
 
-Older versions:
-
 # PipeWire 1.6.0 (2026-02-19)
 
 This is the 1.6 release that is API and ABI compatible with previous
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/doc/DoxygenLayout.xml 
new/pipewire-1.6.2/doc/DoxygenLayout.xml
--- old/pipewire-1.6.1/doc/DoxygenLayout.xml    2026-03-09 10:17:11.000000000 
+0100
+++ new/pipewire-1.6.2/doc/DoxygenLayout.xml    2026-03-16 12:54:17.000000000 
+0100
@@ -44,6 +44,7 @@
     <tab type="usergroup" title="PipeWire Versions">
       <tab type="user" url="https://docs.pipewire.org/1.2/"; title="1.2.x"/>
       <tab type="user" url="https://docs.pipewire.org/1.4/"; title="1.4.x"/>
+      <tab type="user" url="https://docs.pipewire.org/1.6/"; title="1.6.x"/>
       <tab type="user" url="https://docs.pipewire.org/devel/"; 
title="Development"/>
     </tab>
   </navindex>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/doc/dox/internals/dma-buf.dox 
new/pipewire-1.6.2/doc/dox/internals/dma-buf.dox
--- old/pipewire-1.6.1/doc/dox/internals/dma-buf.dox    2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/doc/dox/internals/dma-buf.dox    2026-03-16 
12:54:17.000000000 +0100
@@ -349,10 +349,10 @@
        params[n_params++] = spa_pod_builder_pop(&b, &f);
 ```
 
-After having received the first \ref SPA_PARAM_PeerCapability param, if it 
contained the \ref
-PW_CAPABILITY_DEVICE_ID set to `true`, the full set of formats can be sent 
using \ref
-pw_stream_update_params following by activating the stream using
-`pw_stream_set_active(stream, true)`.
+After having received the first \ref SPA_PARAM_PeerCapability param, if it 
contained the
+\ref PW_CAPABILITY_DEVICE_ID_NEGOTIATION set to a supported API version 
number, the full
+set of formats can be sent using \ref pw_stream_update_params following by 
activating the
+stream usina supported API version numberstream_set_active(stream, true)`.
 
 Note that the first \ref SPA_PARAM_Format received may be the result of the 
initial format
 negotian with bare minimum parameters, and will be superseded by the result of 
the format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/meson.build 
new/pipewire-1.6.2/meson.build
--- old/pipewire-1.6.1/meson.build      2026-03-09 10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/meson.build      2026-03-16 12:54:17.000000000 +0100
@@ -1,5 +1,5 @@
 project('pipewire', ['c' ],
-  version : '1.6.1',
+  version : '1.6.2',
   license : [ 'MIT', 'LGPL-2.1-or-later', 'GPL-2.0-only' ],
   meson_version : '>= 0.61.1',
   default_options : [ 'warning_level=3',
@@ -116,6 +116,7 @@
   '-Werror=old-style-definition',
   '-Werror=missing-parameter-type',
   '-Werror=strict-prototypes',
+  '-Werror=discarded-qualifiers',
 ]
 add_project_arguments(cc.get_supported_arguments(cc_flags), language: 'c')
 add_project_arguments(cc_native.get_supported_arguments(cc_flags),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/pipewire-jack/src/meson.build 
new/pipewire-1.6.2/pipewire-jack/src/meson.build
--- old/pipewire-1.6.1/pipewire-jack/src/meson.build    2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/pipewire-jack/src/meson.build    2026-03-16 
12:54:17.000000000 +0100
@@ -55,7 +55,7 @@
     pipewire_jackserver_sources,
     soversion : soversion,
     version : libjackversion,
-    c_args : pipewire_jack_c_args,
+    c_args : pipewire_jack_c_args + '-DLIBJACKSERVER',
     include_directories : [configinc, jack_inc],
     dependencies : [pipewire_dep, mathlib],
     install : true,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/pipewire-jack/src/pipewire-jack.c 
new/pipewire-1.6.2/pipewire-jack/src/pipewire-jack.c
--- old/pipewire-1.6.1/pipewire-jack/src/pipewire-jack.c        2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/pipewire-jack/src/pipewire-jack.c        2026-03-16 
12:54:17.000000000 +0100
@@ -4887,9 +4887,21 @@
        c->activation->pending_sync = true;
 
        spa_list_for_each(o, &c->context.objects, link) {
+#if !defined(LIBJACKSERVER)
                if (o->type != INTERFACE_Port || o->port.port == NULL ||
                    o->port.port->client != c || !o->port.port->valid)
                        continue;
+#else
+               /* emits all foreign active ports, skips own (already announced 
via jack_port_register) */
+               if (o->type != INTERFACE_Port || o->removed)
+                       continue;
+               /* own ports are handled by jack_port_register */
+               if (o->port.port != NULL && o->port.port->client == c)
+                       continue;
+               /* only announce ports whose node is active */
+               if (o->port.node != NULL && !node_is_active(c, o->port.node))
+                       continue;
+#endif
                o->registered = 0;
                queue_notify(c, NOTIFY_TYPE_PORTREGISTRATION, o, 1, NULL);
        }
@@ -5325,7 +5337,7 @@
        pw_thread_loop_lock(c->context.loop);
        str = pw_properties_get(c->props, PW_KEY_NODE_GROUP);
        if (str != NULL) {
-               char *p = strstr(str, ",pipewire.freewheel");
+               const char *p = strstr(str, ",pipewire.freewheel");
                if (p == NULL)
                        p = strstr(str, "pipewire.freewheel");
                if (p == NULL && onoff)
@@ -6012,7 +6024,16 @@
        return_val_if_fail(o != NULL, 0);
        if (o->type != INTERFACE_Port)
                return TYPE_ID_OTHER;
-       return o->port.type_id;
+
+       /* map internal type IDs to jack1/jack2 compatible public values */
+       switch (o->port.type_id) {
+       case TYPE_ID_AUDIO: return 0;
+       case TYPE_ID_MIDI:
+       case TYPE_ID_OSC:
+       case TYPE_ID_UMP:   return 1;  /* all MIDI variants map to 1 */
+       case TYPE_ID_VIDEO: return 3;  /* video maps to 3 */
+       default:            return o->port.type_id;
+       }
 }
 
 SPA_EXPORT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/spa/plugins/alsa/alsa-udev.c 
new/pipewire-1.6.2/spa/plugins/alsa/alsa-udev.c
--- old/pipewire-1.6.1/spa/plugins/alsa/alsa-udev.c     2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/spa/plugins/alsa/alsa-udev.c     2026-03-16 
12:54:17.000000000 +0100
@@ -538,6 +538,9 @@
                if ((str = udev_device_get_property_value(udev_device, 
"ACP_PROFILE_SET")) && *str)
                        items[n_items++] = 
SPA_DICT_ITEM_INIT(SPA_KEY_DEVICE_PROFILE_SET, str);
 
+               if ((str = udev_device_get_property_value(udev_device, 
"ACP_IGNORE_DB")) && *str)
+                       items[n_items++] = 
SPA_DICT_ITEM_INIT(SPA_KEY_API_ALSA_IGNORE_DB, str);
+
                if ((str = udev_device_get_property_value(udev_device, 
"SOUND_CLASS")) && *str)
                        items[n_items++] = 
SPA_DICT_ITEM_INIT(SPA_KEY_DEVICE_CLASS, str);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/spa/plugins/audiomixer/audiomixer.c 
new/pipewire-1.6.2/spa/plugins/audiomixer/audiomixer.c
--- old/pipewire-1.6.1/spa/plugins/audiomixer/audiomixer.c      2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/spa/plugins/audiomixer/audiomixer.c      2026-03-16 
12:54:17.000000000 +0100
@@ -725,7 +725,7 @@
                        port->io[0] = info->data;
                        port->io[1] = info->data;
                }
-               if (!port->active) {
+               if (port->direction == SPA_DIRECTION_INPUT && !port->active) {
                        spa_list_append(&info->impl->mix_list, &port->mix_link);
                        port->active = true;
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/spa/plugins/audiomixer/mixer-dsp.c 
new/pipewire-1.6.2/spa/plugins/audiomixer/mixer-dsp.c
--- old/pipewire-1.6.1/spa/plugins/audiomixer/mixer-dsp.c       2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/spa/plugins/audiomixer/mixer-dsp.c       2026-03-16 
12:54:17.000000000 +0100
@@ -718,7 +718,7 @@
                        port->io[0] = info->data;
                        port->io[1] = info->data;
                }
-               if (!port->active) {
+               if (port->direction == SPA_DIRECTION_INPUT && !port->active) {
                        spa_list_append(&info->impl->mix_list, &port->mix_link);
                        port->active = true;
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/spa/plugins/bluez5/bluez5-dbus.c 
new/pipewire-1.6.2/spa/plugins/bluez5/bluez5-dbus.c
--- old/pipewire-1.6.1/spa/plugins/bluez5/bluez5-dbus.c 2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/spa/plugins/bluez5/bluez5-dbus.c 2026-03-16 
12:54:17.000000000 +0100
@@ -720,14 +720,12 @@
 /** Get feature name at \a i, or NULL if uuid doesn't match */
 static const char *bap_features_get_name(struct bap_features *feat, size_t i, 
const char *uuid)
 {
-       char *pos;
-
        if (i >= feat->dict.n_items)
                return NULL;
        if (!spa_streq(feat->dict.items[i].value, uuid))
                return NULL;
 
-       pos = strchr(feat->dict.items[i].key, ':');
+       const char *pos = strchr(feat->dict.items[i].key, ':');
        if (!pos)
                return NULL;
        return pos + 1;
@@ -1336,7 +1334,6 @@
 static int parse_modalias(const char *modalias, uint16_t *source, uint16_t 
*vendor,
                uint16_t *product, uint16_t *version)
 {
-       char *pos;
        unsigned int src, i, j, k;
 
        if (spa_strstartswith(modalias, "bluetooth:"))
@@ -1346,7 +1343,7 @@
        else
                return -EINVAL;
 
-       pos = strchr(modalias, ':');
+       const char *pos = strchr(modalias, ':');
        if (pos == NULL)
                return -EINVAL;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pipewire-1.6.1/spa/plugins/filter-graph/filter-graph.c 
new/pipewire-1.6.2/spa/plugins/filter-graph/filter-graph.c
--- old/pipewire-1.6.1/spa/plugins/filter-graph/filter-graph.c  2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/spa/plugins/filter-graph/filter-graph.c  2026-03-16 
12:54:17.000000000 +0100
@@ -1035,8 +1035,8 @@
                        }
                } else if (SPA_FGA_IS_PORT_CONTROL(fp->flags)) {
                        if (SPA_FGA_IS_PORT_INPUT(fp->flags)) {
-                               spa_log_info(impl->log, "using port %lu ('%s') 
as control %d", p,
-                                               fp->name, desc->n_control);
+                               spa_log_info(impl->log, "using port %lu ('%s') 
as control %d %f/%f/%f", p,
+                                               fp->name, desc->n_control, 
fp->def, fp->min, fp->max);
                                desc->control[desc->n_control++] = p;
                        }
                        else if (SPA_FGA_IS_PORT_OUTPUT(fp->flags)) {
@@ -1622,6 +1622,7 @@
                                goto error;
                        }
                }
+               node->control_changed = true;
        }
 
        /* then link ports */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pipewire-1.6.1/spa/plugins/filter-graph/plugin_ladspa.c 
new/pipewire-1.6.2/spa/plugins/filter-graph/plugin_ladspa.c
--- old/pipewire-1.6.1/spa/plugins/filter-graph/plugin_ladspa.c 2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/spa/plugins/filter-graph/plugin_ladspa.c 2026-03-16 
12:54:17.000000000 +0100
@@ -7,6 +7,7 @@
 #include <dlfcn.h>
 #include <math.h>
 #include <limits.h>
+#include <float.h>
 
 #include <spa/utils/result.h>
 #include <spa/utils/defs.h>
@@ -113,8 +114,14 @@
        LADSPA_PortRangeHintDescriptor hint = 
d->PortRangeHints[p].HintDescriptor;
        LADSPA_Data lower, upper;
 
-       lower = d->PortRangeHints[p].LowerBound;
-       upper = d->PortRangeHints[p].UpperBound;
+       if (hint & LADSPA_HINT_BOUNDED_BELOW)
+               lower = d->PortRangeHints[p].LowerBound;
+       else
+               lower = -FLT_MAX;
+       if (hint & LADSPA_HINT_BOUNDED_ABOVE)
+               upper = d->PortRangeHints[p].UpperBound;
+       else
+               upper = FLT_MAX;
 
        port->hint = 0;
        if (hint & LADSPA_HINT_TOGGLED)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/spa/plugins/filter-graph/plugin_lv2.c 
new/pipewire-1.6.2/spa/plugins/filter-graph/plugin_lv2.c
--- old/pipewire-1.6.1/spa/plugins/filter-graph/plugin_lv2.c    2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/spa/plugins/filter-graph/plugin_lv2.c    2026-03-16 
12:54:17.000000000 +0100
@@ -560,6 +560,17 @@
                fp->min = mins[i];
                fp->max = maxes[i];
                fp->def = controls[i];
+
+               if (isnan(fp->min))
+                       fp->min = -FLT_MAX;
+               if (isnan(fp->max))
+                       fp->max = FLT_MAX;
+               if (isnan(fp->def))
+                       fp->def = 0.0f;
+               if (fp->max <= fp->min)
+                       fp->max = FLT_MAX;
+               if (fp->def <= fp->min)
+                       fp->min = -FLT_MAX;
        }
        return &desc->desc;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pipewire-1.6.1/spa/plugins/libcamera/libcamera-source.cpp 
new/pipewire-1.6.2/spa/plugins/libcamera/libcamera-source.cpp
--- old/pipewire-1.6.1/spa/plugins/libcamera/libcamera-source.cpp       
2026-03-09 10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/spa/plugins/libcamera/libcamera-source.cpp       
2026-03-16 12:54:17.000000000 +0100
@@ -2163,7 +2163,7 @@
                        &impl_node, this);
 
        params[NODE_PropInfo] = SPA_PARAM_INFO(SPA_PARAM_PropInfo, 
SPA_PARAM_INFO_READ);
-       params[NODE_Props] = SPA_PARAM_INFO(SPA_PARAM_Props, 
SPA_PARAM_INFO_READWRITE);
+       params[NODE_Props] = SPA_PARAM_INFO(SPA_PARAM_Props, 
SPA_PARAM_INFO_WRITE);
        params[NODE_EnumFormat] = SPA_PARAM_INFO(SPA_PARAM_EnumFormat, 
SPA_PARAM_INFO_READ);
        params[NODE_Format] = SPA_PARAM_INFO(SPA_PARAM_Format, 
SPA_PARAM_INFO_WRITE);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/spa/plugins/support/logger.c 
new/pipewire-1.6.2/spa/plugins/support/logger.c
--- old/pipewire-1.6.1/spa/plugins/support/logger.c     2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/spa/plugins/support/logger.c     2026-03-16 
12:54:17.000000000 +0100
@@ -73,7 +73,7 @@
        char timestamp[18] = {0};
        char topicstr[32] = {0};
        char filename[64] = {0};
-       char location[1000 + RESERVED_LENGTH], *p, *s;
+       char location[1000 + RESERVED_LENGTH], *p;
        static const char * const levels[] = { "-", "E", "W", "I", "D", "T", 
"*T*" };
        const char *prefix = "", *suffix = "";
        int size, len;
@@ -118,7 +118,7 @@
 
 
        if (impl->line && line != 0) {
-               s = strrchr(file, '/');
+               const char *s = strrchr(file, '/');
                spa_scnprintf(filename, sizeof(filename), "[%16.16s:%5i %s()]",
                        s ? s + 1 : file, line, func);
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/spa/plugins/v4l2/v4l2-device.c 
new/pipewire-1.6.2/spa/plugins/v4l2/v4l2-device.c
--- old/pipewire-1.6.1/spa/plugins/v4l2/v4l2-device.c   2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/spa/plugins/v4l2/v4l2-device.c   2026-03-16 
12:54:17.000000000 +0100
@@ -98,9 +98,9 @@
                        (this->dev.cap.version >> 8) & 0xFF,
                        (this->dev.cap.version) & 0xFF);
        ADD_ITEM(SPA_KEY_API_V4L2_CAP_VERSION, version);
-       snprintf(capabilities, sizeof(capabilities), "%08x", 
this->dev.cap.capabilities);
+       snprintf(capabilities, sizeof(capabilities), "0x%08x", 
this->dev.cap.capabilities);
        ADD_ITEM(SPA_KEY_API_V4L2_CAP_CAPABILITIES, capabilities);
-       snprintf(device_caps, sizeof(device_caps), "%08x", 
this->dev.cap.device_caps);
+       snprintf(device_caps, sizeof(device_caps), "0x%08x", 
this->dev.cap.device_caps);
        ADD_ITEM(SPA_KEY_API_V4L2_CAP_DEVICE_CAPS, device_caps);
 #undef ADD_ITEM
        info.props = &SPA_DICT_INIT(items, n_items);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pipewire-1.6.1/src/modules/module-client-node/client-node.c 
new/pipewire-1.6.2/src/modules/module-client-node/client-node.c
--- old/pipewire-1.6.1/src/modules/module-client-node/client-node.c     
2026-03-09 10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/src/modules/module-client-node/client-node.c     
2026-03-16 12:54:17.000000000 +0100
@@ -264,7 +264,8 @@
        case SPA_DATA_DmaBuf:
        case SPA_DATA_SyncObj:
                pw_log_debug("%p: close fd:%d", impl, (int)d->fd);
-               close(d->fd);
+               if (d->fd != -1)
+                       close(d->fd);
                break;
        }
 }
@@ -864,8 +865,11 @@
 
                        memcpy(&b->datas[j], d, sizeof(struct spa_data));
 
-                       if (flags & SPA_NODE_BUFFERS_FLAG_ALLOC)
+                       if (flags & SPA_NODE_BUFFERS_FLAG_ALLOC) {
+                               b->datas[j].fd = -1;
+                               b->datas[j].data = 
SPA_UINT32_TO_PTR(SPA_ID_INVALID);
                                continue;
+                       }
 
                        switch (d->type) {
                        case SPA_DATA_DmaBuf:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/src/pipewire/capabilities.h 
new/pipewire-1.6.2/src/pipewire/capabilities.h
--- old/pipewire-1.6.1/src/pipewire/capabilities.h      2026-03-09 
10:17:11.000000000 +0100
+++ new/pipewire-1.6.2/src/pipewire/capabilities.h      2026-03-16 
12:54:17.000000000 +0100
@@ -21,11 +21,14 @@
  * \{
  */
 
-/**< Link capable of device ID negotiation. The value is either "true" or 
"false" */
+/**< Link capable of device ID negotiation. The value is to the version of the
+ * API specification. */
 #define PW_CAPABILITY_DEVICE_ID_NEGOTIATION    "pipewire.device-id-negotiation"
 /**< Link with device ID negotition capability supports negotiating with
- * provided list of devices. The value consists of a JSON encoded string array
- * of base64 encoded dev_t values. */
+ * a specific set of devices. The value of API version 1 consists of a JSON
+ * object containing a single key "available-devices" that contain a list of
+ * hexadecimal encoded `dev_t` device IDs.
+ */
 #define PW_CAPABILITY_DEVICE_IDS               "pipewire.device-ids"
 
 #define PW_CAPABILITY_DEVICE_ID                "pipewire.device-id"    /**< 
Link capable of device Id negotation */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pipewire-1.6.1/src/pipewire/impl-link.c 
new/pipewire-1.6.2/src/pipewire/impl-link.c
--- old/pipewire-1.6.1/src/pipewire/impl-link.c 2026-03-09 10:17:11.000000000 
+0100
+++ new/pipewire-1.6.2/src/pipewire/impl-link.c 2026-03-16 12:54:17.000000000 
+0100
@@ -701,7 +701,10 @@
                /* always enable async mode */
                alloc_flags = PW_BUFFERS_FLAG_ASYNC;
 
-               if (output->node->remote || input->node->remote)
+               /* shared mem can only be used if both nodes are in the same 
process
+                * and we are sure that the buffers are never going to be shared
+                * because of the exclusive flag */
+               if (output->node->remote || input->node->remote || 
!output->exclusive)
                        alloc_flags |= PW_BUFFERS_FLAG_SHARED;
 
                if (output->node->driver)

++++++ pipewire.obsinfo ++++++
--- /var/tmp/diff_new_pack.ND8HjF/_old  2026-03-17 19:04:22.484366347 +0100
+++ /var/tmp/diff_new_pack.ND8HjF/_new  2026-03-17 19:04:22.492366678 +0100
@@ -1,5 +1,5 @@
 name: pipewire
-version: 1.6.1
-mtime: 1773047831
-commit: b7341d068947225fcdf62d39277606e8516d7f52
+version: 1.6.2
+mtime: 1773662057
+commit: 95da54a482b68475958bbc3fa572a9c20df0df74
 

Reply via email to