New Upstream Release - gst-plugins-base1.0

Ready changes

Summary

Merged new upstream version: 1.22.9 (was: 1.22.8).

Diff

diff --git a/ChangeLog b/ChangeLog
index 04353e48..2d0e2d71 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,76 @@
+=== release 1.22.9 ===
+
+2024-01-24 18:21:13 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* NEWS:
+	* RELEASE:
+	* gst-plugins-base.doap:
+	* meson.build:
+	  Release 1.22.9
+
+2023-12-14 12:31:01 +0100  Michael Tretter <m.tretter@pengutronix.de>
+
+	* gst/videorate/gstvideorate.c:
+	  videorate: keep pool if max_buffers is unlimited
+	  The value 0 for max_buffers means unlimited. If the max_buffers are unlimited,
+	  the videorate element shouldn't throw away the bufferpool, but just increase the
+	  min_buffers value.
+	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5957>
+
+2023-08-12 10:43:14 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst-libs/gst/audio/gstaudiobasesink.c:
+	  audiobasesink: Don't wait on gap events
+	  Don't call wait_event() at all for gap events, as basesink will
+	  end up waiting for the time that the gap event would be rendered
+	  out at the audio device. There's no need to render it at all,
+	  just treat it as a handy point to resync the audio if needed,
+	  let the ringbuffer render silence, and place the next buffer
+	  into the ringbuffer where it belongs.
+	  The only thing we really need to do is make sure the ringbuffer
+	  and clock are running, and wait for preroll.
+	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2749
+	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5953>
+
+2024-01-18 20:32:44 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/gl/gstglcolorconvert.c:
+	  glcolorconvert: Correct transform_caps direction
+	  If GST_PAD_SINK is passed in this means that we're supposed to convert
+	  from sink caps to src caps, not the other way around. In other words, if
+	  GST_PAD_SINK is passed we're supposed to produce the possible output
+	  caps.
+	  Previously this was inverted. This had the effect that glcolorconvert
+	  pretended to be able to convert *to* I420 without glDrawBuffers, which is
+	  not possible, and pretended not to be able to convert *from* I420
+	  without glDrawBuffers, which it always supports.
+	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5947>
+
+2023-12-19 12:01:30 -0500  Damian Hobson-Garcia <damian@hobsong.com>
+
+	* ext/gl/gstgloverlay.c:
+	  gloverlay: Apply updated overlay coordinates correctly
+	  When overlay coordinates are updated, after the initial coordinates
+	  are set, the shader indices are applied to the wrong buffer, resulting
+	  in the background image appearing where the overlay should.
+	  Bind the array buffer before applying subsequent coordinate
+	  updates.
+	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5909>
+
+2023-12-18 10:28:18 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: change gst_audio_convert_get_unit_size() log levels
+	  INFO is a bit high for such technical details and best to use WARNING
+	  when it fails.
+	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5832>
+
+2023-12-18 13:52:12 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* meson.build:
+	  Back to development
+	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5826>
+
 === release 1.22.8 ===
 
 2023-12-18 12:09:37 +0000  Tim-Philipp Müller <tim@centricular.com>
diff --git a/NEWS b/NEWS
index d561a390..7b31da80 100644
--- a/NEWS
+++ b/NEWS
@@ -2736,6 +2736,131 @@ List of merge requests and issues fixed in 1.22.8
 -   List of Merge Requests applied in 1.22.8
 -   List of Issues fixed in 1.22.8
 
