Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gstreamer-plugins-base for
openSUSE:Factory checked in at 2022-06-24 08:44:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-base (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-base.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-base"
Fri Jun 24 08:44:46 2022 rev:86 rq:984565 version:1.20.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/gstreamer-plugins-base/gstreamer-plugins-base.changes
2022-05-14 22:52:26.407011742 +0200
+++
/work/SRC/openSUSE:Factory/.gstreamer-plugins-base.new.1548/gstreamer-plugins-base.changes
2022-06-24 08:44:49.463106503 +0200
@@ -1,0 +2,17 @@
+Wed Jun 22 10:24:56 UTC 2022 - Aaron Stern <[email protected]>
+
+- Update to version 1.20.3:
+ + typefindfunctions: Fix WebVTT format detection for very short
+ files
+ + gldisplay: Reorder GST_GL_WINDOW check for egl-device
+ + rtpbasepayload: Copy all buffer metadata instead of just
+ GstMetas for the input meta buffer
+ + codec-utils: Avoid out-of-bounds error
+ + navigation: Fix Since markers for mouse scroll events
+ + videoaggregator: Fix for unhandled negative rate
+ + videoaggregator: Use floor() to calculate current position
+ + video-color: Fix for missing clipping in PQ EOTF function
+ + gst-play-1.0: Fix trick-mode handling in keyboard shortcut
+ + audiovisualizer: shader: Fix out of bound write
+
+-------------------------------------------------------------------
Old:
----
gst-plugins-base-1.20.2.tar.xz
New:
----
gst-plugins-base-1.20.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-base.spec ++++++
--- /var/tmp/diff_new_pack.271sSO/_old 2022-06-24 08:44:49.983107086 +0200
+++ /var/tmp/diff_new_pack.271sSO/_new 2022-06-24 08:44:49.987107090 +0200
@@ -20,7 +20,7 @@
%define gst_branch 1.0
%define gstreamer_req_version %(echo %{version} | sed -e "s/+.*//")
Name: gstreamer-plugins-base
-Version: 1.20.2
+Version: 1.20.3
Release: 0
Summary: GStreamer Streaming-Media Framework Plug-Ins
License: GPL-2.0-or-later AND LGPL-2.1-or-later
++++++ gst-plugins-base-1.20.2.tar.xz -> gst-plugins-base-1.20.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/ChangeLog
new/gst-plugins-base-1.20.3/ChangeLog
--- old/gst-plugins-base-1.20.2/ChangeLog 2022-05-03 00:29:29.000000000
+0200
+++ new/gst-plugins-base-1.20.3/ChangeLog 2022-06-16 00:36:22.000000000
+0200
@@ -1,7 +1,206 @@
+=== release 1.20.3 ===
+
+2022-06-15 23:36:18 +0100 Tim-Philipp M??ller <[email protected]>
+
+ * NEWS:
+ * RELEASE:
+ * gst-plugins-base.doap:
+ * meson.build:
+ Release 1.20.3
+
+2022-06-15 23:36:10 +0100 Tim-Philipp M??ller <[email protected]>
+
+ * ChangeLog:
+ Update ChangeLogs for 1.20.3
+
+2022-05-25 02:10:30 +0900 Seungha Yang <[email protected]>
+
+ * gst/playback/gstplaybin3.c:
+ playbin3: Configure combiner on pad-added if needed
+ When collection is updated, decodebin3 exposes pad first and then
+ streams-selected message is posted.
+ The condition can cause a situation where playbin3 links non-existing
+ combiner/playsink pads (since streams-selected is not posted yet) with
+ new decodebin output pad. This commit will re-check selected/active
+ streams condition on pad-added and reconfigure output if needed.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2495>
+
+2022-05-23 21:24:40 -0400 Eli Schwartz <[email protected]>
+
+ * gst-libs/gst/tag/meson.build:
+ meson: use better zlib dependency fallback
+ zlib is required, and if it isn't found it is checked several ways and
+ then forced via subproject(). This code was added in commit
+ b93e37592a3ccc0eaece1c8fef2d362b1e5fe685, to account for systems where
+ zlib doesn't have pkg-config files installed.
+ But Meson already does dependency fallback, and also, since 0.54.0,
does
+ the in-between checks for find_library('z') and has_header('zlib.h')
via
+ the "system" type dependency. Simplify dependency lookup by marking it
+ as required, which also makes sure that the console log doesn't
+ confusingly list "not found".
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2486>
+
+2022-04-26 09:29:39 +0200 Edward Hervey <[email protected]>
+
+ * ext/ogg/gstoggstream.c:
+ oggdemux: Protect against invalid framerates
+ This check wasn't done for all mappings.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2455>
+
+2022-05-15 16:53:12 +0000 Thibault Saunier <[email protected]>
+
+ * gst-libs/gst/rtp/gstrtcpbuffer.c:
+ * gst-libs/gst/rtp/gstrtcpbuffer.h:
+ * tests/check/libs/rtp.c:
+ rtcpbuffer: Allow padding on first reduced size packets
+ It is valid to have the padding set to 1 on the first packet and it
+ happens very often from TWCC packets coming from libwebrtc. This means
+ that we were totally ignoring many TWCC packets.
+ Fix test that checked that a first packet with padding was not valid
and
+ instead test a single twcc packet with padding to check precisely what
+ this patch was about.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2447>
+
+2022-05-13 13:31:55 +0200 Alicia Boya Garc??a <[email protected]>
+
+ * gst-libs/gst/app/gstappsink.c:
+ * tests/check/elements/appsink.c:
+ appsink: Fix race condition on caps handling
+ Background:
+ Whenever a caps event is received by appsink, the caps are stored in
the
+ same internal queue as buffers. Only when enough buffers have been
+ popped from the queue to reach the caps, `priv->sample` gets its caps
+ updated to match, so that they are correct for the following buffers.
+ Note that as far as upstream elements are concerned, the caps of
appsink
+ are updated immediately when the CAPS event is sent. Samples pulled
from
+ appsink retain the old caps until a later buffer -- one that was sent
by
+ upstream elements after the new caps -- is pulled.
+ The race condition:
+ When a flush is received, appsink clears the entire internal queue.
The
+ caps of `priv->sample` are not updated as part of this process, and
+ instead remain as those of the sample that was last pulled by the
user.
+ This leaves open a race condition where:
+ 1. Upstream sends a new caps event, and possibly some buffers for the
+ new caps.
+ 2. Upstream sends a flush (possibly from a different thread).
+ 3. Upstream sends a new buffer for the new caps. Since as far as
+ upstream is concerned, appsink caps are the new caps already, no new
+ CAPS event is sent.
+ 4. The appsink user pulls a sample, having not pulled before enough
+ samples to reach the buffers sent in step 1.
+ Bug: the pulled sample has the old caps instead of the new caps.
+ Fixing the race condition:
+ To avoid this problem, when a buffer is received after a flush,
+ `priv->sample`'s caps should be updated with the current caps before
the
+ buffer is added to the internal queue.
+ Interestingly, before this patch, appsink already had code for this,
in
+ gst_app_sink_render_common():
+ /* queue holding caps event might have been FLUSHed,
+ * but caps state still present in pad caps */
+ if (G_UNLIKELY (!priv->last_caps &&
+ gst_pad_has_current_caps (GST_BASE_SINK_PAD (psink)))) {
+ priv->last_caps = gst_pad_get_current_caps (GST_BASE_SINK_PAD
(psink));
+ gst_sample_set_caps (priv->sample, priv->last_caps);
+ GST_DEBUG_OBJECT (appsink, "activating pad caps %" GST_PTR_FORMAT,
+ priv->last_caps);
+ }
+ This code assumes `priv->last_caps` is reset when a flush is received,
+ which makes sense, but unfortunately, there was no code in the flush
+ code path resetting it.
+ This patch adds such code, therefore fixing the race condition. A unit
+ test demonstrating the bug and testing its behavior with the fix has
+ also been added.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2442>
+
+2022-05-16 12:34:36 -0400 U. Artie Eoff <[email protected]>
+
+ * gst-libs/gst/video/gstvideoaggregator.c:
+ videoaggregator: unref temporary caps
+ The "possible_caps" needs unref after finished using to
+ avoid memory leak.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2440>
+
+2022-03-29 17:51:13 +0200 St??phane Cerveau <[email protected]>
+
+ * gst-libs/gst/gl/meson.build:
+ * tests/check/libs/gstglmatrix.c:
+ * tests/check/meson.build:
+ base:gl: add x11 deps to gstglx11_dep
+ On MacOS with homebrew the xlib-xcb.h is in
+ own cellar /opt/homebrew/Cellar/libx11/1.7.3.1/include
+ Need to add the windowing dependencies to gl tests
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2426>
+
+2022-05-05 02:54:37 +0900 Seungha Yang <[email protected]>
+
+ * tools/gst-play.c:
+ tools: gst-play: Print position even if duration is unknown
+ Gives better visual feedback regarding position information
+ although duration is unknown, live streams for example.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2419>
+
+2022-05-07 04:43:49 +0900 Seungha Yang <[email protected]>
+
+ * tools/gst-device-monitor.c:
+ tools: device-monitor: Print string property as-is without serialize
+ gst_value_serialize() does more than what's needed to printf-ing
+ especially when given GValue is already string. Just print string
+ value as-is without gst_value_serialize() to avoid unreadable
+ string print, especially for multi-bytes character encoding cases.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2416>
+
+2022-05-03 16:25:19 +0200 Edward Hervey <[email protected]>
+
+ * gst/playback/gstparsebin.c:
+ parsebin: Don't modify inexistant GstStream
+ When handling exposing un-handled streams, we can only replace the
GstStream for
+ those we are creating ourselves (i.e. the fallback collection).
+ Fixes assertions when the demuxer creates those streams
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2368>
+
+2022-05-03 16:08:39 +0200 Edward Hervey <[email protected]>
+
+ * gst/playback/gstdecodebin3.c:
+ playbin3: Don't use unknown types for default selection
+ When creating a fallback default selection from a collection, don't
attempt to
+ use unknown stream types
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2368>
+
+2022-05-03 13:37:31 +0300 Sebastian Dr??ge <[email protected]>
+
+ * gst/audioconvert/gstaudioconvert.c:
+ audioconvert: If no channel-mask can be fixated then use a NONE
channel layout
+ Otherwise this is generating caps without a channel-mask, which is
+ invalid for >1 channels and will always fail negotiation.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2359>
+
+2022-03-07 08:46:57 -0500 Xavier Claessens <[email protected]>
+
+ * gst-libs/gst/gl/meson.build:
+ Meson: Fix deprecation warnings
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2358>
+
+2021-11-12 20:13:10 +0100 Ruben Gonzalez <[email protected]>
+
+ * docs/plugins/gst_plugins_cache.json:
+ gst_plugin_load_file: force plugin reload if diff filename
+ If a file includes a new version of a plugin that exits in the
+ registry, the output of gst-inspect is incorrect. The output has the
+ correct version but incorrect filename, and element description.
+ This seems to have also fixed some documentation issues.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2357>
+
+2022-05-03 00:39:09 +0100 Tim-Philipp M??ller <[email protected]>
+
+ * meson.build:
+ Back to development
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2347>
+
=== release 1.20.2 ===
2022-05-02 23:29:25 +0100 Tim-Philipp M??ller <[email protected]>
+ * ChangeLog:
* NEWS:
* RELEASE:
* gst-plugins-base.doap:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/NEWS
new/gst-plugins-base-1.20.3/NEWS
--- old/gst-plugins-base-1.20.2/NEWS 2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/NEWS 2022-06-16 00:36:22.000000000 +0200
@@ -2,13 +2,13 @@
GStreamer 1.20.0 was originally released on 3 February 2022.
-The latest bug-fix release in the 1.20 series is 1.20.2 and was released
-on 2 May 2022.
+The latest bug-fix release in the 1.20 series is 1.20.3 and was released
+on 15 June 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
-Last updated: Monday 2 May 2022, 0:30 UTC (log)
+Last updated: Monday 15 June 2022, 17:00 UTC (log)
Introduction
@@ -2291,6 +2291,218 @@
- List of Merge Requests applied in 1.20.2
- List of Issues fixed in 1.20.2
+1.20.3
+
+The third 1.20 bug-fix release (1.20.3) was released on 15 June 2022.
+
+This release only contains bugfixes and it should be safe to upgrade
+from 1.20.x.
+
+Highlighted bugfixes in 1.20.3
+
+- Security fixes in Matroska, MP4 and AVI demuxers
+- Fix scrambled video playback with hardware-accelerated VA-API
+ decoders on certain Intel hardware
+- playbin3/decodebin3 regression fix for unhandled streams
+- Fragmented MP4 playback fixes
+- Android H.265 encoder mapping
+- Playback of MXF files produced by FFmpeg before March 2022
+- Fix rtmp2sink crashes on 32-bit platforms
+- WebRTC improvements
+- D3D11 video decoder and screen recorder fixes
+- Performance improvements
+- Support for building against OpenCV 4.6 and other build fixes
+- Miscellaneous bug fixes, memory leak fixes, and other stability and
+ reliability improvements
+
+gstreamer
+
+- clock: Avoid creating a weakref with every entry (performance
+ improvement)
+- plugin: add Apache 2 license to list of known licenses to avoid
+ warning
+- gst_plugin_load_file: force plugin reload if filename differs
+- Add support for LoongArch
+
+Base Libraries
+
+- aggregator: Only send events up to CAPS event from
+ gst_aggregator_set_src_caps(), don???t send multiple caps events with
+ the same caps and fix negotiation in muxers
+- basetransform: handle gst_base_transform_query_caps() returning NULL
+- basetransform: fix critical if transform_caps() returned NULL
+- queuearray: Fix potential heap overflow when expanding GstQueueArray
+
+Core Elements
+
+- multiqueue: fix potential crash on shutdown
+- multiqueue: fix warning: ???is_query??? may be used uninitialized in
+ this function
+- multiqueue: SegFault during flushing with gcc11
+
+gst-plugins-base
+
+- audioconvert: If no channel-mask can be fixated then use a NONE
+ channel layout
+- playbin3: Configure combiner on pad-added if needed
+- parsebin: Fix assertions/regression when dealing with un-handled
+ streams (fixes regression in 1.20.2)
+- appsink: Fix race condition on caps handling
+- oggdemux: Protect against invalid framerates
+- rtcpbuffer: Allow padding on first reduced size packets
+- gl: check for xlib-xcb.h header to fix build of tests on macOS with
+ homebrew
+- videoaggregator: unref temporary caps
+- v4l2videoenc: Setup crop rectangle if needed
+
+Tools
+
+- gst-play-1.0: Print position even if duration is unknown
+- gst-device-monitor-1.0: Print string property as-is without
+ additional escaping
+
+gst-plugins-good
+
+- aacparse: Avoid mismatch between src_caps and output_header_type
+- avidemux: Fix integer overflow resulting in heap corruption in DIB
+ buffer inversion code (Security fix)
+- deinterlace: Clean up error handling code
+- flvdemux: Actually make use of the debug category
+- gtkglsink: Fix double-free when OpenGL can???t be initialised
+- jack: Add support for detecting libjack on Windows
+- matroskademux: Avoid integer-overflow resulting in heap corruption
+ in WavPack header handling code (Security fix)
+- matroskademux, qtdemux: Fix integer overflows in zlib/bz2/etc
+ decompression code (Security fix)
+- qtdemux: Don???t use tfdt for parsing subsequent trun boxes
+- rtpbin: Avoid holding GST_RTP_BIN_LOCK when emitting pad-added
+ signal (to avoid deadlocks)
+- rtpptdemux: Don???t GST_FLOW_ERROR when ignoring invalid packets
+- smpte: Fix integer overflow with possible heap corruption in GstMask
+ creation. (Security fix)
+- smpte: integer overflow with possible heap corruption in GstMask
+ creation (Security fix)
+- soup: fix soup debug category initialisation
+- soup: Fix plugin/element init
+- v4l2: Reset transfer in gst_v4l2_object_acquire_format()
+- vpxenc: fix crash if encoder produces unmatching timestamp
+- wavparse: ensure that any pending segment is sent before an EOS
+ event is sent
+
+gst-plugins-bad
+
+- androidmedia: Add H.265 encoder mapping
+- avfvideosrc: fix wrong framerate selected for caps
+- d3d11decoder: Fix for alternate interlacing signalling
+- d3d11decoder: Do not preallocate texture using downstream d3d11
+ buffer pool
+- d3d11decoder: Copy HDR10 related caps field manually
+- d3d11decoder: Work around Intel DXVA driver crash
+- d3d11screencapture: Set viewport when drawing mouse cursor
+- d3d11screencapture: Fix missing/outdated cursor shape
+- d3d11screencapturesrc: Fix crash when d3d11 device is different from
+ owned one
+- h264decoder: Fix for unhandled low-delay decoding case
+- matroskademux, qtdemux: Fix integer overflows in zlib/bz2/etc
+ decompression code (Security fix)
+- mpegtsmux: Make sure to set srcpad caps under all conditions before
+ outputting the first buffer
+- mpegtsmux: sends segment before caps
+- mxfdemux: Handle files produced by legacy FFmpeg
+- nvh264dec,nvh265dec: Don???t realloc bitstream buffer per slice
+- nvcodec: cuda-converter: fix nvrtc compilation on non-English locale
+ systems
+- opencv: Allow building against 4.6.x
+- pcapparse: Set timestamp in DTS, not PTS
+- rtmp2: fix allocation of GstRtmpMeta which caused crashes on 32-bit
+ platforms
+- rtmp2sink crash on Android arm 32 - cerbero 1.20.2.0
+- sdpdemux: Release request pads from rtpbin when freeing a stream
+- va: Add O_CLOEXEC flag at opening drm device (so subprocesses won???t
+ have access to it)
+- webrtcbin: Reject answers that don???t contain the same number of
+ m-line as offer
+- webrtc: datachannel: Notify low buffered amount according to spec
+
+gst-plugins-ugly
+
+- No changes
+
+gst-libav
+
+- No changes
+
+gst-rtsp-server
+
+- No changes
+
+gstreamer-vaapi
+
+- vaapi: Do not disable the whole vpp when some va operations not
+ available
+- vaapidecode, vaapipostproc: Disable DMAbuf from caps negotiation
+- scrambled video with some Intel graphics cards
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges/videourisource: handle non-1/1 PAR source videos
+
+gst-examples:
+
+- No changes
+
+Development build environment + gst-full build
+
+- Update libnice subproject wrap to 0.1.19
+- meson: use better zlib dependency fallback
+- meson: Fix deprecation warnings
+
+Cerbero build tool and packaging changes in 1.20.3
+
+- Set GSTREAMER_1_0_ROOT_[MSVC_]X86_64 root environment variable in
+ System section (not User section)
+- bootstrap: Add perl-FindBin dep needed by openssl (which is not
+ installed by default on RedHat systems)
+- Also add build-tools/local/bin to PATH on Linux
+- Add a variant to control building of the JACK plugin
+- libnice: update to 0.1.19 (fixes some WebRTC issues)
+- zlib: update to 1.2.12
+
+Bindings
+
+- No changes
+
+Contributors to 1.20.3
+
+Adam Doupe, Alicia Boya Garc??a, Bastien Nocera, Corentin Damman, Damian
+Hobson-Garcia, Diogo Goncalves, Edward Hervey, Eli Schwartz, Erwann
+Gouesbet, Guillaume Desmottes, He Junyan, Hou Qi, Jakub Adam, James
+Hilliard, Jan Alexander Steffens (heftig), Jan Schmidt, Matthew Waters,
+Nicolas Dufresne, Nirbheek Chauhan, Olivier Cr??te, Philippe Normand,
+Rabindra Harlalka, Ruben Gonzalez, Sebastian Dr??ge, Seungha Yang,
+St??phane Cerveau, Thibault Saunier, Tim-Philipp M??ller, Tom Schuring, U.
+Artie Eoff, V??ctor Manuel J??quez Leal, WANG Xuerui, 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.20.3
+
+- List of Merge Requests applied in 1.20.3
+- List of Issues fixed in 1.20.3
+
Schedule for 1.22
Our next major feature release will be 1.22, and 1.21 will be the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/RELEASE
new/gst-plugins-base-1.20.3/RELEASE
--- old/gst-plugins-base-1.20.2/RELEASE 2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/RELEASE 2022-06-16 00:36:22.000000000 +0200
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-base 1.20.2.
+This is GStreamer gst-plugins-base 1.20.3.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-base-1.20.2/docs/plugins/gst_plugins_cache.json
new/gst-plugins-base-1.20.3/docs/plugins/gst_plugins_cache.json
--- old/gst-plugins-base-1.20.2/docs/plugins/gst_plugins_cache.json
2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/docs/plugins/gst_plugins_cache.json
2022-06-16 00:36:22.000000000 +0200
@@ -8565,7 +8565,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "top (2)",
+ "default": "baseline (0)",
"mutable": "null",
"readable": true,
"type": "GstBaseTextOverlayVAlign",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/ext/ogg/gstoggstream.c
new/gst-plugins-base-1.20.3/ext/ogg/gstoggstream.c
--- old/gst-plugins-base-1.20.2/ext/ogg/gstoggstream.c 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/ext/ogg/gstoggstream.c 2022-06-16
00:36:22.000000000 +0200
@@ -425,7 +425,8 @@
pad->granulerate_n = GST_READ_UINT32_BE (data + 22);
pad->granulerate_d = GST_READ_UINT32_BE (data + 26);
if (pad->granulerate_n == 0 || pad->granulerate_d == 0) {
- GST_WARNING ("frame rate %d/%d", pad->granulerate_n, pad->granulerate_d);
+ GST_WARNING ("Invalid frame rate %d/%d", pad->granulerate_n,
+ pad->granulerate_d);
pad->granulerate_n = 0;
pad->granulerate_d = 0;
return FALSE;
@@ -565,6 +566,12 @@
return FALSE;
}
+ if (header.frame_rate_numerator == 0 || header.frame_rate_denominator == 0) {
+ GST_WARNING ("invalid framerate %d/%d", header.frame_rate_numerator,
+ header.frame_rate_denominator);
+ return FALSE;
+ }
+
pad->is_video = TRUE;
pad->always_flush_page = TRUE;
pad->granulerate_n = header.frame_rate_numerator * 2;
@@ -670,6 +677,11 @@
fps_n = GST_READ_UINT32_BE (packet->packet + 18);
fps_d = GST_READ_UINT32_BE (packet->packet + 22);
+ if (fps_n == 0 || fps_d == 0) {
+ GST_WARNING ("invalid framerate %d/%d", fps_n, fps_d);
+ return FALSE;
+ }
+
pad->is_video = TRUE;
pad->is_vp8 = TRUE;
pad->granulerate_n = fps_n;
@@ -1690,7 +1702,7 @@
pad->is_video = TRUE;
pad->granulerate_n = 10000000;
time_unit = GST_READ_UINT64_LE (data + 17);
- if (time_unit > G_MAXINT || time_unit < G_MININT) {
+ if (time_unit > G_MAXINT || time_unit < G_MININT || time_unit == 0) {
GST_WARNING ("timeunit is out of range");
}
pad->granulerate_d = (gint) CLAMP (time_unit, G_MININT, G_MAXINT);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-base-1.20.2/gst/audioconvert/gstaudioconvert.c
new/gst-plugins-base-1.20.3/gst/audioconvert/gstaudioconvert.c
--- old/gst-plugins-base-1.20.2/gst/audioconvert/gstaudioconvert.c
2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst/audioconvert/gstaudioconvert.c
2022-06-16 00:36:22.000000000 +0200
@@ -683,6 +683,8 @@
} else if (out_chans > 1) {
GST_ERROR_OBJECT (base, "Have no default layout for %d channels",
out_chans);
+ gst_structure_set (outs, "channel-mask", GST_TYPE_BITMASK,
+ G_GUINT64_CONSTANT (0), NULL);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst/playback/gstdecodebin3.c
new/gst-plugins-base-1.20.3/gst/playback/gstdecodebin3.c
--- old/gst-plugins-base-1.20.2/gst/playback/gstdecodebin3.c 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst/playback/gstdecodebin3.c 2022-06-16
00:36:22.000000000 +0200
@@ -1178,7 +1178,7 @@
for (i = 0; i < nb; i++) {
GstStream *stream = gst_stream_collection_get_stream (collection, i);
GstStreamType curtype = gst_stream_get_stream_type (stream);
- if (!(used_types & curtype)) {
+ if (curtype != GST_STREAM_TYPE_UNKNOWN && !(used_types & curtype)) {
const gchar *sid = gst_stream_get_stream_id (stream);
GST_DEBUG_OBJECT (dbin,
"Automatically selecting stream '%s' of type %s", sid,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst/playback/gstparsebin.c
new/gst-plugins-base-1.20.3/gst/playback/gstparsebin.c
--- old/gst-plugins-base-1.20.2/gst/playback/gstparsebin.c 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst/playback/gstparsebin.c 2022-06-16
00:36:22.000000000 +0200
@@ -1376,22 +1376,23 @@
g_value_array_free (factories);
if (parsebin->expose_allstreams) {
- GstStream *newstream;
- GST_LOG_OBJECT (parsepad, "Existing GstStream %" GST_PTR_FORMAT,
- parsepad->active_stream);
/* If we expose all streams, we only need to inform the application about
* a missing handler but still expose it. We also make sure the stream
* type is unknown. */
- g_assert (parsepad->active_stream);
- newstream =
- gst_stream_new (gst_stream_get_stream_id (parsepad->active_stream),
- caps, GST_STREAM_TYPE_UNKNOWN,
- gst_stream_get_stream_flags (parsepad->active_stream));
- gst_object_replace ((GstObject **) & parsepad->active_stream,
- (GstObject *) newstream);
- GST_LOG_OBJECT (parsepad, "New GstStream %" GST_PTR_FORMAT,
- parsepad->active_stream);
-
+ if (parsepad->in_a_fallback_collection) {
+ GstStream *newstream;
+ GST_LOG_OBJECT (parsepad, "Existing GstStream %" GST_PTR_FORMAT,
+ parsepad->active_stream);
+ g_assert (parsepad->active_stream);
+ newstream =
+ gst_stream_new (gst_stream_get_stream_id (parsepad->active_stream),
+ caps, GST_STREAM_TYPE_UNKNOWN,
+ gst_stream_get_stream_flags (parsepad->active_stream));
+ gst_object_replace ((GstObject **) & parsepad->active_stream,
+ (GstObject *) newstream);
+ GST_LOG_OBJECT (parsepad, "New GstStream %" GST_PTR_FORMAT,
+ parsepad->active_stream);
+ }
gst_element_post_message (GST_ELEMENT_CAST (parsebin),
gst_missing_decoder_message_new (GST_ELEMENT_CAST (parsebin), caps));
goto expose_pad;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst/playback/gstplaybin3.c
new/gst-plugins-base-1.20.3/gst/playback/gstplaybin3.c
--- old/gst-plugins-base-1.20.2/gst/playback/gstplaybin3.c 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst/playback/gstplaybin3.c 2022-06-16
00:36:22.000000000 +0200
@@ -3061,6 +3061,7 @@
gint pb_stream_type = -1;
gchar *pad_name;
GstPlayBin3 *playbin = group->playbin;
+ GstStreamType selected, active, cur;
GST_PLAY_BIN3_SHUTDOWN_LOCK (playbin, shutdown);
@@ -3073,10 +3074,13 @@
try exact match first */
if (g_str_has_prefix (pad_name, "video")) {
pb_stream_type = PLAYBIN_STREAM_VIDEO;
+ cur = GST_STREAM_TYPE_VIDEO;
} else if (g_str_has_prefix (pad_name, "audio")) {
pb_stream_type = PLAYBIN_STREAM_AUDIO;
+ cur = GST_STREAM_TYPE_AUDIO;
} else if (g_str_has_prefix (pad_name, "text")) {
pb_stream_type = PLAYBIN_STREAM_TEXT;
+ cur = GST_STREAM_TYPE_TEXT;
}
g_free (pad_name);
@@ -3091,6 +3095,30 @@
GST_PLAY_BIN3_LOCK (playbin);
combine = &playbin->combiner[pb_stream_type];
+ /* (uri)decodebin3 will post streams-selected once all pads are expose.
+ * Therefore this stream might not be marked as selected on pad-added,
+ * and associated combiner can be null here.
+ * Marks this stream as selected manually, exposed pad implies it's selected
+ * already */
+ selected = playbin->selected_stream_types | cur;
+ active = playbin->active_stream_types;
+
+ if (selected != active) {
+ GST_DEBUG_OBJECT (playbin,
+ "%s:%s added but not an active stream, marking active",
+ GST_DEBUG_PAD_NAME (pad));
+ playbin->selected_stream_types = selected;
+ reconfigure_output (playbin);
+
+ /* shutdown state can be changed meantime then combiner will not be
+ * configured */
+ if (g_atomic_int_get (&playbin->shutdown)) {
+ GST_PLAY_BIN3_UNLOCK (playbin);
+ GST_PLAY_BIN3_SHUTDOWN_UNLOCK (playbin);
+ return;
+ }
+ }
+
combiner_control_pad (playbin, combine, pad);
control_source_pad (group, pad, combine->stream_type);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-base-1.20.2/gst-libs/gst/app/gstappsink.c
new/gst-plugins-base-1.20.3/gst-libs/gst/app/gstappsink.c
--- old/gst-plugins-base-1.20.2/gst-libs/gst/app/gstappsink.c 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/app/gstappsink.c 2022-06-16
00:36:22.000000000 +0200
@@ -731,6 +731,7 @@
gst_mini_object_unref (obj);
priv->num_buffers = 0;
priv->num_events = 0;
+ gst_caps_replace (&priv->last_caps, NULL);
g_cond_signal (&priv->cond);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst-libs/gst/gl/meson.build
new/gst-plugins-base-1.20.3/gst-libs/gst/gl/meson.build
--- old/gst-plugins-base-1.20.2/gst-libs/gst/gl/meson.build 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/gl/meson.build 2022-06-16
00:36:22.000000000 +0200
@@ -1,6 +1,11 @@
+gstgl_dep = dependency('', required : false)
+gstglproto_dep = dependency('', required : false)
+gstglx11_dep = dependency('', required : false)
+gstglwayland_dep = dependency('', required : false)
+gstglegl_dep = dependency('', required : false)
+
if get_option('gl').disabled()
message('GStreamer OpenGL integration disabled via options.')
- gstgl_dep = dependency('', required: false)
build_gstgl = false
subdir_done()
endif
@@ -145,7 +150,7 @@
]
foreach option : glconf_options
- glconf.set10(option, false)
+ glconf.set(option, 0)
endforeach
unneeded_dep = dependency('', required : false)
@@ -489,11 +494,11 @@
if gles2_dep.found()
gl_lib_deps += gles2_dep
- glconf.set10('GST_GL_HAVE_GLES2', 1)
+ glconf.set('GST_GL_HAVE_GLES2', 1)
if gles3_h
- glconf.set10('GST_GL_HAVE_GLES3', 1)
+ glconf.set('GST_GL_HAVE_GLES3',1)
if gles3ext3_h
- glconf.set10('GST_GL_HAVE_GLES3EXT3_H', 1)
+ glconf.set('GST_GL_HAVE_GLES3EXT3_H', 1)
endif
endif
enabled_gl_apis += 'gles2'
@@ -501,7 +506,7 @@
if gl_dep.found()
gl_lib_deps += gl_dep
- glconf.set10('GST_GL_HAVE_OPENGL', 1)
+ glconf.set('GST_GL_HAVE_OPENGL', 1)
enabled_gl_apis += 'gl'
endif
@@ -547,11 +552,11 @@
'egl/gstgldisplay_egl_device.h',
])
gl_platform_deps += egl_dep
- glconf.set10('GST_GL_HAVE_PLATFORM_EGL', 1)
+ glconf.set('GST_GL_HAVE_PLATFORM_EGL', 1)
if cc.has_header('libdrm/drm_fourcc.h')
gl_misc_deps += allocators_dep
- glconf.set10('GST_GL_HAVE_DMABUF', 1)
+ glconf.set('GST_GL_HAVE_DMABUF', 1)
endif
egl_includes = '''
@@ -650,6 +655,7 @@
endif
endif
+xcb_dep = unneeded_dep
if need_win_x11 != 'no'
xcb_dep = dependency('x11-xcb', required : false)
if x11_dep.found() and xcb_dep.found()
@@ -756,7 +762,7 @@
if windows_graphics_h and windows_app_dep.found() and
runtimeobject_lib.found()
enabled_gl_winsys += 'winrt'
- glconf.set10('GST_GL_HAVE_WINDOW_WINRT', 1)
+ glconf.set('GST_GL_HAVE_WINDOW_WINRT', 1)
gl_priv_sources += [
'winrt/gstglwindow_winrt_egl.cpp'
]
@@ -804,7 +810,7 @@
if foundation_dep.found() and quartzcore_dep.found() and
corefoundation_dep.found()
gl_platform_deps += [quartzcore_dep, corefoundation_dep, foundation_dep]
enabled_gl_platforms += 'cgl'
- glconf.set10('GST_GL_HAVE_PLATFORM_CGL', 1)
+ glconf.set('GST_GL_HAVE_PLATFORM_CGL', 1)
if need_win_cocoa != 'no'
cocoa_dep = dependency('appleframeworks', modules : ['Cocoa'],
required : false)
@@ -817,7 +823,7 @@
]
gl_winsys_deps += cocoa_dep
enabled_gl_winsys += 'cocoa'
- glconf.set10('GST_GL_HAVE_WINDOW_COCOA', 1)
+ glconf.set('GST_GL_HAVE_WINDOW_COCOA', 1)
elif need_win_cocoa == 'yes'
error('Could not find Cocoa')
endif
@@ -906,8 +912,8 @@
if egl_dep.found() and cc.has_function ('fbGetDisplay', dependencies :
egl_dep)
if cc.has_function ('glTexDirectVIV', dependencies : gles2_dep)
enabled_gl_winsys += 'viv-fb'
- glconf.set10('GST_GL_HAVE_WINDOW_VIV_FB', 1)
- glconf.set10('GST_GL_HAVE_VIV_DIRECTVIV', 1)
+ glconf.set('GST_GL_HAVE_WINDOW_VIV_FB', 1)
+ glconf.set('GST_GL_HAVE_VIV_DIRECTVIV', 1)
gl_priv_sources += [
'viv-fb/gstgldisplay_viv_fb.c',
'viv-fb/gstglwindow_viv_fb_egl.c',
@@ -930,7 +936,7 @@
if host_system == 'android' and need_win_android != 'no' and need_platform_egl
!= 'no'
if gles2_dep.found() and egl_dep.found()
enabled_gl_winsys += ['android']
- glconf.set10('GST_GL_HAVE_WINDOW_ANDROID', 1)
+ glconf.set('GST_GL_HAVE_WINDOW_ANDROID', 1)
gl_priv_sources += [
'android/gstglwindow_android_egl.c'
]
@@ -966,12 +972,6 @@
build_gstgl = false
endif
-gstgl_dep = dependency('', required : false)
-gstglproto_dep = dependency('', required : false)
-gstglx11_dep = dependency('', required : false)
-gstglwayland_dep = dependency('', required : false)
-gstglegl_dep = dependency('', required : false)
-
if build_gstgl
# find some types that may or may not be defined
if cc.has_type('GLeglImageOES', prefix : gl_include_block, dependencies :
gl_lib_deps, include_directories : gl_includes)
@@ -1143,7 +1143,7 @@
gl_x11_gir = gnome.generate_gir(gstgl, kwargs: gir)
endif
endif
- gstglx11_dep = declare_dependency(dependencies : [gstgl_dep],
+ gstglx11_dep = declare_dependency(dependencies : [gstgl_dep, x11_dep,
xcb_dep],
sources : gl_x11_gir)
meson.override_dependency('gstreamer-gl-x11-1.0', gstglx11_dep)
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-base-1.20.2/gst-libs/gst/rtp/gstrtcpbuffer.c
new/gst-plugins-base-1.20.3/gst-libs/gst/rtp/gstrtcpbuffer.c
--- old/gst-plugins-base-1.20.2/gst-libs/gst/rtp/gstrtcpbuffer.c
2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/rtp/gstrtcpbuffer.c
2022-06-16 00:36:22.000000000 +0200
@@ -109,8 +109,7 @@
if (G_UNLIKELY (header_mask != GST_RTCP_VALID_VALUE))
goto wrong_mask;
- /* no padding when mask succeeds */
- padding = FALSE;
+ padding = data[0] & 0x20;
/* store len */
data_len = len;
@@ -129,7 +128,7 @@
if (data_len < 4)
break;
- /* padding only allowed on last packet */
+ /* Version already checked for first packet through mask */
if (padding)
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-base-1.20.2/gst-libs/gst/rtp/gstrtcpbuffer.h
new/gst-plugins-base-1.20.3/gst-libs/gst/rtp/gstrtcpbuffer.h
--- old/gst-plugins-base-1.20.2/gst-libs/gst/rtp/gstrtcpbuffer.h
2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/rtp/gstrtcpbuffer.h
2022-06-16 00:36:22.000000000 +0200
@@ -262,10 +262,10 @@
/**
* GST_RTCP_REDUCED_SIZE_VALID_MASK:
*
- * Mask for version, padding bit and packet type pair allowing reduced size
+ * Mask for version and packet type pair allowing reduced size
* packets, basically it accepts other types than RR and SR
*/
-#define GST_RTCP_REDUCED_SIZE_VALID_MASK (0xc000 | 0x2000 | 0xf8)
+#define GST_RTCP_REDUCED_SIZE_VALID_MASK (0xc000 | 0xf8)
/**
* GST_RTCP_VALID_VALUE:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst-libs/gst/tag/meson.build
new/gst-plugins-base-1.20.3/gst-libs/gst/tag/meson.build
--- old/gst-plugins-base-1.20.2/gst-libs/gst/tag/meson.build 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/tag/meson.build 2022-06-16
00:36:22.000000000 +0200
@@ -70,13 +70,7 @@
core_conf.set('HAVE_ISO_CODES', have_iso_codes)
# could drop optional zlib dep and use g_zlib_decompressor_new()
-zlib_dep = dependency('zlib', required : false)
-if not zlib_dep.found()
- zlib_dep = cc.find_library('z', required : false)
- if not zlib_dep.found() or not cc.has_header('zlib.h')
- zlib_dep = subproject('zlib').get_variable('zlib_dep')
- endif
-endif
+zlib_dep = dependency('zlib')
core_conf.set('HAVE_ZLIB', true)
tag_deps = [gst_base_dep, libm, zlib_dep]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-base-1.20.2/gst-libs/gst/video/gstvideoaggregator.c
new/gst-plugins-base-1.20.3/gst-libs/gst/video/gstvideoaggregator.c
--- old/gst-plugins-base-1.20.2/gst-libs/gst/video/gstvideoaggregator.c
2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/video/gstvideoaggregator.c
2022-06-16 00:36:22.000000000 +0200
@@ -1063,6 +1063,8 @@
gst_caps_unref (possible_caps);
continue;
}
+
+ gst_caps_unref (possible_caps);
}
/* If the format is supported, consider it very high weight */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst-plugins-base.doap
new/gst-plugins-base-1.20.3/gst-plugins-base.doap
--- old/gst-plugins-base-1.20.2/gst-plugins-base.doap 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-plugins-base.doap 2022-06-16
00:36:22.000000000 +0200
@@ -36,6 +36,16 @@
<release>
<Version>
+ <revision>1.20.3</revision>
+ <branch>1.20</branch>
+ <name></name>
+ <created>2022-06-15</created>
+ <file-release
rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.20.3.tar.xz"
/>
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.20.2</revision>
<branch>1.20</branch>
<name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/meson.build
new/gst-plugins-base-1.20.3/meson.build
--- old/gst-plugins-base-1.20.2/meson.build 2022-05-03 00:29:29.000000000
+0200
+++ new/gst-plugins-base-1.20.3/meson.build 2022-06-16 00:36:22.000000000
+0200
@@ -1,5 +1,5 @@
project('gst-plugins-base', 'c',
- version : '1.20.2',
+ version : '1.20.3',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/po/gst-plugins-base-1.0.pot
new/gst-plugins-base-1.20.3/po/gst-plugins-base-1.0.pot
--- old/gst-plugins-base-1.20.2/po/gst-plugins-base-1.0.pot 2022-05-03
00:29:57.435302500 +0200
+++ new/gst-plugins-base-1.20.3/po/gst-plugins-base-1.0.pot 2022-06-16
00:36:51.190222300 +0200
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: gst-plugins-base-1.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-02 23:29+0100\n"
+"POT-Creation-Date: 2022-06-15 23:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
@@ -83,11 +83,11 @@
msgid "Could not read CD."
msgstr ""
-#: gst/playback/gstdecodebin2.c:1911 gst/playback/gstparsebin.c:1542
+#: gst/playback/gstdecodebin2.c:1911 gst/playback/gstparsebin.c:1543
msgid "Could not determine type of stream"
msgstr ""
-#: gst/playback/gstdecodebin2.c:2889 gst/playback/gstparsebin.c:2374
+#: gst/playback/gstdecodebin2.c:2889 gst/playback/gstparsebin.c:2375
msgid "This appears to be a text file"
msgstr ""
@@ -111,7 +111,7 @@
msgid "Could not create \"uridecodebin\" element."
msgstr ""
-#: gst/playback/gstplaybin3.c:4604
+#: gst/playback/gstplaybin3.c:4632
msgid "Could not create \"uridecodebin3\" element."
msgstr ""
@@ -725,17 +725,17 @@
msgid "Initial key in which the sound starts"
msgstr ""
-#: tools/gst-device-monitor.c:294 tools/gst-play.c:1575
+#: tools/gst-device-monitor.c:296 tools/gst-play.c:1575
msgid "Print version information and exit"
msgstr ""
-#: tools/gst-device-monitor.c:296
+#: tools/gst-device-monitor.c:298
msgid ""
"Don't exit after showing the initial device list, but wait for devices to "
"added/removed."
msgstr ""
-#: tools/gst-device-monitor.c:299
+#: tools/gst-device-monitor.c:301
msgid "Include devices from hidden device providers."
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-base-1.20.2/tests/check/elements/appsink.c
new/gst-plugins-base-1.20.3/tests/check/elements/appsink.c
--- old/gst-plugins-base-1.20.2/tests/check/elements/appsink.c 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tests/check/elements/appsink.c 2022-06-16
00:36:22.000000000 +0200
@@ -987,6 +987,87 @@
GST_END_TEST;
+static void
+push_caps_with_type (gint caps_type)
+{
+ GstCaps *caps;
+
+ caps =
+ gst_caps_new_simple ("application/x-gst-check", "type", G_TYPE_INT,
+ caps_type, NULL);
+ fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_caps (caps)));
+
+ gst_caps_unref (caps);
+}
+
+static void
+push_buffer_with_number (gint buffer_number)
+{
+ GstBuffer *buffer;
+
+ buffer = gst_buffer_new_and_alloc (sizeof (gint));
+ gst_buffer_fill (buffer, 0, &buffer_number, sizeof (gint));
+ fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+}
+
+static void
+pull_and_check_sample (GstElement * appsink, gint expected_buffer_number,
+ gint expected_caps_type)
+{
+ GstSample *sample;
+ GstCaps *caps;
+ GstBuffer *buffer;
+ GstStructure *structure;
+ gint actual_caps_type;
+
+ sample = gst_app_sink_pull_sample (GST_APP_SINK (appsink));
+
+ caps = gst_sample_get_caps (sample);
+ fail_unless (structure = gst_caps_get_structure (caps, 0));
+ fail_unless (gst_structure_get_int (structure, "type", &actual_caps_type));
+ assert_equals_int (actual_caps_type, expected_caps_type);
+
+ buffer = gst_sample_get_buffer (sample);
+ gst_check_buffer_data (buffer, &expected_buffer_number, sizeof (gint));
+
+ gst_sample_unref (sample);
+}
+
+GST_START_TEST (test_caps_before_flush_race_condition)
+{
+ GstElement *sink;
+ GstSegment segment;
+
+ sink = setup_appsink ();
+
+ ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
+
+ // Push a series of buffers, and at the end, a new caps event.
+ push_caps_with_type (1);
+ push_buffer_with_number (10);
+ push_buffer_with_number (11);
+ push_caps_with_type (2);
+
+ pull_and_check_sample (sink, 10, 1);
+
+ // Then, let a flush happen.
+ fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_flush_start ()));
+ fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_flush_stop (TRUE)));
+ // Sinks downgrade state to PAUSED after a flush, let's up it to PLAYING
again to avoid gst_pad_push becoming blocking.
+ ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
+ // A segment must be sent after a flush.
+ gst_segment_init (&segment, GST_FORMAT_TIME);
+ fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment
(&segment)));
+
+ // Send a buffer now, and check that when pulled by the appsink user, it
didn't come with the wrong old caps.
+ push_buffer_with_number (20);
+ pull_and_check_sample (sink, 20, 2);
+
+ cleanup_appsink (sink);
+}
+
+GST_END_TEST;
+
static Suite *
appsink_suite (void)
{
@@ -1012,6 +1093,7 @@
tcase_add_test (tc_chain, test_event_signals);
tcase_add_test (tc_chain, test_event_paused);
tcase_add_test (tc_chain, test_reverse_stepping);
+ tcase_add_test (tc_chain, test_caps_before_flush_race_condition);
return s;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-base-1.20.2/tests/check/libs/gstglmatrix.c
new/gst-plugins-base-1.20.3/tests/check/libs/gstglmatrix.c
--- old/gst-plugins-base-1.20.2/tests/check/libs/gstglmatrix.c 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tests/check/libs/gstglmatrix.c 2022-06-16
00:36:22.000000000 +0200
@@ -22,7 +22,7 @@
# include "config.h"
#endif
-#include <gst/gl/gstglutils.c>
+#include <gst/gl/gl.h>
#undef GST_CAT_DEFAULT
#include <gst/check/gstcheck.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/tests/check/libs/rtp.c
new/gst-plugins-base-1.20.3/tests/check/libs/rtp.c
--- old/gst-plugins-base-1.20.2/tests/check/libs/rtp.c 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tests/check/libs/rtp.c 2022-06-16
00:36:22.000000000 +0200
@@ -31,6 +31,8 @@
#define RTP_HEADER_LEN 12
+static GstBuffer *create_feedback_buffer (gboolean with_padding);
+
GST_START_TEST (test_rtp_buffer)
{
GstBuffer *buf;
@@ -1073,20 +1075,19 @@
GST_START_TEST (test_rtcp_validate_reduced_with_padding)
{
- /* Reduced size packet with padding. */
- guint8 rtcp_pkt[] = {
- 0xA0, 0xcd, 0x00, 0x08, /* P=1, Type FB, length = 8 */
- 0x97, 0x6d, 0x21, 0x6a,
- 0x4d, 0x16, 0xaf, 0x14,
- 0x10, 0x1f, 0xd9, 0x91,
- 0x0f, 0xb7, 0x50, 0x88,
- 0x3b, 0x79, 0x31, 0x50,
- 0xbe, 0x19, 0x12, 0xa8,
- 0xbb, 0xce, 0x9e, 0x3e,
- 0x00, 0x00, 0x00, 0x04 /* RTCP padding */
- };
+ GstRTCPPacket packet;
+ GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT;
+ GstBuffer *buffer = create_feedback_buffer (TRUE);
+
+ gst_rtcp_buffer_map (buffer, GST_MAP_READ, &rtcp);
+ fail_unless (gst_rtcp_buffer_get_first_packet (&rtcp, &packet));
+ fail_unless (gst_rtcp_packet_get_padding (&packet));
+ gst_rtcp_buffer_unmap (&rtcp);
+
+ fail_unless (gst_rtcp_buffer_validate_reduced (buffer));
+ fail_if (gst_rtcp_buffer_validate (buffer));
- fail_if (gst_rtcp_buffer_validate_data_reduced (rtcp_pkt, sizeof
(rtcp_pkt)));
+ gst_buffer_unref (buffer);
}
GST_END_TEST;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/tests/check/meson.build
new/gst-plugins-base-1.20.3/tests/check/meson.build
--- old/gst-plugins-base-1.20.2/tests/check/meson.build 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tests/check/meson.build 2022-06-16
00:36:22.000000000 +0200
@@ -11,7 +11,7 @@
[ 'libs/baseaudiovisualizer.c' ],
[ 'libs/discoverer.c' ],
[ 'libs/fft.c' ],
- [ 'libs/libsabi.c', false, [ gstgl_dep ] ],
+ [ 'libs/libsabi.c', false, [ gstgl_dep, gstglx11_dep, gstglwayland_dep,
gstglegl_dep ] ],
[ 'libs/mikey.c' ],
[ 'libs/navigation.c' ],
[ 'libs/pbutils.c' ],
@@ -92,8 +92,8 @@
[ 'libs/gstglcontext.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
[ 'libs/gstglfeature.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
[ 'libs/gstglformat.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
- [ 'libs/gstglheaders.c', not build_gstgl, [gstgl_dep]],
- [ 'libs/gstglmatrix.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
+ [ 'libs/gstglheaders.c', not build_gstgl, [gstgl_dep, gstglx11_dep,
gstglwayland_dep, gstglegl_dep]],
+ [ 'libs/gstglmatrix.c', not build_gstgl, [gstgl_dep]],
[ 'libs/gstglmemory.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
[ 'libs/gstglquery.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
[ 'libs/gstglshader.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/tools/gst-device-monitor.c
new/gst-plugins-base-1.20.3/tools/gst-device-monitor.c
--- old/gst-plugins-base-1.20.2/tools/gst-device-monitor.c 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tools/gst-device-monitor.c 2022-06-16
00:36:22.000000000 +0200
@@ -144,6 +144,8 @@
if (G_VALUE_HOLDS_UINT (value)) {
val = g_strdup_printf ("%u (0x%08x)", g_value_get_uint (value),
g_value_get_uint (value));
+ } else if (G_VALUE_HOLDS_STRING (value)) {
+ val = g_value_dup_string (value);
} else {
val = gst_value_serialize (value);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/tools/gst-play.c
new/gst-plugins-base-1.20.3/tools/gst-play.c
--- old/gst-plugins-base-1.20.2/tools/gst-play.c 2022-05-03
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tools/gst-play.c 2022-06-16
00:36:22.000000000 +0200
@@ -692,7 +692,7 @@
status[len] = '\0';
}
- if (pos >= 0 && dur > 0) {
+ if (pos >= 0) {
gchar dstr[32], pstr[32];
/* FIXME: pretty print in nicer format */