Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gstreamer for openSUSE:Factory 
checked in at 2026-05-13 17:18:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer.new.1966 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer"

Wed May 13 17:18:32 2026 rev:122 rq:1352700 version:1.28.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer/gstreamer.changes      2026-04-15 
16:04:45.415458475 +0200
+++ /work/SRC/openSUSE:Factory/.gstreamer.new.1966/gstreamer.changes    
2026-05-13 17:18:44.465807638 +0200
@@ -1,0 +2,49 @@
+Tue May 12 06:52:33 UTC 2026 - Bjørn Lie <[email protected]>
+
+- Update to version 1.28.3:
+  + Highlighted bugfixes:
+    - Various security fixes and playback fixes
+    - applemedia: vtdec stability, MoltenVK integration and planar
+      video format handling fixes
+    - audioresample: Fix regression on armv7hf
+    - bpmdetect: Fixes for stereo and multi-channel modes
+    - devicemonitor: wait for start thread to finish when listing
+      devices so all the info is there for e.g. v4l2 provider
+    - fallbacksrc: Add fallback-source and enable-dummy properties
+    - nvidia: fix cudaconvert performance regression and nvdec
+      device creation regression
+    - opengl: add GBRA swizzle support, and fix glcolorconvert
+      vertical flip issue on crop
+    - rtspsrc: include user-agent property in HTTP tunnel requests
+      and fix mikey regression
+    - threadshare: add leaky mode to dataqueue-based elements
+    - v4l2: fix negotiation error when trying to force stateful
+      decoders to output dmabufs
+    - webrtcsink: Add support imx8mp vpuenc_hevc hardware H.265
+      encoder
+    - cerbero: Extend gst-plugins-rs melding to Darwin platforms
+      for smaller binary sizes and static linking improvements
+    - inno Windows installer fixes, including silent install mode
+      via the command line
+    - macOS: provide script to allow uninstalling the package;
+      relocate absolute paths to Python.framework in wheels
+    - Various bug fixes, build fixes, memory leak fixes, and other
+      stability and reliability improvements
+  + gstreamer:
+    - pad: fix potential buffer leak in get_range_failed error
+      handler
+    - aggregator: Fix documentation
+    - allocator: Use g_try_malloc() instead of g_malloc() for
+      sysmem
+    - baseparse: Fix memory leak when subclass returns error
+    - bitwriter: Allow unsetting set bits when overwriting them
+    - devicemonitor: Wait for start thread to finish when listing
+      devices
+    - streams: Add METADATA to the valid stream flags for
+      serialization
+    - value: On buffer deserialization errors first unmap the
+      buffer and then unref it
+    - gst-inspect-1.0: type for string caps fields should be
+      'string' not 'gchararray'
+
+-------------------------------------------------------------------

Old:
----
  gstreamer-1.28.2.obscpio

New:
----
  gstreamer-1.28.3.obscpio

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

Other differences:
------------------
++++++ gstreamer.spec ++++++
--- /var/tmp/diff_new_pack.UmniVP/_old  2026-05-13 17:18:45.361845073 +0200
+++ /var/tmp/diff_new_pack.UmniVP/_new  2026-05-13 17:18:45.361845073 +0200
@@ -19,7 +19,7 @@
 %define gst_branch 1.0
 
 Name:           gstreamer
-Version:        1.28.2
+Version:        1.28.3
 Release:        0
 Summary:        Streaming-Media Framework Runtime
 License:        LGPL-2.1-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.UmniVP/_old  2026-05-13 17:18:45.425847748 +0200
+++ /var/tmp/diff_new_pack.UmniVP/_new  2026-05-13 17:18:45.429847914 +0200
@@ -5,7 +5,7 @@
     <param 
name="url">https://gitlab.freedesktop.org/gstreamer/gstreamer.git</param>
     <param name="subdir">subprojects/gstreamer</param>
     <param name="filename">gstreamer</param>
