Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gnome-remote-desktop for 
openSUSE:Factory checked in at 2023-05-29 22:47:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-remote-desktop (Old)
 and      /work/SRC/openSUSE:Factory/.gnome-remote-desktop.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnome-remote-desktop"

Mon May 29 22:47:56 2023 rev:19 rq:1089552 version:44.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gnome-remote-desktop/gnome-remote-desktop.changes    
    2023-04-24 22:32:05.639824759 +0200
+++ 
/work/SRC/openSUSE:Factory/.gnome-remote-desktop.new.1533/gnome-remote-desktop.changes
      2023-05-29 22:48:11.414436346 +0200
@@ -1,0 +2,17 @@
+Sun May 28 09:20:44 UTC 2023 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 44.2:
+  + vnc-pipewire-stream and rdp-pipewire-stream: Lock buffer
+    mutex before removing buffer entry.
+  + vnc and rdp: Ensure PipeWire buffers to be queued before
+    destroying them.
+  + Updated translations.
+
+-------------------------------------------------------------------
+Thu May 18 04:19:42 UTC 2023 - Luciano Santos <luc1...@opensuse.org>
+
+- Drop %systemd_user_postun_with_restart macro from the %postun
+  directive. It's been deprecated and emptied (expands to nil) on
+  both Tumbleweed and Leap already.
+
+-------------------------------------------------------------------

Old:
----
  gnome-remote-desktop-44.1.obscpio

New:
----
  gnome-remote-desktop-44.2.obscpio

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

Other differences:
------------------
++++++ gnome-remote-desktop.spec ++++++
--- /var/tmp/diff_new_pack.5SKhc1/_old  2023-05-29 22:48:12.798444625 +0200
+++ /var/tmp/diff_new_pack.5SKhc1/_new  2023-05-29 22:48:12.802444649 +0200
@@ -22,7 +22,7 @@
 %define gstreamer_version  1.10.0
 
 Name:           gnome-remote-desktop
-Version:        44.1
+Version:        44.2
 Release:        0
 Summary:        GNOME Remote Desktop screen sharing service
 License:        GPL-2.0-or-later
@@ -92,9 +92,6 @@
 %preun
 %systemd_user_preun %{systemd_unit}
 
-%postun
-%systemd_user_postun_with_restart %{systemd_unit}
-
 %files
 %license COPYING
 %doc README.md

++++++ _service ++++++
--- /var/tmp/diff_new_pack.5SKhc1/_old  2023-05-29 22:48:12.834444840 +0200
+++ /var/tmp/diff_new_pack.5SKhc1/_new  2023-05-29 22:48:12.838444865 +0200
@@ -3,7 +3,7 @@
   <service name="obs_scm" mode="manual">
     <param 
name="url">https://gitlab.gnome.org/GNOME/gnome-remote-desktop.git</param>
     <param name="scm">git</param>
-    <param name="revision">refs/tags/44.1</param>
+    <param name="revision">refs/tags/44.2</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
   </service>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.5SKhc1/_old  2023-05-29 22:48:12.870445056 +0200
+++ /var/tmp/diff_new_pack.5SKhc1/_new  2023-05-29 22:48:12.874445080 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://gitlab.gnome.org/GNOME/gnome-remote-desktop.git</param>
-              <param 
name="changesrevision">66e0fa21c87f82d7aaf71846dc408fb832d43146</param></service></servicedata>
+              <param 
name="changesrevision">9d1ee9c9458636dbe4d3326dceec81dfefef56dd</param></service></servicedata>
 (No newline at EOF)
 