+1.22.9
+
+The ninth 1.22 bug-fix release (1.22.9) was released on 24 January 2024.
+
+This release only contains bugfixes and security fixes and it should be
+safe to update from 1.22.x.
+
+Highlighted bugfixes in 1.22.9
+
+-   More Security fixes for the AV1 video codec parser
+-   va: fixes for Mesa Gallium drivers in Mesa versions older than v23.2
+-   v4l2src: Consider framerate during caps selection
+-   v4l2codec: decoder fixes
+-   rtspsrc: multicast fixes
+-   camerabin viewfinder fixes
+-   various bug fixes, build fixes, memory leak fixes, and other
+    stability and reliability improvements
+
+gstreamer
+
+-   aggregator: fix use-after-free in queries processing
+-   multiqueue: Ignore queue fullness for most events
+
+gst-plugins-base
+
+-   audiobasesink: Don’t wait on gap events
+-   audioconvert: change gst_audio_convert_get_unit_size() log levels
+-   glcolorconvert: Correct transform_caps direction
+-   gloverlay: Apply updated overlay coordinates correctly
+-   videorate: keep pool if max_buffers is unlimited
+
+gst-plugins-good
+
+-   rtpsession: Only warn once if configured latency needs to be known
+    but isn’t yet
+-   rtphdrext-clientaudiolevel: Fix level value being written by the
+    extension
+-   rtspsrc: set multicast-iface on udpsinks and fix RTCP sink TTL
+-   v4l2object: clear old fds when initializing poll during opening v4l2
+    device
+-   v4l2src: Consider framerate during caps selection
+-   vpxdec: Use appropriate domain and code for decoding errors
+
+gst-plugins-bad
+
+-   av1parser: Fix potential stack overflow during tile list parsing
+-   camerabin: Correctly relink viewfinderbin_queue
+-   GstPlay: Fix error details parsing
+-   h264decoder: Handle malformed avc/avc3 packets
+-   h264decoder: h265decoder: Align with wraparound fix
+-   vp8decoder: vp9decoder: av1decoder: mpeg2decoder: Fix multiplication
+    wraparound
+-   vah264enc/vah264dec issues after recent upgrade to 1.22.8 from
+    1.22.7
+-   va: fixes for Mesa Gallium drivers in Mesa versions older than v23.2
+-   vp9parse: Fix critical warning during caps negotiation
+
+gst-plugins-ugly
+
+-   No changes
+
+gst-plugins-rs
+
+-   No changes
+
+gst-libav
+
+-   No changes
+
+gst-rtsp-server
+
+-   No changes
+
+gstreamer-vaapi
+
+-   No changes
+
+gstreamer-sharp
+
+-   No changes
+
+gst-omx
+
+-   No changes
+
+gst-python
+
+-   No changes
+
+gst-editing-services
+
+-   No changes
+
+gst-validate + gst-integration-testsuites
+
+-   No changes
+
+gst-examples
+
+-   No changes
+
+Development build environment
+
+-   No changes
+
+Cerbero build tool and packaging changes in 1.22.9
+
+-   No changes
+
+Contributors to 1.22.9
+
+Alexander Slobodeniuk, Chao Guo, Damian Hobson-Garcia, Dan Searles,
+Guillaume Desmottes, Jan Schmidt, Marek Vasut, Mengkejiergeli Ba,
+Michael Tretter, Philippe Normand, Robert Mader, Sanchayan Maity,
+Sebastian Dröge, Seungha Yang, Tim-Philipp Müller, Víctor Manuel Jáquez
+Leal, Xavier Claessens,
+
+… and many others who have contributed bug reports, translations, sent
+suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.22.9
+
+-   List of Merge Requests applied in 1.22.9
+-   List of Issues fixed in 1.22.9
+
 Schedule for 1.24
 
 Our next major feature release will be 1.24, and 1.23 will be the
@@ -2743,7 +2868,7 @@ unstable development version leading up to the stable 1.24 release. The
 development of 1.23/1.24 will happen in the git main branch of the
 GStreamer mono repository.
 
-The plan for the 1.24 development cycle is yet to be confirmed.
+The target for an initial 1.24 release is February 2024.
 
 1.24 will be backwards-compatible to the stable 1.22, 1.20, 1.18, 1.16,
 1.14, 1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
diff --git a/RELEASE b/RELEASE
index ed965548..5f62c444 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-base 1.22.8.
+This is GStreamer gst-plugins-base 1.22.9.
 
 The GStreamer team is thrilled to announce a new major feature release
 of your favourite cross-platform multimedia framework!