-    <param name="revision">1.28.2</param>
+    <param name="revision">1.28.3</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="versionrewrite-pattern">v?(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ gstreamer-1.28.2.obscpio -> gstreamer-1.28.3.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/docs/meson.build 
new/gstreamer-1.28.3/docs/meson.build
--- old/gstreamer-1.28.2/docs/meson.build       2026-04-07 21:02:23.000000000 
+0200
+++ new/gstreamer-1.28.3/docs/meson.build       2026-05-11 19:28:12.000000000 
+0200
@@ -17,6 +17,15 @@
     subdir_done()
 endif
 
+if get_option('check').disabled()
+    if get_option('doc').enabled()
+        error('Documentation enabled but not supported when gstcheck is 
disabled')
+    endif
+
+    message('gstcheck is disabled, can\'t build the documentation')
+    subdir_done()
+endif
+
 hotdoc_plugin_scanner = executable('gst-hotdoc-plugins-scanner',
   'gst-hotdoc-plugins-scanner.c',
   c_args : gst_c_args,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/gst/gstallocator.c 
new/gstreamer-1.28.3/gst/gstallocator.c
--- old/gstreamer-1.28.2/gst/gstallocator.c     2026-04-07 21:02:23.000000000 
+0200
+++ new/gstreamer-1.28.3/gst/gstallocator.c     2026-05-11 19:28:12.000000000 
+0200
@@ -443,7 +443,7 @@
   }
   slice_size = sizeof (GstMemorySystem) + maxsize;
 
-  mem = g_malloc (slice_size);
+  mem = g_try_malloc (slice_size);
   if (mem == NULL)
     return NULL;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/gst/gstdevicemonitor.c 
new/gstreamer-1.28.3/gst/gstdevicemonitor.c
--- old/gstreamer-1.28.2/gst/gstdevicemonitor.c 2026-04-07 21:02:23.000000000 
+0200
+++ new/gstreamer-1.28.3/gst/gstdevicemonitor.c 2026-05-11 19:28:12.000000000 
+0200
@@ -105,6 +105,7 @@
 {
   gboolean started;
   GThread *start_thread;
+  GCond started_cond;
 
   GstBus *bus;
 
@@ -328,6 +329,7 @@
   self->priv->started_providers = NULL;
   self->priv->started = FALSE;
   self->priv->start_thread = NULL;
+  g_cond_init (&self->priv->started_cond);
 
   self->priv->last_id = 1;
 }
@@ -391,6 +393,8 @@
 
   gst_object_replace ((GstObject **) & self->priv->bus, NULL);
 
+  g_cond_clear (&self->priv->started_cond);
+
   G_OBJECT_CLASS (gst_device_monitor_parent_class)->dispose (object);
 }
 
@@ -401,6 +405,9 @@
  * Gets a list of devices from all of the relevant monitors. This may actually
  * probe the hardware if the monitor is not currently started.
  *
+ * Since 1.28.3, this function will block until the monitor has finished
+ * starting if gst_device_monitor_start() has been called.
+ *
  * Returns: (transfer full) (element-type GstDevice) (nullable): a #GList of
  *   #GstDevice
  *
@@ -420,6 +427,10 @@
 
   GST_OBJECT_LOCK (monitor);
 
+  while (monitor->priv->start_thread != NULL) {
+    g_cond_wait (&monitor->priv->started_cond, GST_OBJECT_GET_LOCK (monitor));
+  }
+
   if (monitor->priv->filters->len == 0) {
     GST_OBJECT_UNLOCK (monitor);
     GST_WARNING_OBJECT (monitor, "No filters have been set");
@@ -557,6 +568,7 @@
   }
 
   g_clear_pointer (&monitor->priv->start_thread, g_thread_unref);
+  g_cond_broadcast (&monitor->priv->started_cond);
   GST_OBJECT_UNLOCK (monitor);
 
 done:
@@ -669,6 +681,7 @@
   /* Steal GThread reference from the monitor */
   thread = monitor->priv->start_thread;
   monitor->priv->start_thread = NULL;
+  g_cond_broadcast (&monitor->priv->started_cond);
   GST_OBJECT_UNLOCK (monitor);
 
   if (thread != NULL) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/gst/gstmacros.h 
new/gstreamer-1.28.3/gst/gstmacros.h
--- old/gstreamer-1.28.2/gst/gstmacros.h        2026-04-07 21:02:23.000000000 
+0200
+++ new/gstreamer-1.28.3/gst/gstmacros.h        2026-05-11 19:28:12.000000000 
+0200
@@ -41,17 +41,6 @@
 # undef GST_CAN_INLINE
 #endif
 
-/* MSVC defines 'restrict' as a keyword and not a define */
-#if (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) && 
!defined(restrict)
-#  if defined(__GNUC__) && __GNUC__ >= 4
-#    define restrict __restrict__
-#  elif defined(_MSC_VER)
-#    define restrict __restrict
-#  else
-#    define restrict
-#  endif
-#endif
-
 #if defined(G_DISABLE_CHECKS)
 #define GST_UNUSED_CHECKS G_GNUC_UNUSED
 #else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/gst/gstpad.c 
new/gstreamer-1.28.3/gst/gstpad.c
--- old/gstreamer-1.28.2/gst/gstpad.c   2026-04-07 21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/gst/gstpad.c   2026-05-11 19:28:12.000000000 +0200
@@ -5172,6 +5172,8 @@
     GST_CAT_LEVEL_LOG (GST_CAT_SCHEDULING,
         (ret >= GST_FLOW_EOS) ? GST_LEVEL_INFO : GST_LEVEL_WARNING,
         pad, "getrange failed, flow: %s", gst_flow_get_name (ret));
+    if (*buffer == NULL)
+      gst_clear_buffer (&res_buf);
     return ret;
   }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/gst/gststreams.c 