++++++ gnome-remote-desktop-44.1.obscpio -> gnome-remote-desktop-44.2.obscpio 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-remote-desktop-44.1/meson.build 
new/gnome-remote-desktop-44.2/meson.build
--- old/gnome-remote-desktop-44.1/meson.build   2023-04-22 17:45:46.000000000 
+0200
+++ new/gnome-remote-desktop-44.2/meson.build   2023-05-27 22:18:25.000000000 
+0200
@@ -1,5 +1,5 @@
 project('gnome-remote-desktop', 'c',
-        version: '44.1',
+        version: '44.2',
         meson_version: '>= 0.57.0',
         default_options: ['warning_level=1',
                           'buildtype=debugoptimized'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-remote-desktop-44.1/po/it.po 
new/gnome-remote-desktop-44.2/po/it.po
--- old/gnome-remote-desktop-44.1/po/it.po      2023-04-22 17:45:46.000000000 
+0200
+++ new/gnome-remote-desktop-44.2/po/it.po      2023-05-27 22:18:25.000000000 
+0200
@@ -3,24 +3,25 @@
 # This file is distributed under the same license as the gnome-remote-desktop 
package.
 # Davide Ferracin <davide.ferra...@protonmail.com>, 2021.
 # Milo Casagrande <m...@milo.name>, 2022.
+# Gianvito Cavasoli <gianv...@gmx.it>, 2023.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-remote-desktop master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-remote-desktop/";
 "issues\n"
-"POT-Creation-Date: 2022-02-25 22:19+0000\n"
-"PO-Revision-Date: 2022-03-18 09:48+0100\n"
-"Last-Translator: Milo Casagrande <m...@milo.name>\n"
+"POT-Creation-Date: 2023-05-05 14:01+0000\n"
+"PO-Revision-Date: 2023-05-21 02:46+0200\n"
+"Last-Translator: Gianvito Cavasoli <gianv...@gmx.it>\n"
 "Language-Team: Italian <gnome-it-l...@gnome.org>\n"
 "Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.0.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"X-Generator: Gtranslator 42.0\n"
 
-#: src/grd-daemon.c:423
+#: src/grd-daemon.c:513
 msgid "GNOME Remote Desktop"
 msgstr "Computer remoto GNOME"
 
@@ -46,16 +47,16 @@
 msgid "Accept"
 msgstr "Accetta"
 
-#: src/grd-ctl.c:44
+#: src/grd-ctl.c:53
 #, c-format
 msgid "Usage: %s [OPTIONS...] COMMAND [SUBCOMMAND]...\n"
 msgstr "Uso: %s [OPZIONI...] COMANDO [SOTTOCOMANDO]...\n"
 
-#: src/grd-ctl.c:383
+#: src/grd-ctl.c:461
 msgid "Commands:\n"
 msgstr "Comandi:\n"
 
-#: src/grd-ctl.c:388
+#: src/grd-ctl.c:466
 msgid ""
 "  rdp                                        - RDP subcommands:\n"
 "    enable                                   - Enable the RDP backend\n"
@@ -93,7 +94,7 @@
 "                                               dispositivi di ingresso\n"
 "\n"
 
-#: src/grd-ctl.c:407
+#: src/grd-ctl.c:485
 msgid ""
 "  vnc                                        - VNC subcommands:\n"
 "    enable                                   - Enable the VNC backend\n"
@@ -124,16 +125,20 @@
 "                                               dispositivi di ingresso\n"
 "\n"
 
-#: src/grd-ctl.c:422
+#: src/grd-ctl.c:500
 msgid ""
 "  status [--show-credentials]                - Show current status\n"
 "\n"
 "Options:\n"
+"  --headless                                 - Use headless credentials "
+"storage\n"
 "  --help                                     - Print this help text\n"
 msgstr ""
 "  status [--show-credentials]                - Mostra lo stato attuale\n"
 "\n"
 "Opzioni:\n"
+"  --headless                                 - Usa l'archiviazione delle "
+"credenziali headless\n"
 "  --help                                     - Stampa questo aiuto\n"
 
 #: src/org.gnome.desktop.remote-desktop.gschema.xml.in:7
@@ -141,7 +146,7 @@
 msgstr "Indica se il motore RDP è abilitato o meno"
 
 #: src/org.gnome.desktop.remote-desktop.gschema.xml.in:8
-msgid "If set to to 'true' the RDP backend will be initialized."
+msgid "If set to 'true' the RDP backend will be initialized."
 msgstr "Se impostato a VERO, il motore RDP verrà inizializzato."
 
 #: src/org.gnome.desktop.remote-desktop.gschema.xml.in:14
@@ -156,10 +161,10 @@
 "([MS-RDPBCGR] 2.2.1.3.2) or the client monitor data ([MS-RDPBCGR] "
 "2.2.1.3.6), depending on what is available. When using a remote desktop "
 "session with a virtual monitor, clients can resize the resolution of the "
-"virtual monitor during a session with the Display Control Channel Extension "
-"([MS-RDPEDISP]). Allowed screenshare modes include: * mirror-primary - "
-"Record the primary monitor of the current user session. * extend - Create a "
-"new virtual monitor and use it for the remote desktop session. The "
+"virtual monitor during a session with the Display Update Virtual Channel "
+"Extension ([MS-RDPEDISP]). Allowed screenshare modes include: * mirror-"
+"primary - Record the primary monitor of the current user session. * extend - "
+"Create a new virtual monitor and use it for the remote desktop session. The "
 "resolution of this virtual monitor is derived from the monitor "
 "configuration, submitted by the remote desktop client."
 msgstr ""
@@ -175,7 +180,7 @@
 "primary - Registra il monitor principale della sessione utente corrente. * "
 "extend - Crea un nuovo monitor virtuale e lo utilizza per la sessione di "
 "computer remoto. La risoluzione di questo monitor virtuale deriva dalla "
-"configurazione del monitor, inviata dal client."
+"configurazione del monitor, inviata dal client del computer remoto."
 
 #: src/org.gnome.desktop.remote-desktop.gschema.xml.in:41
 msgid "Path to the certificate file"
@@ -215,7 +220,7 @@
 msgstr "Indica se il motore VNC è abilitato o meno"
 
 #: src/org.gnome.desktop.remote-desktop.gschema.xml.in:68
-msgid "If set to to 'true' the VNC backend will be initialized."
+msgid "If set to 'true' the VNC backend will be initialized."
 msgstr "Se impostato a VERO, il motore VNC verrà inizializzato."
 
 #: src/org.gnome.desktop.remote-desktop.gschema.xml.in:75
@@ -244,3 +249,35 @@
 "una persona che possa accedere fisicamente alla postazione per poter "
 "approvare esplicitamente le nuove richieste; * con password - richiedendo al "
 "client remoto di fornire una password prestabilita."
+
+#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:95
+msgid "Screenshare mode of VNC connections"
+msgstr "Modalità di condivisione dello schermo delle connessioni VNC"
+
+#: src/org.gnome.desktop.remote-desktop.gschema.xml.in:96
+msgid ""
+"The screenshare mode specifies, whether the VNC backend mirrors the primary "
+"screen, or whether a virtual monitor is created. For the initial resolution "
+"of the virtual monitor, the VNC backend uses a default size of 1920x1080 "
+"pixels. When using a remote desktop session with a virtual monitor, clients "
+"can resize the resolution of the virtual monitor during a session with the "
+"setDesktopSize PDU. Allowed screenshare modes include: * mirror-primary - "
+"Record the primary monitor of the current user session. * extend - Create a "
+"new virtual monitor and use it for the remote desktop session. The initial "
+"monitor resolution of this virtual monitor is set to 1920x1080 pixels. "
+"Clients can override the initial resolution with subsequent monitor "
+"configuration updates."
+msgstr ""
+"La modalità di condivisione dello schermo specifica se il motore VNC "
+"rispecchia lo schermo principale o se viene creato uno monitor virtuale. Per "
+"la risoluzione iniziale del monitor virtuale, il motore VNC utilizza una "
+"dimensione predefinita di 1920x1080 pixel. Quando si utilizza una sessione "
+"di computer remoto con un monitor virtuale, i client possono ridimensionare "
+"la risoluzione del monitor virtuale durante una sessione tramite "
+"setDesktopSize PDU. Le modalità di condivisione dello schermo consentite "
+"includono: * mirror-primary - Registra il monitor principale della sessione "
+"utente corrente. * extend - Crea un nuovo monitor virtuale e lo utilizza per "
+"la sessione di computer remoto. La risoluzione iniziale di questo monitor "
+"virtuale è impostata su 1920x1080 pixel. I client possono sovrascrivere la "
+"risoluzione iniziale con successivi aggiornamenti della configurazione del "
+"monitor."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-remote-desktop-44.1/src/grd-rdp-pipewire-stream.c 
new/gnome-remote-desktop-44.2/src/grd-rdp-pipewire-stream.c
--- old/gnome-remote-desktop-44.1/src/grd-rdp-pipewire-stream.c 2023-04-22 
17:45:46.000000000 +0200
+++ new/gnome-remote-desktop-44.2/src/grd-rdp-pipewire-stream.c 2023-05-27 
22:18:25.000000000 +0200
@@ -57,6 +57,12 @@
                                            gboolean              success,
                                            gpointer              user_data);
 
+typedef struct
+{
+  GMutex buffer_mutex;
+  gboolean is_locked;
+} BufferContext;
+
 struct _GrdRdpFrame
 {
   gatomicrefcount refcount;
@@ -134,6 +140,8 @@
   struct pw_stream *pipewire_stream;
   struct spa_hook pipewire_stream_listener;
 
+  GHashTable *pipewire_buffers;
+
   uint32_t src_node_id;
 
   struct spa_video_info_raw spa_format;
@@ -146,6 +154,57 @@
 
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GrdRdpFrame, grd_rdp_frame_unref)
 
+static BufferContext *
+buffer_context_new (void)
+{
+  BufferContext *buffer_context;
+
+  buffer_context = g_new0 (BufferContext, 1);
+  g_mutex_init (&buffer_context->buffer_mutex);
+
+  return buffer_context;
+}
+
+static void
+buffer_context_free (BufferContext *buffer_context)
+{
+  g_mutex_clear (&buffer_context->buffer_mutex);
+
+  g_free (buffer_context);
+}
+
+static void
+acquire_pipewire_buffer_lock (GrdRdpPipeWireStream *stream,
+                              struct pw_buffer     *buffer)
+{
+  BufferContext *buffer_context = NULL;
+
+  if (!g_hash_table_lookup_extended (stream->pipewire_buffers, buffer,
+                                     NULL, (gpointer *) &buffer_context))
+    g_assert_not_reached ();
+
+  g_mutex_lock (&buffer_context->buffer_mutex);
+  g_assert (!buffer_context->is_locked);
+  buffer_context->is_locked = TRUE;
+}
+
+static void
+maybe_release_pipewire_buffer_lock (GrdRdpPipeWireStream *stream,
+                                    struct pw_buffer     *buffer)
+{
+  BufferContext *buffer_context = NULL;
+
+  if (!g_hash_table_lookup_extended (stream->pipewire_buffers, buffer,
+                                     NULL, (gpointer *) &buffer_context))
+    g_assert_not_reached ();
+
+  if (!buffer_context->is_locked)
+    return;
+
+  buffer_context->is_locked = FALSE;
+  g_mutex_unlock (&buffer_context->buffer_mutex);
+}
+
 static GrdRdpFrame *
 grd_rdp_frame_new (GrdRdpPipeWireStream     *stream,
                    GrdRdpFrameReadyCallback  callback,
@@ -447,6 +506,33 @@
 }
 
 static void
+on_stream_add_buffer (void             *user_data,
+                      struct pw_buffer *buffer)
+{
+  GrdRdpPipeWireStream *stream = user_data;
+
+  g_hash_table_insert (stream->pipewire_buffers, buffer, buffer_context_new 
());
+}
+
+static void
+on_stream_remove_buffer (void             *user_data,
+                         struct pw_buffer *buffer)
+{
+  GrdRdpPipeWireStream *stream = user_data;
+  BufferContext *buffer_context = NULL;
+
+  if (!g_hash_table_lookup_extended (stream->pipewire_buffers, buffer,
+                                     NULL, (gpointer *) &buffer_context))
+    g_assert_not_reached ();
+
+  /* Ensure buffer is not locked any more */
+  g_mutex_lock (&buffer_context->buffer_mutex);
+  g_mutex_unlock (&buffer_context->buffer_mutex);
+
+  g_hash_table_remove (stream->pipewire_buffers, buffer);
+}
+
+static void
 process_mouse_pointer_bitmap (GrdRdpPipeWireStream *stream,
                               struct spa_buffer    *buffer)
 {
@@ -532,6 +618,7 @@
   g_source_set_ready_time (stream->frame_render_source, 0);
 out:
   pw_stream_queue_buffer (stream->pipewire_stream, buffer);
+  maybe_release_pipewire_buffer_lock (stream, buffer);
 
   g_clear_pointer (&frame, grd_rdp_frame_unref);
 }
@@ -730,6 +817,7 @@
       realize_buffer_data = g_new0 (RealizeBufferData, 1);
       realize_buffer_data->rdp_buffer = rdp_buffer;
 
+      acquire_pipewire_buffer_lock (stream, pw_buffer);
       grd_egl_thread_upload (egl_thread,
                              stream->egl_slot,
                              pbo,
@@ -809,6 +897,7 @@
           import_buffer_data->rdp_buffer = rdp_buffer;
         }
 
+      acquire_pipewire_buffer_lock (stream, pw_buffer);
       grd_egl_thread_download (egl_thread,
                                stream->egl_slot,
                                grd_rdp_buffer_get_pbo (rdp_buffer),
@@ -905,6 +994,8 @@
   PW_VERSION_STREAM_EVENTS,
   .state_changed = on_stream_state_changed,
   .param_changed = on_stream_param_changed,
+  .add_buffer = on_stream_add_buffer,
+  .remove_buffer = on_stream_remove_buffer,
   .process = on_stream_process,
 };
 
@@ -1200,6 +1291,8 @@
   g_mutex_clear (&stream->frame_mutex);
   g_mutex_clear (&stream->dequeue_mutex);
 
+  g_clear_pointer (&stream->pipewire_buffers, g_hash_table_unref);
+
   pw_deinit ();
 
   if (egl_thread)
@@ -1211,6 +1304,10 @@
 static void
 grd_rdp_pipewire_stream_init (GrdRdpPipeWireStream *stream)
 {
+  stream->pipewire_buffers =
+    g_hash_table_new_full (NULL, NULL,
+                           NULL, (GDestroyNotify) buffer_context_free);
+
   g_mutex_init (&stream->dequeue_mutex);
   g_mutex_init (&stream->frame_mutex);
   g_mutex_init (&stream->pointer_mutex);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-remote-desktop-44.1/src/grd-vnc-pipewire-stream.c 
new/gnome-remote-desktop-44.2/src/grd-vnc-pipewire-stream.c
--- old/gnome-remote-desktop-44.1/src/grd-vnc-pipewire-stream.c 2023-04-22 
17:45:46.000000000 +0200
+++ new/gnome-remote-desktop-44.2/src/grd-vnc-pipewire-stream.c 2023-05-27 
22:18:25.000000000 +0200
@@ -50,6 +50,12 @@
                                            gboolean              success,
                                            gpointer              user_data);
 
+typedef struct
+{
+  GMutex buffer_mutex;
+  gboolean is_locked;
+} BufferContext;
+
 struct _GrdVncFrame
 {
   gatomicrefcount refcount;
@@ -96,6 +102,8 @@
   struct pw_stream *pipewire_stream;
   struct spa_hook pipewire_stream_listener;
 
+  GHashTable *pipewire_buffers;
+
   uint32_t src_node_id;
 
   struct spa_video_info_raw spa_format;
@@ -108,6 +116,57 @@
 
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GrdVncFrame, grd_vnc_frame_unref)
 
+static BufferContext *
+buffer_context_new (void)
+{
+  BufferContext *buffer_context;
+
+  buffer_context = g_new0 (BufferContext, 1);
+  g_mutex_init (&buffer_context->buffer_mutex);
+
+  return buffer_context;
+}
+
+static void
+buffer_context_free (BufferContext *buffer_context)
+{
+  g_mutex_clear (&buffer_context->buffer_mutex);
+
+  g_free (buffer_context);
+}
+
+static void
+acquire_pipewire_buffer_lock (GrdVncPipeWireStream *stream,
+                              struct pw_buffer     *buffer)
+{
+  BufferContext *buffer_context = NULL;
+
+  if (!g_hash_table_lookup_extended (stream->pipewire_buffers, buffer,
+                                     NULL, (gpointer *) &buffer_context))
+    g_assert_not_reached ();
+
+  g_mutex_lock (&buffer_context->buffer_mutex);
+  g_assert (!buffer_context->is_locked);
+  buffer_context->is_locked = TRUE;
+}
+
+static void
+maybe_release_pipewire_buffer_lock (GrdVncPipeWireStream *stream,
+                                    struct pw_buffer     *buffer)
+{
+  BufferContext *buffer_context = NULL;
+
+  if (!g_hash_table_lookup_extended (stream->pipewire_buffers, buffer,
+                                     NULL, (gpointer *) &buffer_context))
+    g_assert_not_reached ();
+
+  if (!buffer_context->is_locked)
+    return;
+
+  buffer_context->is_locked = FALSE;
+  g_mutex_unlock (&buffer_context->buffer_mutex);
+}
+
 static void
 vnc_pointer_free (VncPointer *vnc_pointer)
 {
@@ -226,6 +285,33 @@
                            params, G_N_ELEMENTS (params));
 }
 