diff --git a/debian/changelog b/debian/changelog
index 8eff0c6c..ad28bc5d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+gst-plugins-base1.0 (1.22.9-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Mon, 29 Jan 2024 07:07:08 -0000
+
 gst-plugins-base1.0 (1.22.8-1) unstable; urgency=medium
 
   * Team upload.
diff --git a/ext/gl/gstgloverlay.c b/ext/gl/gstgloverlay.c
index 7fcd8e73..9336791d 100644
--- a/ext/gl/gstgloverlay.c
+++ b/ext/gl/gstgloverlay.c
@@ -497,6 +497,8 @@ gst_gl_overlay_callback (GstGLFilter * filter, GstGLMemory * in_tex,
     gl->BindVertexArray (overlay->overlay_vao);
   }
 
+  _bind_buffer (overlay, overlay->overlay_vbo);
+
   if (overlay->geometry_change) {
     gint render_width, render_height;
     gfloat x, y, image_width, image_height;
@@ -536,8 +538,6 @@ gst_gl_overlay_callback (GstGLFilter * filter, GstGLMemory * in_tex,
         GL_STATIC_DRAW);
   }
 
-  _bind_buffer (overlay, overlay->overlay_vbo);
-
   gl->BindTexture (GL_TEXTURE_2D, image_tex);
   gst_gl_shader_set_uniform_1f (overlay->shader, "alpha", overlay->alpha);
 
diff --git a/gst-libs/gst/audio/gstaudiobasesink.c b/gst-libs/gst/audio/gstaudiobasesink.c
index 891941d1..1f843acf 100644
--- a/gst-libs/gst/audio/gstaudiobasesink.c
+++ b/gst-libs/gst/audio/gstaudiobasesink.c
@@ -1124,6 +1124,15 @@ gst_audio_base_sink_wait_event (GstBaseSink * bsink, GstEvent * event)
       /* Make sure the ringbuffer will start again if interrupted during event_wait() */
       g_atomic_int_set (&sink->eos_rendering, 1);
       clear_force_start_flag = TRUE;
+
+      /* For gap events, don't actually wait for the clock to
+       * reach that time, or it will drain the ringbuffer, just
+       * ensure we're prerolled and let the next actual buffer
+       * get rendered where it belongs */
+      if (GST_EVENT_TYPE (event) == GST_EVENT_GAP) {
+        ret = gst_base_sink_do_preroll (bsink, GST_MINI_OBJECT_CAST (event));
+        goto done;
+      }
       break;
     default:
       break;
diff --git a/gst-libs/gst/gl/gstglcolorconvert.c b/gst-libs/gst/gl/gstglcolorconvert.c
index 6ccfb143..1851dbe6 100644
--- a/gst-libs/gst/gl/gstglcolorconvert.c
+++ b/gst-libs/gst/gl/gstglcolorconvert.c
@@ -1255,7 +1255,7 @@ gst_gl_color_convert_transform_caps (GstGLContext * context,
     GstPadDirection direction, GstCaps * caps, GstCaps * filter)
 {
   caps = gst_gl_color_convert_caps_transform_format_info (context,
-      direction == GST_PAD_SRC, caps);
+      direction == GST_PAD_SINK, caps);
 
   if (filter) {
     GstCaps *tmp;
diff --git a/gst-plugins-base.doap b/gst-plugins-base.doap
index 8e9e9607..ccd83a8b 100644
--- a/gst-plugins-base.doap
+++ b/gst-plugins-base.doap
@@ -34,6 +34,16 @@ A wide range of video and audio decoders, encoders, and filters are included.
    </GitRepository>
  </repository>
 
+ <release>
+  <Version>
+   <revision>1.22.9</revision>
+   <branch>1.22</branch>
+   <name></name>
+   <created>2024-01-24</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.22.9.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.22.8</revision>
diff --git a/gst/audioconvert/gstaudioconvert.c b/gst/audioconvert/gstaudioconvert.c
index 474dcaea..43f07f54 100644
--- a/gst/audioconvert/gstaudioconvert.c
+++ b/gst/audioconvert/gstaudioconvert.c
@@ -310,13 +310,13 @@ gst_audio_convert_get_unit_size (GstBaseTransform * base, GstCaps * caps,
     goto parse_error;
 
   *size = info.bpf;
-  GST_INFO_OBJECT (base, "unit_size = %" G_GSIZE_FORMAT, *size);
+  GST_DEBUG_OBJECT (base, "unit_size = %" G_GSIZE_FORMAT, *size);
 
   return TRUE;
 
 parse_error:
   {
-    GST_INFO_OBJECT (base, "failed to parse caps to get unit_size");
+    GST_WARNING_OBJECT (base, "failed to parse caps to get unit_size");
     return FALSE;
   }
 }
diff --git a/gst/videorate/gstvideorate.c b/gst/videorate/gstvideorate.c
index 4a097306..4e42775d 100644
--- a/gst/videorate/gstvideorate.c
+++ b/gst/videorate/gstvideorate.c
@@ -1372,7 +1372,7 @@ gst_video_rate_propose_allocation (GstBaseTransform * trans,
 
       gst_query_parse_nth_allocation_pool (query, i, &pool, &size, &min, &max);
 
-      if (min == max) {
+      if (max != 0 && min == max) {
         if (pool)
           gst_object_unref (pool);
         gst_query_remove_nth_allocation_pool (query, i);
diff --git a/meson.build b/meson.build
index 64589409..150d6d60 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
 project('gst-plugins-base', 'c',
-  version : '1.22.8',
+  version : '1.22.9',
   meson_version : '>= 0.62',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
diff --git a/po/gst-plugins-base-1.0.pot b/po/gst-plugins-base-1.0.pot
index fe7b5404..c73df5da 100644
--- a/po/gst-plugins-base-1.0.pot
+++ b/po/gst-plugins-base-1.0.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-1.22.8\n"
+"Project-Id-Version: gst-plugins-base-1.22.9\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-18 12:11+0000\n"
+"POT-Creation-Date: 2024-01-24 18:22+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/po/gst-plugins-base.pot b/po/gst-plugins-base.pot
index fe7b5404..c73df5da 100644
--- a/po/gst-plugins-base.pot
+++ b/po/gst-plugins-base.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-1.22.8\n"
+"Project-Id-Version: gst-plugins-base-1.22.9\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-12-18 12:11+0000\n"
+"POT-Creation-Date: 2024-01-24 18:22+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"

More details

Full run details

Historical runs