new/gstreamer-1.28.3/gst/gststreams.c
--- old/gstreamer-1.28.2/gst/gststreams.c       2026-04-07 21:02:23.000000000 
+0200
+++ new/gstreamer-1.28.3/gst/gststreams.c       2026-05-11 19:28:12.000000000 
+0200
@@ -575,7 +575,8 @@
         (GST_STREAM_TYPE_AUDIO        \
          | GST_STREAM_TYPE_VIDEO      \
          | GST_STREAM_TYPE_CONTAINER  \
-         | GST_STREAM_TYPE_TEXT)
+         | GST_STREAM_TYPE_TEXT       \
+         | GST_STREAM_TYPE_METADATA)
 
       if ((stype & (~_GST_STREAM_TYPE_ALL)) != 0)
         break;
@@ -591,7 +592,8 @@
       if ((stype & GST_STREAM_TYPE_METADATA) != 0)
         g_strlcat (str, "+metadata", sizeof (str));
 
-      g_assert (str[0] != '\0');
+      if (str[0] == '\0')
+        break;
 
       return g_intern_string (str + 1);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/gst/gstvalue.c 
new/gstreamer-1.28.3/gst/gstvalue.c
--- old/gstreamer-1.28.2/gst/gstvalue.c 2026-04-07 21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/gst/gstvalue.c 2026-05-11 19:28:12.000000000 +0200
@@ -3663,12 +3663,13 @@
   }
 map_failed:
   {
+    gst_buffer_unref (buffer);
     return FALSE;
   }
 wrong_char:
   {
-    gst_buffer_unref (buffer);
     gst_buffer_unmap (buffer, &info);
+    gst_buffer_unref (buffer);
     return FALSE;
   }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/gstreamer.doap 
new/gstreamer-1.28.3/gstreamer.doap
--- old/gstreamer-1.28.2/gstreamer.doap 2026-04-07 21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/gstreamer.doap 2026-05-11 19:28:12.000000000 +0200
@@ -40,6 +40,16 @@
 
  <release>
   <Version>
+   <revision>1.28.3</revision>
+   <branch>1.28</branch>
+   <name></name>
+   <created>2026-05-11</created>
+   <file-release 
rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.28.3.tar.xz";
 />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.28.2</revision>
    <branch>1.28</branch>
    <name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/libs/gst/base/gstaggregator.c 