+static void
+on_stream_add_buffer (void             *user_data,
+                      struct pw_buffer *buffer)
+{
+  GrdVncPipeWireStream *stream = user_data;
+
+  g_hash_table_insert (stream->pipewire_buffers, buffer, buffer_context_new 
());
+}
+
+static void
+on_stream_remove_buffer (void             *user_data,
+                         struct pw_buffer *buffer)
+{
+  GrdVncPipeWireStream *stream = user_data;
+  BufferContext *buffer_context = NULL;
+
+  if (!g_hash_table_lookup_extended (stream->pipewire_buffers, buffer,
+                                     NULL, (gpointer *) &buffer_context))
+    g_assert_not_reached ();
+
+  /* Ensure buffer is not locked any more */
+  g_mutex_lock (&buffer_context->buffer_mutex);
+  g_mutex_unlock (&buffer_context->buffer_mutex);
+
+  g_hash_table_remove (stream->pipewire_buffers, buffer);
+}
+
 static GrdVncFrame *
 grd_vnc_frame_new (GrdVncPipeWireStream     *stream,
                    GrdVncFrameReadyCallback  callback,
@@ -400,6 +486,7 @@
   g_source_set_ready_time (stream->pending_frame_source, 0);
 out:
   pw_stream_queue_buffer (stream->pipewire_stream, buffer);
+  maybe_release_pipewire_buffer_lock (stream, buffer);
 
   g_clear_pointer (&frame, grd_vnc_frame_unref);
 }