new/gstreamer-1.28.3/libs/gst/base/gstaggregator.c
--- old/gstreamer-1.28.2/libs/gst/base/gstaggregator.c  2026-04-07 
21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/libs/gst/base/gstaggregator.c  2026-05-11 
19:28:12.000000000 +0200
@@ -4162,6 +4162,8 @@
 
 /**
  * gst_aggregator_update_segment:
+ * @self: A #GstAggregator
+ * @segment: The new #GstSegment
  *
  * Subclasses should use this to update the segment on their
  * source pad, instead of directly pushing new segment events
@@ -4192,6 +4194,7 @@
 
 /**
  * gst_aggregator_selected_samples:
+ * @self: A #GstAggregator
  * @pts: The presentation timestamp of the next output buffer
  * @dts: The decoding timestamp of the next output buffer
  * @duration: The duration of the next output buffer
@@ -4228,6 +4231,7 @@
 
 /**
  * gst_aggregator_set_ignore_inactive_pads:
+ * @self: A #GstAggregator
  * @ignore: whether inactive pads should not be waited on
  *
  * Subclasses should call this when they don't want to time out
@@ -4251,6 +4255,7 @@
 
 /**
  * gst_aggregator_get_ignore_inactive_pads:
+ * @self: A #GstAggregator
  *
  * Returns: whether inactive pads will not be waited on
  * Since: 1.20
@@ -4271,6 +4276,7 @@
 
 /**
  * gst_aggregator_get_force_live:
+ * @self: A #GstAggregator
  *
  * Subclasses may use the return value to inform whether they should return
  * %GST_FLOW_EOS from their aggregate implementation.
@@ -4287,6 +4293,8 @@
 
 /**
  * gst_aggregator_set_force_live:
+ * @self: A #GstAggregator
+ * @force_live: The new value
  *
  * Subclasses should call this at construction time in order for @self to
  * aggregate on a timeout even when no live source is connected.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/libs/gst/base/gstbaseparse.c 
new/gstreamer-1.28.3/libs/gst/base/gstbaseparse.c
--- old/gstreamer-1.28.2/libs/gst/base/gstbaseparse.c   2026-04-07 
21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/libs/gst/base/gstbaseparse.c   2026-05-11 
19:28:12.000000000 +0200
@@ -3250,6 +3250,7 @@
       parse->priv->detect_buffers_size = 0;
 
       if (ret != GST_FLOW_OK) {
+        gst_buffer_unref (buffer);
         return ret;
       }
 
@@ -3259,6 +3260,7 @@
 
       if (parse->priv->drain) {
         GST_DEBUG_OBJECT (parse, "Draining but did not detect format yet");
+        gst_buffer_unref (buffer);
         return GST_FLOW_ERROR;
       } else if (parse->priv->flushing) {
         g_list_foreach (parse->priv->detect_buffers, (GFunc) gst_buffer_unref,
@@ -3274,6 +3276,12 @@
       }
     } else {
       /* Something went wrong, subclass responsible for error reporting */
+      gst_buffer_unref (buffer);
+      g_list_foreach (parse->priv->detect_buffers, (GFunc) gst_buffer_unref,
+          NULL);
+      g_list_free (parse->priv->detect_buffers);
+      parse->priv->detect_buffers = NULL;
+      parse->priv->detect_buffers_size = 0;
       return ret;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/libs/gst/base/gstbitwriter.c 
new/gstreamer-1.28.3/libs/gst/base/gstbitwriter.c
--- old/gstreamer-1.28.2/libs/gst/base/gstbitwriter.c   2026-04-07 
21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/libs/gst/base/gstbitwriter.c   2026-05-11 
19:28:12.000000000 +0200
@@ -164,6 +164,8 @@
   bitwriter->bit_size = (initialized) ? size << 3 : 0;
   bitwriter->auto_grow = FALSE;
   bitwriter->owned = FALSE;
+  if (!initialized)
+    memset (data, 0, size);
 }
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/libs/gst/base/gstbitwriter.h 
new/gstreamer-1.28.3/libs/gst/base/gstbitwriter.h
--- old/gstreamer-1.28.2/libs/gst/base/gstbitwriter.h   2026-04-07 
21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/libs/gst/base/gstbitwriter.h   2026-05-11 
19:28:12.000000000 +0200
@@ -178,28 +178,29 @@
 ) \
 { \
     guint byte_pos, bit_offset; \
-    guint8  *cur_byte; \
+    guint8 *cur_byte, mask; \
     guint fill_bits; \
     \
     byte_pos = (bitwriter->bit_size >> 3); \
     bit_offset = (bitwriter->bit_size & 0x07); \
     cur_byte = bitwriter->data + byte_pos; \
     g_assert (nbits <= bits); \
-    g_assert( bit_offset < 8 && \
+    g_assert (bit_offset < 8 && \
             bitwriter->bit_size <= bitwriter->bit_capacity); \
     \
     while (nbits) { \
         fill_bits = ((8 - bit_offset) < nbits ? (8 - bit_offset) : nbits); \
         nbits -= fill_bits; \
         bitwriter->bit_size += fill_bits; \
+        mask = _gst_bit_writer_bit_filling_mask[fill_bits] << (8 - bit_offset 
- fill_bits); \
         \
-        *cur_byte |= (((value >> nbits) & 
_gst_bit_writer_bit_filling_mask[fill_bits]) \
-                      << (8 - bit_offset - fill_bits)); \
+        *cur_byte = ((*cur_byte) & (~mask)) | \
+                    (((value >> nbits) << (8 - bit_offset - fill_bits)) & 
mask); \
         ++cur_byte; \
         bit_offset = 0; \
     } \
-    g_assert(cur_byte <= \
-           (bitwriter->data + (bitwriter->bit_capacity >> 3))); \
+    g_assert (cur_byte <= \
+              (bitwriter->data + (bitwriter->bit_capacity >> 3))); \
 }
 
 __GST_BIT_WRITER_WRITE_BITS_UNCHECKED (8)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/libs/gst/check/gstcheck.c 
new/gstreamer-1.28.3/libs/gst/check/gstcheck.c
--- old/gstreamer-1.28.2/libs/gst/check/gstcheck.c      2026-04-07 
21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/libs/gst/check/gstcheck.c      2026-05-11 
19:28:12.000000000 +0200
@@ -1104,16 +1104,9 @@
   }
 }
 
-/**
- * gst_check_run_suite: (skip)
- * @suite: the check test suite
- * @name: name
- * @fname: file name
- *
- * Returns: number of failed tests
- */
-gint
-gst_check_run_suite (Suite * suite, const gchar * name, const gchar * fname)
+static gint
+gst_check_run_suite_full (Suite * suite, const gchar * name,
+    const gchar * fname, gboolean fork_allowed)
 {
   SRunner *sr;
   gchar *xmlfilename = NULL;
@@ -1121,6 +1114,8 @@
   GTimer *timer;
 
   sr = srunner_create (suite);
+  if (!fork_allowed)
+    srunner_set_fork_status (sr, CK_NOFORK);
 
   if (g_getenv ("GST_CHECK_XML")) {
     /* how lucky we are to have __FILE__ end in .c */
@@ -1141,6 +1136,39 @@
   return nf;
 }
 
+/**
+ * gst_check_run_suite: (skip)
+ * @suite: the check test suite
+ * @name: name
+ * @fname: file name
+ *
+ * Returns: number of failed tests
+ */
+gint
+gst_check_run_suite (Suite * suite, const gchar * name, const gchar * fname)
+{
+  return gst_check_run_suite_full (suite, name, fname, TRUE);
+}
+
+/**
+ * gst_check_run_suite_nofork: (skip)
+ * @suite: the check test suite
+ * @name: name
+ * @fname: file name
+ *
+ * Runs a given test suite with fork usage explicitly disabled.
+ *
+ * Returns: number of failed tests
+ *
+ * Since: 1.28.3
+ */
+gint
+gst_check_run_suite_nofork (Suite * suite, const gchar * name,
+    const gchar * fname)
+{
+  return gst_check_run_suite_full (suite, name, fname, FALSE);
+}
+
 static gboolean
 gst_check_have_checks_list (const gchar * env_var_name)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/libs/gst/check/gstcheck.h 
new/gstreamer-1.28.3/libs/gst/check/gstcheck.h
--- old/gstreamer-1.28.2/libs/gst/check/gstcheck.h      2026-04-07 
21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/libs/gst/check/gstcheck.h      2026-05-11 
19:28:12.000000000 +0200
@@ -191,6 +191,10 @@
     const gchar * fname);
 
 GST_CHECK_API