@@ -522,8 +609,9 @@
             modifiers[i] = stream->spa_format.modifier;
         }
       dst_data = g_malloc0 (height * dst_stride);
-
       frame->data = dst_data;
+
+      acquire_pipewire_buffer_lock (stream, pw_buffer);
       grd_egl_thread_download (egl_thread,
                                stream->egl_slot,
                                0, 0, 0,
@@ -676,6 +764,8 @@
   PW_VERSION_STREAM_EVENTS,
   .state_changed = on_stream_state_changed,
   .param_changed = on_stream_param_changed,
+  .add_buffer = on_stream_add_buffer,
+  .remove_buffer = on_stream_remove_buffer,
   .process = on_stream_process,
 };
 
@@ -972,6 +1062,8 @@
   g_mutex_clear (&stream->frame_mutex);
   g_mutex_clear (&stream->dequeue_mutex);
 
+  g_clear_pointer (&stream->pipewire_buffers, g_hash_table_unref);
+
   pw_deinit ();
 
   if (egl_thread)
@@ -983,6 +1075,10 @@
 static void
 grd_vnc_pipewire_stream_init (GrdVncPipeWireStream *stream)
 {
+  stream->pipewire_buffers =
+    g_hash_table_new_full (NULL, NULL,
+                           NULL, (GDestroyNotify) buffer_context_free);
+
   g_mutex_init (&stream->dequeue_mutex);
   g_mutex_init (&stream->frame_mutex);
   g_mutex_init (&stream->pointer_mutex);

++++++ gnome-remote-desktop.obsinfo ++++++
--- /var/tmp/diff_new_pack.5SKhc1/_old  2023-05-29 22:48:13.102446444 +0200
+++ /var/tmp/diff_new_pack.5SKhc1/_new  2023-05-29 22:48:13.106446467 +0200
@@ -1,5 +1,5 @@
 name: gnome-remote-desktop
-version: 44.1
-mtime: 1682178346
-commit: 66e0fa21c87f82d7aaf71846dc408fb832d43146
+version: 44.2
+mtime: 1685218705
+commit: 9d1ee9c9458636dbe4d3326dceec81dfefef56dd
 

Reply via email to