+gint gst_check_run_suite_nofork (Suite * suite, const gchar * name,
+    const gchar * fname);
+
+GST_CHECK_API
 void gst_check_setup_events (GstPad * srcpad, GstElement * element,
     GstCaps * caps, GstFormat format);
 
@@ -741,6 +745,22 @@
   return gst_check_run_suite (s, # name, __FILE__);             \
 }
 
+/**
+ * GST_CHECK_MAIN_NOFORK:
+ *
+ * Runs a given test suite with fork usage explicitly disabled.
+ *
+ * Since: 1.30
+ */
+#define GST_CHECK_MAIN_NOFORK(name)                             \
+int main (int argc, char **argv)                                \
+{                                                               \
+  Suite *s;                                                     \
+  gst_check_init (&argc, &argv);                                \
+  s = name ## _suite ();                                        \
+  return gst_check_run_suite_nofork (s, # name, __FILE__);      \
+}
+
 /* Hack to allow run-time selection of unit tests to run via the
  * GST_CHECKS environment variable (test function names globs, comma
  * separated), or GST_CHECKS_IGNORE with the same semantics */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/meson.build 
new/gstreamer-1.28.3/meson.build
--- old/gstreamer-1.28.2/meson.build    2026-04-07 21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/meson.build    2026-05-11 19:28:12.000000000 +0200
@@ -1,8 +1,9 @@
 project('gstreamer', 'c',
-  version : '1.28.2',
+  version : '1.28.3',
   meson_version : '>= 1.4',
   default_options : [ 'warning_level=1',
-                      'buildtype=debugoptimized' ])
+                      'buildtype=debugoptimized',
+                      'c_std=gnu11,c11' ])
 
 gst_version = meson.project_version()
 version_arr = gst_version.split('.')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gstreamer-1.28.2/plugins/elements/gsttypefindelement.c 
new/gstreamer-1.28.3/plugins/elements/gsttypefindelement.c
--- old/gstreamer-1.28.2/plugins/elements/gsttypefindelement.c  2026-04-07 
21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/plugins/elements/gsttypefindelement.c  2026-05-11 
19:28:12.000000000 +0200
@@ -1208,8 +1208,10 @@
 
     /* Pull 4k blocks and send downstream */
     ret = gst_pad_pull_range (typefind->sink, typefind->offset, 4096, &outbuf);
-    if (ret != GST_FLOW_OK)
+    if (ret != GST_FLOW_OK) {
+      gst_clear_buffer (&outbuf);
       goto pause;
+    }
 
     typefind->offset += gst_buffer_get_size (outbuf);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/tests/check/gst/gstdevice.c 
new/gstreamer-1.28.3/tests/check/gst/gstdevice.c
--- old/gstreamer-1.28.2/tests/check/gst/gstdevice.c    2026-04-07 
21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/tests/check/gst/gstdevice.c    2026-05-11 
19:28:12.000000000 +0200
@@ -286,6 +286,11 @@
     gst_device_provider_device_add (monitor, GST_DEVICE (iter->data));
   }
 
+  /* This device is only added after starting the monitor. If the monitor is 
not
+   * started yet, only devices from gst_test_device_provider_probe() are
+   * available. */
+  gst_device_provider_device_add (monitor, test_device_new ());
+
   /* Device references were floating, so were transferred in
    * gst_device_provider_device_add() */
   g_list_free (devices);
@@ -343,7 +348,7 @@
   ck_assert (gst_device_provider_start (dp));
 
   devs = gst_device_provider_get_devices (dp);
-  ck_assert_int_eq (g_list_length (devs), 1);
+  ck_assert_int_eq (g_list_length (devs), 2);
   g_list_free_full (devs, (GDestroyNotify) gst_object_unref);
 
   mydev = test_device_new ();
@@ -357,8 +362,8 @@
   devs = gst_device_provider_get_devices (dp);
   ASSERT_OBJECT_REFCOUNT (mydev, "dev", 3);
 
-  fail_unless_equals_int (g_list_length (devs), 2);
-  ck_assert_ptr_eq (devs->next->data, mydev);
+  fail_unless_equals_int (g_list_length (devs), 3);
+  ck_assert_ptr_eq (g_list_nth_data (devs, 2), mydev);
   g_list_free_full (devs, (GDestroyNotify) gst_object_unref);
 
   ASSERT_OBJECT_REFCOUNT (mydev, "dev", 2);
@@ -371,6 +376,11 @@
   msg = gst_bus_pop (bus);
   ck_assert_ptr_ne (msg, NULL);
   ck_assert (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_DEVICE_ADDED);
+  gst_message_unref (msg);
+
+  msg = gst_bus_pop (bus);
+  ck_assert_ptr_ne (msg, NULL);
+  ck_assert (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_DEVICE_ADDED);
 
   gst_message_parse_device_added (msg, &dev);
   ck_assert_ptr_eq (dev, mydev);
@@ -384,7 +394,7 @@
 
   gst_device_provider_device_remove (dp, mydev);
   devs = gst_device_provider_get_devices (dp);
-  ck_assert_int_eq (g_list_length (devs), 1);
+  ck_assert_int_eq (g_list_length (devs), 2);
   g_list_free_full (devs, (GDestroyNotify) gst_object_unref);
 
   msg = gst_bus_pop (bus);
@@ -472,7 +482,7 @@
   ck_assert (gst_device_monitor_start (mon));
 
   devs = gst_device_monitor_get_devices (mon);
-  ck_assert_int_eq (g_list_length (devs), 2);
+  ck_assert_int_eq (g_list_length (devs), 3);
   ck_assert (GST_IS_DEVICE (devs->data));
   g_list_free_full (devs, (GDestroyNotify) gst_object_unref);
 
@@ -494,6 +504,11 @@
 
   msg = gst_bus_timed_pop (bus, GST_CLOCK_TIME_NONE);
   ck_assert_ptr_ne (msg, NULL);
+  ck_assert_int_eq (GST_MESSAGE_TYPE (msg), GST_MESSAGE_DEVICE_ADDED);
+  gst_message_unref (msg);
+
+  msg = gst_bus_timed_pop (bus, GST_CLOCK_TIME_NONE);
+  ck_assert_ptr_ne (msg, NULL);
   ck_assert_int_eq (GST_MESSAGE_TYPE (msg), GST_MESSAGE_DEVICE_ADDED);
   gst_message_unref (msg);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/tests/check/libs/bitwriter.c 
new/gstreamer-1.28.3/tests/check/libs/bitwriter.c
--- old/gstreamer-1.28.2/tests/check/libs/bitwriter.c   2026-04-07 
21:02:23.000000000 +0200
+++ new/gstreamer-1.28.3/tests/check/libs/bitwriter.c   2026-05-11 
19:28:12.000000000 +0200
@@ -105,6 +105,45 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_overwrite_data)
+{
+  GstBitWriter writer;
+  GstBitReader reader;
+  guint8 val_uint8 = 0;
+  guint16 val_uint16 = 0;
+  guint32 val_uint32 = 0;
+  guint64 val_uint64 = 0;
+  guint8 wdata[8] = { 0x00, 0xf1, 0xfe, 0xef, 0x11, 0x22, 0xae, 0xea };
+
+  gst_bit_writer_init_with_data (&writer, wdata, sizeof (wdata), TRUE);
+  gst_bit_writer_set_pos (&writer, 0);
+  fail_unless_equals_int (gst_bit_writer_get_remaining (&writer), 64);
+
+  fail_unless (gst_bit_writer_put_bits_uint8 (&writer, 0x3f, 6));
+  fail_unless (gst_bit_writer_put_bits_uint8 (&writer, 0x3, 2));
+  fail_unless (gst_bit_writer_put_bits_uint16 (&writer, 0x15, 5));
+  fail_unless (gst_bit_writer_put_bits_uint32 (&writer, 0x31, 10));
+  fail_unless (gst_bit_writer_put_bits_uint64 (&writer, 0x45, 41));
+  fail_unless (gst_bit_writer_align_bytes (&writer, 0));
+
+  gst_bit_reader_init (&reader, gst_bit_writer_get_data (&writer), 8);
+  fail_unless_equals_int (gst_bit_reader_get_size (&reader), 8 * 8);
+  fail_unless (gst_bit_reader_get_bits_uint8 (&reader, &val_uint8, 6));
+  fail_unless_equals_int (val_uint8, 0x3f);
+  fail_unless (gst_bit_reader_get_bits_uint8 (&reader, &val_uint8, 2));
+  fail_unless_equals_int (val_uint8, 0x3);
+  fail_unless (gst_bit_reader_get_bits_uint16 (&reader, &val_uint16, 5));
+  fail_unless_equals_int_hex (val_uint16, 0x15);
+  fail_unless (gst_bit_reader_get_bits_uint32 (&reader, &val_uint32, 10));
+  fail_unless_equals_int_hex (val_uint32, 0x31);
+  fail_unless (gst_bit_reader_get_bits_uint64 (&reader, &val_uint64, 41));
+  fail_unless_equals_int_hex (val_uint64, 0x45);
+
+  gst_bit_writer_reset (&writer);
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_reset)
 {
   GstBitWriter writer, *writer2;
@@ -221,6 +260,7 @@
 
   tcase_add_test (tc_chain, test_initialization);
   tcase_add_test (tc_chain, test_data);
+  tcase_add_test (tc_chain, test_overwrite_data);
   tcase_add_test (tc_chain, test_reset);
   tcase_add_test (tc_chain, test_reset_data_unaligned);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.28.2/tools/gst-inspect.c 
new/gstreamer-1.28.3/tools/gst-inspect.c
--- old/gstreamer-1.28.2/tools/gst-inspect.c    2026-04-07 21:02:23.000000000 
+0200
+++ new/gstreamer-1.28.3/tools/gst-inspect.c    2026-05-11 19:28:12.000000000 
+0200
@@ -194,7 +194,14 @@
 static gboolean
 print_field (const GstIdStr * fieldname, const GValue * value, gpointer pfx)
 {
-  const gchar *type_name = g_type_name (G_VALUE_TYPE (value));
+  const gchar *type_name;
+
+  // gchararray -> string for caps fields
+  if (G_VALUE_HOLDS (value, G_TYPE_STRING)) {
+    type_name = "string";
+  } else {
+    type_name = g_type_name (G_VALUE_TYPE (value));
+  }
 
   if (G_VALUE_HOLDS (value, GST_TYPE_UNIQUE_LIST)
       && gst_value_unique_list_get_size (value) > 0) {

++++++ gstreamer.obsinfo ++++++
--- /var/tmp/diff_new_pack.UmniVP/_old  2026-05-13 17:18:46.597896714 +0200
+++ /var/tmp/diff_new_pack.UmniVP/_new  2026-05-13 17:18:46.609897216 +0200
@@ -1,5 +1,5 @@
 name: gstreamer
-version: 1.28.2
-mtime: 1775588543
-commit: 43421c2a5b8ac5cceb52b11749df40301e1de5c0
+version: 1.28.3
+mtime: 1778520492
+commit: 62d8936e70b11a2e21ea3c68b7672b675e142945
 

Reply via email to