summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2021-06-01 00:11:44 +0100
committerTim-Philipp Müller <tim@centricular.com>2021-06-01 00:11:46 +0100
commit0dcb2aaadc803dec4e0808745d98b3377bfe6b04 (patch)
tree6e7e94ca738963fa0ed3ffd81573edde4f655fdb
parentaa4448cdd6b59bce0c0bd925ca56901f58a572e2 (diff)
Release 1.19.11.19.1
-rw-r--r--ChangeLog4026
-rw-r--r--NEWS2056
-rw-r--r--README2
-rw-r--r--RELEASE15
-rw-r--r--docs/gst_plugins_cache.json8
-rw-r--r--gst-plugins-good.doap10
-rw-r--r--meson.build2
7 files changed, 4122 insertions, 1997 deletions
diff --git a/ChangeLog b/ChangeLog
index 252d6223c..8f54dc5c4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,11 +1,4037 @@
+=== release 1.19.1 ===
+
+2021-06-01 00:11:44 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * README:
+ * RELEASE:
+ * gst-plugins-good.doap:
+ * meson.build:
+ Release 1.19.1
+
+2021-05-29 12:54:22 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/rtp/gstrtpjpegpay.c:
+ rtpjpegpay: fix image corruption when compiled with MSVC on Windows
+ On Windows with MSVC, jpeg_header_size would end up 2 bytes larger
+ than it should be. This then leads to the first 2 bytes of the
+ actual jpeg image data to be dropped, because we think those
+ belong to the header, which results in an undecodable image when
+ reconstructed in the depayloader.
+ What happens is that when the compiler evaluates
+ jpeg_header_size = mem.offset + read_u16_and_inc_offset_by_2(&mem);
+ it actually uses the mem.offset value after it has been increased
+ by the function call on the right hand size of the equation.
+ From section 6.5 of the C99 spec:
+ 3. The grouping of operators and operands is indicated by the syntax [74].
+ Except as specified later (for the function-call (), &&, ||, ?:, and
+ comma operators), the order of evaluation of subexpressions and the
+ order in which side effects take place are both unspecified.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/889
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/999>
+
+2021-05-25 16:19:20 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2videoenc.c:
+ v4l2videoenc: Set default latency if the frame duration is invalid
+ If the duration of the v4l2object is invalid, use default 25fps instead.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/996>
+
+2021-05-26 00:23:56 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ deinterlace: Drop "field-order" field while transforming caps
+ Like other basetransform subclasses are doing, drop field
+ which can be converted by deinterlace.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/997>
+
+2021-05-25 20:10:34 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ deinterlace: Drop field-order field if outputting progressive
+ Progressive with field-order doesn't make sense
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/997>
+
+2021-05-21 14:19:29 +0200 Havard Graff <havard@pexip.com>
+
+ * gst/rtpmanager/gstrtpssrcdemux.c:
+ * tests/check/elements/rtpssrcdemux.c:
+ rtpssrcdemux: fix "data flow before segment event" crash
+ This crash could happen at any time a RTP and RTCP buffer arrived
+ simultaneously in ssrcdemux.
+ The problem was that sticky-event arriving while the rtp and rtcp pads
+ were being set up could arrive just too late to be included in the initial
+ forwarding.
+ The fix checks if the stickies have been sent on the srcpad about to be
+ pushed on, and if not sends them. It also blocks any stickes from
+ being forwarded *prior* to this happening, to avoid them arriving on
+ the srcpad multiple times.
+ Since the test loops 1000 times, this will make running under valgrind
+ take forever, so use the RUNNING_ON_VALGRIND variable to detect we
+ are running under valgrind, and reduce the loop-count to 2 in that case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/992>
+
+2021-05-21 18:45:17 +0200 Havard Graff <havard@pexip.com>
+
+ * gst/rtpmanager/gstrtpssrcdemux.c:
+ rtpssrcdemux: refactor destruction of GstRtpSsrcDemuxPads
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/992>
+
+2021-05-21 18:30:28 +0200 Havard Graff <havard@pexip.com>
+
+ * gst/rtpmanager/gstrtpssrcdemux.c:
+ * gst/rtpmanager/gstrtpssrcdemux.h:
+ rtpssrcdemux: make naming consistent
+ Use plural for GstRtpSsrcDemuxPads, since it contains two pads, and
+ use the variable-name 'dpads' everywhere.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/992>
+
+2021-05-23 15:14:11 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/wavparse/gstwavparse.c:
+ wavparse: use g_strndup() for copying text data
+ So we don't rely on NUL terminators inside the data.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/994>
+
+2021-05-23 13:29:07 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/wavparse/gstwavparse.c:
+ wavparse: clean up adtl/note/labl chunk parsing
+ We were passing the size of the adtl chunk to the note/labl
+ sub-chunk parsing function, which means we may memdup lots of
+ data after the chunk string's NUL terminator that doesn't
+ really belong to it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/994>
+
+2021-05-23 13:24:21 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/wavparse/gstwavparse.c:
+ wavparse: guard against overflow when comparing chunk sizes
+ Could be rewritten as lsize > (size - 8) a well, but the
+ extra check seems clearer. Doesn't look like it was problematic,
+ lsize wasn't actually used when parsing the sub-chunks.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/994>
+
+2021-05-21 13:31:12 -0300 Daniel Almeida <daniel.almeida@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ doc: update gst_plugins_cache.json
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/991>
+
+2021-05-05 13:20:04 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: fix decoder glitches with H264 content
+ To avoid decoder starvation causing glitches on screen,
+ the demuxer shall clip only when the buffer is a key frame
+ and the lace time is greater than the stop time.
+ Fixes gst-editing-services#128
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/973>
+
+2021-05-11 20:41:38 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/qt/gstqtoverlay.cc:
+ qml: don't use buffers that have invalid contents
+ If the GL context is not shareable, ignore it.
+ A future change may also not output the relevant output either.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/983>
+
+2021-05-11 20:38:52 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/qt/gstqsgtexture.cc:
+ qml: also use the dummy texture when no buffer has been set
+ Fixes corrupted texture output when changing OpenGL display/contexts.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/983>
+
+2021-05-11 17:20:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ doc: Update cache for RGBP format addition
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/968>
+
+2021-04-23 14:37:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-ids.c:
+ * gst/matroska/matroska-ids.h:
+ matroskademux: Advertise codec-alpha in caps
+ This will be used to select the appropriate decoders. We also only attach the
+ GstVideoCodecAlphaMeta if the AlphaMode element is set, this is to stay on the
+ safe side and mimic what browsers (verified in Firefox and Chromium code) do.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/968>
+
+2021-03-22 16:58:26 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Store alpha stream in VideoCodecAlphaMeta
+ This generalize the feature over using mini object quark data. If
+ that feature was Matroska specifc, using the new CustomMeta would have
+ been enough and arguably cleaner then QData, though it seems that
+ similar technique is use with AV1 Image Format (AVIF).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/968>
+
+2016-12-03 14:27:57 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroska-demux: extract VP8 alpha from BlockAdditionals
+ And put it on buffers as qdata (which is easier in this
+ case than a private custom meta because it can be picked
+ up easily in other modules).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/968>
+
+2021-05-03 17:39:05 +1000 Matthew Waters <matthew@centricular.com>
+
+ * ext/qt/gstqtglutility.cc:
+ * ext/qt/gstqtglutility.h:
+ * ext/qt/gstqtoverlay.cc:
+ * ext/qt/qtitem.cc:
+ * ext/qt/qtwindow.cc:
+ qt: return a different GstGLDisplay object when the first sink requests
+ This allows the 'replace-gstreamer-opengl-context' context machinery to
+ correctly replace the OpenGL context used by the pipeline when the first
+ qmlglsink is added to the pipeline.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/982>
+
+2021-05-07 11:16:47 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/udp/gstudpsrc.c:
+ udpsrc: Plug leaks of saddr in error cases
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/977>
+
+2021-05-07 11:16:21 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/udp/gstudpsrc.c:
+ udpsrc: Whitespace
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/977>
+
+2021-05-07 00:43:44 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ deinterlace: Plug a method subobject leak
+ Changing the method would leak the previous method.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/976>
+
+2021-05-06 15:04:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * ext/vpx/gstvp9enc.c:
+ vp9enc: Add color range support
+ When setting the colorspace, we now clear the range to reduced range,
+ the default, and then we also set the range so the VP9 encoder encodes
+ the right information in the bitstream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/975>
+
+2021-05-06 14:51:31 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * ext/vpx/gstvp9enc.c:
+ * ext/vpx/gstvpxenc.c:
+ vp9enc: Move colorspace configuration in VP9 enc
+ This is not supported by VP8 and was causing a warning.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/975>
+
+2021-05-06 14:48:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * ext/vpx/gstvp9enc.c:
+ * ext/vpx/gstvpxenc.c:
+ * ext/vpx/gstvpxenc.h:
+ vpxdenc: Add a GstVideoCodecState to configure_encoder virtual
+ This will be needed to configure the VP9 specific colorimetry, which is
+ currently configured for VP8 casing warning.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/975>
+
+2021-05-05 16:48:10 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gtkgstbasewidget.c:
+ gtk: Remove coordinates double-translation
+ Remove our own translation in the mouse event capture code, as that
+ translation will be done through the navigation interface.
+ Tested by resizing the window created by:
+ gst-launch-1.0 -v videotestsrc ! navigationtest ! glupload ! glcolorconvert ! tee name=t ! gtkglsink
+ and checking that the cursor follows the mouse as expected.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/974>
+
+2021-05-05 14:28:15 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gstgtkbasesink.c:
+ gtk: Translate navigation events coordinates
+ If the application passed down some pointer coordinates, translate those
+ from display coordinates to stream coordinates, so things work as
+ expected even if the video is resized.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/974>
+
+2021-05-05 14:24:31 +0200 Bastien Nocera <hadess@hadess.net>
+
+ * ext/gtk/gtkgstbasewidget.c:
+ * ext/gtk/gtkgstbasewidget.h:
+ gtk: Export _display_size_to_stream_size()
+ Export _display_size_to_stream_size() so that GstNavigation implementors
+ can translate from display coordinates to stream coordinates before
+ pushing the events upstream to the DVD source, for example.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/974>
+
+2018-02-26 17:26:41 +0100 David Fernandez <d.fernandezlop@gmail.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/matroska/matroska-mux.c:
+ matroska-mux: Change accepted caps width and height from [16, MAX] to [1, MAX]
+ There are cases where the video size might be less than 16x16.
+ This change allows the Matroska muxer to accept this cases.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/539>
+
+2021-04-20 22:08:23 +0200 François Laignel <fengalin@free.fr>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtsp/gstrtspsrc.c:
+ * tests/check/elements/avimux.c:
+ * tests/check/elements/flvmux.c:
+ * tests/check/elements/interleave.c:
+ * tests/check/elements/qtmux.c:
+ * tests/check/elements/rtpbin.c:
+ * tests/check/elements/rtpcollision.c:
+ * tests/check/elements/rtpmux.c:
+ * tests/check/elements/splitmuxsink.c:
+ * tests/check/elements/videomixer.c:
+ * tests/examples/rtp/client-PCMA.c:
+ * tests/examples/rtp/server-alsasrc-PCMA.c:
+ Use gst_element_request_pad_simple
+ Instead of the deprecated gst_element_get_request_pad.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/958>
+
+2021-04-30 08:12:47 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/isomp4/atoms.c:
+ * gst/isomp4/atoms.h:
+ qtmux: Make sure to write 64-bit STCO table when needed.
+ qtmux attempts to choose between writing a 32-bit stco chunk offset table
+ when it can, but switch to a 64-bit co64 table when file offsets go over
+ 4GB.
+ This patch fixes a problem where the atom handling code was checking
+ mdat-relative offsets instead of the final file offset (computed by
+ adding the mdat position plus the mdat-relative offset) - leading to
+ problems where files with a size between 4GB and 4GB+offset-of-the-mdat
+ would write incorrect STCO tables with some samples having truncated
+ 32-bit offsets.
+ Smaller files write STCO correctly, larger files would switch to
+ co64 and also output correctly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/970>
+
+2021-04-22 15:01:32 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Add interlace-mode back to caps for camera
+ skip_try_fmt_probes is set to TRUE for v4l2src to skip interlace-mode and
+ colorimetry when probe caps. gst_v4l2_object_set_format_full() will add
+ colorimetry back to caps when iterating over the negotiated caps. There is
+ one case that v4l2src is first in preview state then starts recording.
+ v4l2src caps will change with an additional interlace-mode structure after
+ renegotiation, then v4l2src needs to reset. But this camera driver can't
+ orphan buffer pool, it causes require buffer failed as streaming is still
+ in active state.
+ To fix this, also need to add interlace-mode back to caps for camera to
+ avoid reset.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/961>
+
+2021-04-02 18:41:28 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * gst/rtp/gstrtpopuspay.c:
+ * gst/rtp/gstrtpopuspay.h:
+ * tests/check/elements/rtp-payloading.c:
+ rtpopuspay: set MARKER flag
+ Set MARKER flag on first buffer after DTX.
+ According to RFC 3551 section 4.1 the marker bit needs to be set on
+ "the first packet after a silence period during which packets have
+ not been transmitted contiguously".
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/967>
+
+2021-03-31 11:18:30 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtp/gstrtpopuspay.c:
+ * gst/rtp/gstrtpopuspay.h:
+ * tests/check/elements/rtp-payloading.c:
+ rtpopuspay: add DTX support
+ If enabled, the payloader won't transmit empty frames.
+ Can be tested using:
+ opusenc dtx=true bitrate-type=vbr ! rtpopuspay dtx=true
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/967>
+
+2021-04-24 11:15:50 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * ext/taglib/gstid3v2mux.cc:
+ taglib: Update createFrame() to non-deprecated version.
+ ID3v2::FrameFactory::createFrame() versions not taking a Header have
+ been deprecated since v1.5 (Jan 2008).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/965>
+
+2021-04-25 02:16:45 +0200 Havard Graff <havard@pexip.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * tests/check/elements/rtpjitterbuffer.c:
+ rtpjitterbuffer: fix divide-by-zero
+ The estimated packet-duration can sometimes end up as zero, and dividing
+ by that is never a good idea...
+ The test reproduces the scenario, and the fix is easy.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/966>
+
+2020-06-02 19:38:33 +0200 Havard Graff <havard@pexip.com>
+
+ rtpjitterbuffer: clean up and improve missing packets handling
+ * Try to make variable and function names more clear.
+ * Add plenty of comments describing the logic step-by-step.
+ * Improve the logging around this, making the logs easier to read and
+ understand when debugging these issues.
+ * Revise the logic of packets that are actually beyond saving in doing
+ the following:
+ 1. Do an optimistic estimation of which packets can still arrive.
+ 2. Based on this, find which packets (and duration) are now hopelessly
+ lost.
+ 3. Issue an immediate lost-event for the hopelessly lost and then add
+ lost/rtx timers for the ones we still hope to save, meaning that if
+ they are to arrive, they will not be discarded.
+ * Revise the use of rtx-delay:
+ Earlier the rtx-delay would vary, depending on the pts of the latest
+ packet and the estimated pts of the packet it being issued a RTX for,
+ but now that we aim to estimate the PTS of the missing packet accurately,
+ the RTX delay should remain the same for all packets.
+ Meaning: If the packet have a PTS of X, the delay in asked for a RTX
+ for this packet is always a constant X + delay, not a variable one.
+ * Finally ensure that the chaotic "check-for-stall" tests uses timestamps
+ that starts from 0 to make them easier to debug.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/952>
+
+2021-04-23 12:07:52 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * gst/level/gstlevel.c:
+ * gst/level/gstlevel.h:
+ level: make properties thread-safe
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/962>
+
+2021-04-22 14:11:09 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * gst/level/gstlevel.c:
+ level: disable passthrough when audio-level-meta is enabled
+ Ensure we receive a writable buffer to add the meta.
+ Fix #878
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/962>
+
+2021-04-23 08:28:06 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/matroska/matroska-mux.c:
+ matroskamux: Don't pass a non-GObject pointer to GST_DEBUG_OBJECT and similar
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/964>
+
+2021-04-22 08:57:23 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Avoid generation of invalid timestamps
+ When updating timestamps and timer timeouts with a new offset, make sure that
+ the resulting value is valid (and not a negative (signed) value which ends up in
+ a massive (unsigned) value).
+ Fixes #571
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/960>
+
+2021-04-21 18:41:08 +0100 Philippe Normand <philn@igalia.com>
+
+ * sys/v4l2/v4l2_calls.c:
+ v4l2: Fix glib warning emitted when attribute query fails
+ The v4l2object is not a GstObject. Logging has to go through its dbg_obj
+ specially meant for this.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/959>
+
+2021-03-25 13:20:38 +0100 VaL Doroshchuk <valentyn.doroshchuk@qt.io>
+
+ * ext/qt/gstqtoverlay.cc:
+ * tests/examples/qt/qmloverlay/overlay.py:
+ qmloverlay: Use first found GstGLVideoItem as widget property
+ GstGLVideoItem is required to render input video in the overlay's qml.
+ And currently qmlgloverlay requires to set this GstGLVideoItem to its widget property.
+ Instead of fetching GstGLVideoItem from the overlay's root object (root-item prop),
+ and setting it back as a widget (widget prop),
+ proposing to use found GstGLVideoItem in the current object hierarchy (passed in qml-scene) by default.
+ Also useful in Python, which solves the issue when casting gpointer <=> QQuickItem* is required.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/919>
+
+2021-04-19 16:39:03 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * sys/v4l2/gstv4l2.c:
+ v4l2: fix debug category initialisation again
+ Would spew warnings on the rpi4 when calling into
+ gst_v4l2_object_get_codec_caps() from the probe_and_register()
+ function since the v4l2_debug category initialisation would
+ only be done later as part of the element/device provider
+ registration.
+ Also log things in the probe function to the v4l2 category
+ instead of the default category while we're at it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/956>
+
+2021-04-19 01:29:33 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Fix race saving seek event seqnum.
+ We need to save the seek seqnum before the flush stop event
+ since that will start the basesrc task which may send the segment
+ event before we're ready.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/954>
+
+2021-03-31 10:52:14 +0200 Marco Felsch <m.felsch@pengutronix.de>
+
+ * ext/qt/qtitem.cc:
+ * ext/qt/qtitem.h:
+ qmlglsink: allow to set force-aspect-ratio property
+ Add the forceAspectRatio Q_PROPERTY to allow changing the aspect ratio
+ from QML code as well.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/937>
+
+2021-04-19 11:14:00 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * sys/v4l2/v4l2_calls.c:
+ v4l2src: fix spurious SOURCE_CHANGED error-level log messages
+ They're harmless, and some drivers at least return EINVAL
+ instead of ENOTTY for unsupported events (here: uvcvideo).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/955>
+
+2021-04-14 16:32:06 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * gst/rtp/gstrtpsbcpay.c:
+ rtpsbcpay: remove use of packed struct for payload
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/950>
+
+2021-04-14 11:13:45 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * gst/dtmf/gstdtmfcommon.h:
+ * gst/dtmf/gstrtpdtmfdepay.c:
+ * gst/dtmf/gstrtpdtmfsrc.c:
+ dtmf: convert to bit accessors
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/949>
+
+2021-04-13 09:23:12 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Remove some dead code
+ stop is not used after this point, nor do we create a new segment
+ here since 84725d62b57bc74ce34abde755f35bf8f948f94d
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/940>
+
+2021-04-10 02:53:51 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Do not overwrite the known duration after a seek
+ This breaks the duration query and also the seeking query.
+ Broke in 5f1a732bc7b76a6f1b8aa5f26b6e76fbca0261c7
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/940>
+
+2021-04-10 04:40:46 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Just assign the segment instead of memcpy
+ Assignments copy by value, we don't need to memcpy...
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/940>
+
+2021-04-13 11:30:51 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Check srcresult before waiting on the condition variable too
+ It might've been set to FLUSHING between the last check and the waiting,
+ and in that case we'd be waiting here forever now.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/944>
+
+2021-04-12 23:15:17 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * tests/check/elements/rtpsession.c:
+ rtp: fix test_twcc_header_and_run to support big endian.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/942>
+
+2021-04-12 23:13:15 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * gst/rtpmanager/rtptwcc.c:
+ rtp: fix rtptwcc to support big endian.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/942>
+
+2021-04-12 21:59:45 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+ rtp: fix rtphdrextrfc6464 to support big endian.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/942>
+
+2021-04-12 21:36:58 -0400 Doug Nazar <nazard@nazar.ca>
+
+ * tests/check/elements/alpha.c:
+ tests: Fix alpha test on big endian machines.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/943>
+
+2021-03-19 02:51:20 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstqtmux.h:
+ qtmux: Protect against writing absurd sample durations
+ If the input DTS goes backward or is missing, the calculated
+ sample duration goes negative and wraps around to a very big
+ number. In that case, just write a sample with a duration of
+ 0 and hope the problem is transient.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/914>
+
+2021-04-10 03:09:44 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: De-dup seek event seqnums to avoid multiple seeks
+ Seek events are sent upstream on each sink, so if we receive multiple
+ seeks with the same seqnum, we must only perform one seek, not N seeks
+ where N = the number of sinks in the pipeline connected to rtspsrc.
+ This is the same thing done by demuxers like qtdemux or matrsokademux.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/938>
+
+2021-04-10 01:55:28 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Using multicast UDP has no relation to seekability
+ The transport has no relation to whether a media can be seeked. The
+ range response having a duration is the correct thing to check for.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/939>
+
+2021-04-10 01:54:48 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Add more logging for range parsing and seekable
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/939>
+
+2021-04-10 14:47:23 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ videocrop: Update documentation cache
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/515>
+
+2021-04-07 21:57:11 +0200 Markus Ebner <info@ebner-markus.de>
+
+ * gst/videocrop/gstvideocrop-private.h:
+ * gst/videocrop/gstvideocrop.c:
+ * gst/videocrop/gstvideocrop.h:
+ videocrop: Add support for GBR* video formats
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/515>
+
+2021-04-07 18:54:49 +0200 Markus Ebner <info@ebner-markus.de>
+
+ * gst/videocrop/gstvideocrop-private.h:
+ * gst/videocrop/gstvideocrop.c:
+ * gst/videocrop/gstvideocrop.h:
+ videocrop: Added support for planar pixel formats > 8bits
+ - Added support for planar pixel formats with depths greater than 8bits
+ to transform_planar implementation
+ - Added a whole lot of new pixel formats to the support-list
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/515>
+
+2021-04-07 17:52:34 +0200 Markus Ebner <info@ebner-markus.de>
+
+ * gst/videocrop/gstaspectratiocrop.c:
+ * gst/videocrop/gstvideocrop-private.h:
+ * gst/videocrop/gstvideocrop.c:
+ videocrop: Move supported format list into private header
+ - Moved declaration of supported pixel formats to private header, which
+ can be shared between videocrop and aspectvideocrop
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/515>
+
+2021-04-06 17:02:34 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtpmanager/rtpjitterbuffer.c:
+ rtpjitterbuffer: More logging when calculating rfc7273 timestamps
+ This code can be fragile, since it is very exacting in the timestamps
+ that it will accept. Add more logging so it's easier to debug issues
+ and figure out whether it's a bug in the calculation or something
+ wrong in the incoming buffers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/934>
+
+2021-04-08 13:29:10 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/rtp/gstrtph264depay.c:
+ * gst/rtp/gstrtph265depay.c:
+ * gst/rtp/gstrtpsv3vdepay.c:
+ rtp: missing debug init after element splitting
+ - h264depay
+ - h265depay
+ - sv3vdepay
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/936>
+
+2020-03-30 09:29:07 +0200 Michal Dzik <michal.dzik@streamunlimited.com>
+
+ * gst/rtp/gstrtpsbcpay.c:
+ rtp: rename gst_rtp_sbc_pay_flush_buffers()
+ gst_rtp_sbc_pay_flush_buffers() is a misleading name. A better name would
+ be gst_rtp_sbc_pay_drain_buffers(), because that's what it does, it drains
+ any leftover queued data and pushes it downstream. "Flushing" in GStreamer
+ typically means to throw away any queued data and not process/push it
+ downstream.
+ Signed-off-by: Michal Dzik <michal.dzik@streamunlimited.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/700>
+
+2020-03-24 13:31:00 +0100 Michal Dzik <michal.dzik@streamunlimited.com>
+
+ * gst/rtp/gstrtpsbcpay.c:
+ rtp: fix adapter flushing in sbc payloader
+ GstAdapter must be flushed in some cases (flush, new segment, state change)
+ Without it, it may, for example, push some leftover buffer from old
+ segment in new segment. This, in general, breaks timestamps.
+ See GstAdapter documentation for more.
+ Signed-off-by: Michal Dzik <michal.dzik@streamunlimited.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/700>
+
+2020-08-18 20:16:06 +0200 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/vpx/gstvpxenc.c:
+ vpxenc: add colorspace information into VP9 bitstream
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/871>
+
+2021-03-26 16:26:22 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Use default colorimetry if that in caps is unknown
+ Some streams have unknown colorimetry in caps, but v4l2object sets
+ default values for each primaries. It will cause check colorimetry
+ fail when do gst_v4l2_video_colorimetry_matches().
+ To fix this, need to keep the unknown colorimetry in caps same as
+ the default value set by v4l2object.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/923>
+
+2021-03-31 16:37:56 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Take segment stop into account when need_segment
+ Otherwise, in the case of e.g. a deferred seek event, the segment stop
+ would be replaced with GST_CLOCK_TIME_NONE.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/929>
+
+2021-03-29 16:45:26 +0200 Val Doroshchuk <val@sevendof.com>
+
+ * ext/qt/gstqtoverlay.cc:
+ * ext/qt/gstqtoverlay.h:
+ gstqtoverlay: Add initialization and finalization to qml-scene prop
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/924>
+
+2021-03-31 10:21:59 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/qt/gstqtglutility.h:
+ qt: fix build warning with clang and c-linkage of user defined type
+ In file included from ../subprojects/gst-plugins-good/ext/qt/qtglrenderer.cc:17:
+ ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:35:16: error: 'qt_opengl_native_context_from_gst_gl_context' has C-linkage specified, but returns user-defined type 'QVariant' which is incompatible with C [-Werror,-Wreturn-type-c-linkage]
+ QVariant qt_opengl_native_context_from_gst_gl_context (GstGLContext * context);
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/928>
+
+2021-03-30 09:45:45 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/qt/gstqtelement.cc:
+ * ext/qt/gstqtelements.h:
+ * ext/qt/gstqtoverlay.cc:
+ * ext/qt/gstqtsink.cc:
+ * ext/qt/gstqtsrc.cc:
+ qt: hotfix: allow per feature registration
+ Fixes #869
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/925>
+
+2021-02-17 08:52:40 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/twolame/gsttwolamemp2enc.c:
+ * ext/twolame/gsttwolamemp2enc.h:
+ twolame: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:49:03 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/shout2/gstshout2.c:
+ * ext/shout2/gstshout2.h:
+ shout2: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:38:46 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/cairo/gstcairo.c:
+ * ext/cairo/gstcairooverlay.c:
+ * ext/cairo/gstcairooverlay.h:
+ cairo: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:34:34 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/y4m/gsty4mencode.c:
+ * gst/y4m/gsty4mencode.h:
+ y4m: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:32:26 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/wavparse/gstwavparse.c:
+ * gst/wavparse/gstwavparse.h:
+ wavparse: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:29:40 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/wavenc/gstwavenc.c:
+ * gst/wavenc/gstwavenc.h:
+ wavenc: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:27:24 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/spectrum/gstspectrum.c:
+ * gst/spectrum/gstspectrum.h:
+ spectrum: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:27:12 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/monoscope/gstmonoscope.c:
+ * gst/monoscope/gstmonoscope.h:
+ monoscope: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:22:47 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/imagefreeze/gstimagefreeze.c:
+ * gst/imagefreeze/gstimagefreeze.h:
+ imagefreeze: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:19:52 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/id3demux/gstid3demux.c:
+ * gst/id3demux/gstid3demux.h:
+ id3demux: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:16:33 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/icydemux/gsticydemux.c:
+ * gst/icydemux/gsticydemux.h:
+ icydemux: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:14:26 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/goom2k1/gstgoom.c:
+ * gst/goom2k1/gstgoom.h:
+ goom2k1: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:11:26 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/cutter/gstcutter.c:
+ * gst/cutter/gstcutter.h:
+ cutter: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:11:14 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/goom/gstgoom.c:
+ * gst/goom/gstgoom.h:
+ goom: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:10:33 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ * gst/deinterlace/gstdeinterlace.h:
+ deinterlace: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 16:34:48 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * sys/oss4/gstoss4audioplugin.c:
+ * sys/oss4/meson.build:
+ * sys/oss4/oss4-audio.c:
+ * sys/oss4/oss4-audio.h:
+ * sys/oss4/oss4-sink.c:
+ * sys/oss4/oss4-sink.h:
+ * sys/oss4/oss4-source.c:
+ * sys/oss4/oss4-source.h:
+ oss4: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 16:11:36 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * sys/oss/gstossaudio.c:
+ * sys/oss/gstossaudioelement.c:
+ * sys/oss/gstossaudioelements.h:
+ * sys/oss/gstosssink.c:
+ * sys/oss/gstosssrc.c:
+ * sys/oss/meson.build:
+ oss: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 15:56:35 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/auparse/gstauparse.c:
+ * gst/auparse/gstauparse.h:
+ auparse: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 15:29:06 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * sys/v4l2/gstv4l2.c:
+ * sys/v4l2/gstv4l2deviceprovider.c:
+ * sys/v4l2/gstv4l2element.c:
+ * sys/v4l2/gstv4l2elements.h:
+ * sys/v4l2/gstv4l2radio.c:
+ * sys/v4l2/gstv4l2sink.c:
+ * sys/v4l2/gstv4l2src.c:
+ * sys/v4l2/meson.build:
+ v4l2: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 15:05:43 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/videofilter/gstgamma.c:
+ * gst/videofilter/gstgamma.h:
+ * gst/videofilter/gstvideobalance.c:
+ * gst/videofilter/gstvideobalance.h:
+ * gst/videofilter/gstvideoflip.c:
+ * gst/videofilter/gstvideoflip.h:
+ * gst/videofilter/gstvideomedian.c:
+ * gst/videofilter/gstvideomedian.h:
+ * gst/videofilter/plugin.c:
+ videofilter: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:58:57 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/videocrop/gstaspectratiocrop.c:
+ * gst/videocrop/gstvideocrop.c:
+ * gst/videocrop/gstvideocropelement.c:
+ * gst/videocrop/gstvideocropelements.h:
+ * gst/videocrop/gstvideocropplugin.c:
+ * gst/videocrop/meson.build:
+ videocrop: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:54:15 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/videobox/gstvideobox.c:
+ * gst/videobox/gstvideobox.h:
+ videobox: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:49:56 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/udp/gstdynudpsink.c:
+ * gst/udp/gstmultiudpsink.c:
+ * gst/udp/gstudp.c:
+ * gst/udp/gstudpelement.c:
+ * gst/udp/gstudpelements.h:
+ * gst/udp/gstudpsink.c:
+ * gst/udp/gstudpsrc.c:
+ * gst/udp/meson.build:
+ udp: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:43:32 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/smpte/gstsmpte.c:
+ * gst/smpte/gstsmpte.h:
+ * gst/smpte/gstsmptealpha.c:
+ * gst/smpte/gstsmptealpha.h:
+ * gst/smpte/plugin.c:
+ smpte: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:38:37 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/shapewipe/gstshapewipe.c:
+ * gst/shapewipe/gstshapewipe.h:
+ shapewipe: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:35:51 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/rtsp/gstrtpdec.c:
+ * gst/rtsp/gstrtsp.c:
+ * gst/rtsp/gstrtspelement.c:
+ * gst/rtsp/gstrtspelements.h:
+ * gst/rtsp/gstrtspsrc.c:
+ * gst/rtsp/meson.build:
+ rtsp: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:24:33 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpbin.h:
+ * gst/rtpmanager/gstrtpdtmfmux.c:
+ * gst/rtpmanager/gstrtpdtmfmux.h:
+ * gst/rtpmanager/gstrtpfunnel.c:
+ * gst/rtpmanager/gstrtpfunnel.h:
+ * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+ * gst/rtpmanager/gstrtphdrext-rfc6464.h:
+ * gst/rtpmanager/gstrtphdrext-twcc.c:
+ * gst/rtpmanager/gstrtphdrext-twcc.h:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * gst/rtpmanager/gstrtpjitterbuffer.h:
+ * gst/rtpmanager/gstrtpmanager.c:
+ * gst/rtpmanager/gstrtpmux.c:
+ * gst/rtpmanager/gstrtpmux.h:
+ * gst/rtpmanager/gstrtpptdemux.c:
+ * gst/rtpmanager/gstrtpptdemux.h:
+ * gst/rtpmanager/gstrtprtxqueue.c:
+ * gst/rtpmanager/gstrtprtxqueue.h:
+ * gst/rtpmanager/gstrtprtxreceive.c:
+ * gst/rtpmanager/gstrtprtxreceive.h:
+ * gst/rtpmanager/gstrtprtxsend.c:
+ * gst/rtpmanager/gstrtprtxsend.h:
+ * gst/rtpmanager/gstrtpsession.c:
+ * gst/rtpmanager/gstrtpsession.h:
+ * gst/rtpmanager/gstrtpssrcdemux.c:
+ * gst/rtpmanager/gstrtpssrcdemux.h:
+ * gst/rtpmanager/gstrtpst2022-1-fecdec.c:
+ * gst/rtpmanager/gstrtpst2022-1-fecdec.h:
+ * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+ * gst/rtpmanager/gstrtpst2022-1-fecenc.h:
+ rtpmanager: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 13:49:15 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/replaygain/gstrganalysis.c:
+ * gst/replaygain/gstrglimiter.c:
+ * gst/replaygain/gstrglimiter.h:
+ * gst/replaygain/gstrgvolume.c:
+ * gst/replaygain/gstrgvolume.h:
+ * gst/replaygain/replaygain.c:
+ * gst/replaygain/rganalysis.h:
+ replaygain: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 13:43:44 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/multipart/multipart.c:
+ * gst/multipart/multipartdemux.c:
+ * gst/multipart/multipartdemux.h:
+ * gst/multipart/multipartmux.c:
+ * gst/multipart/multipartmux.h:
+ multipart: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 12:04:26 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/multifile/gstimagesequencesrc.c:
+ * gst/multifile/gstimagesequencesrc.h:
+ * gst/multifile/gstmultifile.c:
+ * gst/multifile/gstmultifilesink.c:
+ * gst/multifile/gstmultifilesink.h:
+ * gst/multifile/gstmultifilesrc.c:
+ * gst/multifile/gstmultifilesrc.h:
+ * gst/multifile/gstsplitfilesrc.c:
+ * gst/multifile/gstsplitfilesrc.h:
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ * gst/multifile/gstsplitmuxsrc.c:
+ * gst/multifile/gstsplitmuxsrc.h:
+ multifile: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 11:14:17 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/matroska/gstmatroskaelement.c:
+ * gst/matroska/gstmatroskaelements.h:
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-demux.h:
+ * gst/matroska/matroska-mux.c:
+ * gst/matroska/matroska-parse.c:
+ * gst/matroska/matroska-parse.h:
+ * gst/matroska/matroska.c:
+ * gst/matroska/meson.build:
+ * gst/matroska/webm-mux.c:
+ matroska: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 10:59:34 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/level/gstlevel.c:
+ * gst/level/gstlevel.h:
+ level: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 10:57:58 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/law/alaw-decode.c:
+ * gst/law/alaw-decode.h:
+ * gst/law/alaw-encode.c:
+ * gst/law/alaw-encode.h:
+ * gst/law/alaw.c:
+ * gst/law/mulaw-decode.c:
+ * gst/law/mulaw-decode.h:
+ * gst/law/mulaw-encode.c:
+ * gst/law/mulaw-encode.h:
+ * gst/law/mulaw.c:
+ law: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 10:26:40 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/isomp4/gstisomp4element.c:
+ * gst/isomp4/gstisomp4elements.h:
+ * gst/isomp4/gstqtmoovrecover.c:
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstrtpxqtdepay.c:
+ * gst/isomp4/isomp4-plugin.c:
+ * gst/isomp4/meson.build:
+ * gst/isomp4/qtdemux.c:
+ isomp4: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 09:57:27 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/interleave/deinterleave.c:
+ * gst/interleave/gstinterleaveelements.h:
+ * gst/interleave/interleave.c:
+ * gst/interleave/plugin.c:
+ interleave: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 09:51:16 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/flx/gstflxdec.c:
+ * gst/flx/gstflxdec.h:
+ flx: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 17:37:09 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/flv/gstflvdemux.c:
+ * gst/flv/gstflvelement.c:
+ * gst/flv/gstflvelements.h:
+ * gst/flv/gstflvmux.c:
+ * gst/flv/gstflvplugin.c:
+ * gst/flv/meson.build:
+ flv: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 17:27:51 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/equalizer/gstiirequalizer.c:
+ * gst/equalizer/gstiirequalizer.h:
+ * gst/equalizer/gstiirequalizer10bands.c:
+ * gst/equalizer/gstiirequalizer3bands.c:
+ * gst/equalizer/gstiirequalizernbands.c:
+ * gst/equalizer/gstiirequalizerplugin.c:
+ * gst/equalizer/meson.build:
+ equalizer: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 15:37:52 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/effectv/gstaging.c:
+ * gst/effectv/gstdice.c:
+ * gst/effectv/gstedge.c:
+ * gst/effectv/gsteffectv.c:
+ * gst/effectv/gsteffectv.h:
+ * gst/effectv/gstop.c:
+ * gst/effectv/gstquark.c:
+ * gst/effectv/gstradioac.c:
+ * gst/effectv/gstrev.c:
+ * gst/effectv/gstripple.c:
+ * gst/effectv/gstshagadelic.c:
+ * gst/effectv/gststreak.c:
+ * gst/effectv/gstvertigo.c:
+ * gst/effectv/gstwarp.c:
+ effectv: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 15:03:10 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/dtmf/gstdtmf.c:
+ * gst/dtmf/gstdtmfsrc.c:
+ * gst/dtmf/gstdtmfsrc.h:
+ * gst/dtmf/gstrtpdtmfdepay.c:
+ * gst/dtmf/gstrtpdtmfdepay.h:
+ * gst/dtmf/gstrtpdtmfsrc.c:
+ * gst/dtmf/gstrtpdtmfsrc.h:
+ dtmf: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 14:55:15 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/debugutils/breakmydata.c:
+ * gst/debugutils/cpureport.c:
+ * gst/debugutils/gstcapsdebug.c:
+ * gst/debugutils/gstcapssetter.c:
+ * gst/debugutils/gstdebug.c:
+ * gst/debugutils/gstdebugutilselements.h:
+ * gst/debugutils/gstnavigationtest.c:
+ * gst/debugutils/gstnavigationtest.h:
+ * gst/debugutils/gstnavseek.c:
+ * gst/debugutils/gstpushfilesrc.c:
+ * gst/debugutils/gsttaginject.c:
+ * gst/debugutils/progressreport.c:
+ * gst/debugutils/rndbuffersize.c:
+ * gst/debugutils/testplugin.c:
+ debugutils: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 13:38:21 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/avi/gstavi.c:
+ * gst/avi/gstavidemux.c:
+ * gst/avi/gstavielement.c:
+ * gst/avi/gstavielements.h:
+ * gst/avi/gstavimux.c:
+ * gst/avi/gstavisubtitle.c:
+ * gst/avi/meson.build:
+ avi: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 13:02:59 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/autodetect/gstautoaudiosink.c:
+ * gst/autodetect/gstautoaudiosrc.c:
+ * gst/autodetect/gstautodetect.c:
+ * gst/autodetect/gstautodetect.h:
+ * gst/autodetect/gstautodetectelement.c:
+ * gst/autodetect/gstautodetectelements.h:
+ * gst/autodetect/gstautodetectplugin.c:
+ * gst/autodetect/gstautovideosink.c:
+ * gst/autodetect/gstautovideosrc.c:
+ * gst/autodetect/meson.build:
+ autodetect: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 13:00:38 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/audioparsers/gstaacparse.c:
+ * gst/audioparsers/gstac3parse.c:
+ * gst/audioparsers/gstamrparse.c:
+ * gst/audioparsers/gstaudioparserselements.h:
+ * gst/audioparsers/gstdcaparse.c:
+ * gst/audioparsers/gstflacparse.c:
+ * gst/audioparsers/gstmpegaudioparse.c:
+ * gst/audioparsers/gstsbcparse.c:
+ * gst/audioparsers/gstwavpackparse.c:
+ * gst/audioparsers/plugin.c:
+ audioparsers: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 12:44:31 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/apetag/gstapedemux.c:
+ * gst/apetag/gstapedemux.h:
+ apetag: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 11:00:46 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/vpx/gstvp8dec.c:
+ * ext/vpx/gstvp8enc.c:
+ * ext/vpx/gstvp9dec.c:
+ * ext/vpx/gstvp9enc.c:
+ * ext/vpx/gstvpxelement.c:
+ * ext/vpx/gstvpxelements.h:
+ * ext/vpx/meson.build:
+ * ext/vpx/plugin.c:
+ vpx: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 17:26:36 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/taglib/gstapev2mux.cc:
+ * ext/taglib/gstid3v2mux.cc:
+ * ext/taglib/gsttaglibelement.c:
+ * ext/taglib/gsttaglibelements.h:
+ * ext/taglib/gsttaglibplugin.c:
+ * ext/taglib/meson.build:
+ taglib: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 17:09:19 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/qt/gstplugin.cc:
+ * ext/qt/gstqtelement.cc:
+ * ext/qt/gstqtelements.h:
+ * ext/qt/gstqtoverlay.cc:
+ * ext/qt/gstqtsink.cc:
+ * ext/qt/gstqtsrc.cc:
+ * ext/qt/meson.build:
+ * ext/qt/qtplugin.pro:
+ qt: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 16:09:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/speex/gstspeex.c:
+ * ext/speex/gstspeexdec.c:
+ * ext/speex/gstspeexelement.c:
+ * ext/speex/gstspeexelements.h:
+ * ext/speex/gstspeexenc.c:
+ * ext/speex/meson.build:
+ speex: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 16:04:16 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/soup/gstsoup.c:
+ * ext/soup/gstsoupelement.c:
+ * ext/soup/gstsoupelements.h:
+ * ext/soup/gstsouphttpclientsink.c:
+ * ext/soup/gstsouphttpsrc.c:
+ * ext/soup/meson.build:
+ soup: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 15:53:19 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/raw1394/gst1394.c:
+ * ext/raw1394/gstdv1394src.c:
+ * ext/raw1394/gstdv1394src.h:
+ * ext/raw1394/gsthdv1394src.c:
+ * ext/raw1394/gsthdv1394src.h:
+ raw1394: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 15:47:46 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/wavpack/gstwavpack.c:
+ * ext/wavpack/gstwavpackdec.c:
+ * ext/wavpack/gstwavpackelement.c:
+ * ext/wavpack/gstwavpackelements.h:
+ * ext/wavpack/gstwavpackenc.c:
+ * ext/wavpack/meson.build:
+ wavpack: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 15:35:11 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/alpha/gstalpha.c:
+ * gst/alpha/gstalpha.h:
+ alpha: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 15:27:31 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/audiofx/audioamplify.c:
+ * gst/audiofx/audioamplify.h:
+ * gst/audiofx/audiochebband.c:
+ * gst/audiofx/audiochebband.h:
+ * gst/audiofx/audiocheblimit.c:
+ * gst/audiofx/audiocheblimit.h:
+ * gst/audiofx/audiodynamic.c:
+ * gst/audiofx/audiodynamic.h:
+ * gst/audiofx/audioecho.c:
+ * gst/audiofx/audioecho.h:
+ * gst/audiofx/audiofirfilter.c:
+ * gst/audiofx/audiofirfilter.h:
+ * gst/audiofx/audiofx.c:
+ * gst/audiofx/audioiirfilter.c:
+ * gst/audiofx/audioiirfilter.h:
+ * gst/audiofx/audioinvert.c:
+ * gst/audiofx/audioinvert.h:
+ * gst/audiofx/audiokaraoke.c:
+ * gst/audiofx/audiokaraoke.h:
+ * gst/audiofx/audiopanorama.c:
+ * gst/audiofx/audiopanorama.h:
+ * gst/audiofx/audiowsincband.c:
+ * gst/audiofx/audiowsincband.h:
+ * gst/audiofx/audiowsinclimit.c:
+ * gst/audiofx/audiowsinclimit.h:
+ * gst/audiofx/gstscaletempo.c:
+ * gst/audiofx/gstscaletempo.h:
+ * gst/audiofx/gststereo.c:
+ * gst/audiofx/gststereo.h:
+ audiofx: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 13:16:28 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/rtp/gstasteriskh263.c:
+ * gst/rtp/gstasteriskh263.h:
+ * gst/rtp/gstrtp.c:
+ * gst/rtp/gstrtpL16depay.c:
+ * gst/rtp/gstrtpL16depay.h:
+ * gst/rtp/gstrtpL16pay.c:
+ * gst/rtp/gstrtpL16pay.h:
+ * gst/rtp/gstrtpL24depay.c:
+ * gst/rtp/gstrtpL24depay.h:
+ * gst/rtp/gstrtpL24pay.c:
+ * gst/rtp/gstrtpL24pay.h:
+ * gst/rtp/gstrtpL8depay.c:
+ * gst/rtp/gstrtpL8depay.h:
+ * gst/rtp/gstrtpL8pay.c:
+ * gst/rtp/gstrtpL8pay.h:
+ * gst/rtp/gstrtpac3depay.c:
+ * gst/rtp/gstrtpac3depay.h:
+ * gst/rtp/gstrtpac3pay.c:
+ * gst/rtp/gstrtpac3pay.h:
+ * gst/rtp/gstrtpamrdepay.c:
+ * gst/rtp/gstrtpamrdepay.h:
+ * gst/rtp/gstrtpamrpay.c:
+ * gst/rtp/gstrtpamrpay.h:
+ * gst/rtp/gstrtpbvdepay.c:
+ * gst/rtp/gstrtpbvdepay.h:
+ * gst/rtp/gstrtpbvpay.c:
+ * gst/rtp/gstrtpbvpay.h:
+ * gst/rtp/gstrtpceltdepay.c:
+ * gst/rtp/gstrtpceltdepay.h:
+ * gst/rtp/gstrtpceltpay.c:
+ * gst/rtp/gstrtpceltpay.h:
+ * gst/rtp/gstrtpdvdepay.c:
+ * gst/rtp/gstrtpdvdepay.h:
+ * gst/rtp/gstrtpdvpay.c:
+ * gst/rtp/gstrtpdvpay.h:
+ * gst/rtp/gstrtpelement.c:
+ * gst/rtp/gstrtpelements.h:
+ * gst/rtp/gstrtpg722depay.c:
+ * gst/rtp/gstrtpg722depay.h:
+ * gst/rtp/gstrtpg722pay.c:
+ * gst/rtp/gstrtpg722pay.h:
+ * gst/rtp/gstrtpg723depay.c:
+ * gst/rtp/gstrtpg723depay.h:
+ * gst/rtp/gstrtpg723pay.c:
+ * gst/rtp/gstrtpg723pay.h:
+ * gst/rtp/gstrtpg726depay.c:
+ * gst/rtp/gstrtpg726depay.h:
+ * gst/rtp/gstrtpg726pay.c:
+ * gst/rtp/gstrtpg726pay.h:
+ * gst/rtp/gstrtpg729depay.c:
+ * gst/rtp/gstrtpg729depay.h:
+ * gst/rtp/gstrtpg729pay.c:
+ * gst/rtp/gstrtpg729pay.h:
+ * gst/rtp/gstrtpgsmdepay.c:
+ * gst/rtp/gstrtpgsmdepay.h:
+ * gst/rtp/gstrtpgsmpay.c:
+ * gst/rtp/gstrtpgsmpay.h:
+ * gst/rtp/gstrtpgstdepay.c:
+ * gst/rtp/gstrtpgstdepay.h:
+ * gst/rtp/gstrtpgstpay.c:
+ * gst/rtp/gstrtpgstpay.h:
+ * gst/rtp/gstrtph261depay.c:
+ * gst/rtp/gstrtph261depay.h:
+ * gst/rtp/gstrtph261pay.c:
+ * gst/rtp/gstrtph261pay.h:
+ * gst/rtp/gstrtph263depay.c:
+ * gst/rtp/gstrtph263depay.h:
+ * gst/rtp/gstrtph263pay.c:
+ * gst/rtp/gstrtph263pay.h:
+ * gst/rtp/gstrtph263pdepay.c:
+ * gst/rtp/gstrtph263pdepay.h:
+ * gst/rtp/gstrtph263ppay.c:
+ * gst/rtp/gstrtph263ppay.h:
+ * gst/rtp/gstrtph264depay.c:
+ * gst/rtp/gstrtph264depay.h:
+ * gst/rtp/gstrtph264pay.c:
+ * gst/rtp/gstrtph264pay.h:
+ * gst/rtp/gstrtph265depay.c:
+ * gst/rtp/gstrtph265depay.h:
+ * gst/rtp/gstrtph265pay.c:
+ * gst/rtp/gstrtph265pay.h:
+ * gst/rtp/gstrtpilbcdepay.c:
+ * gst/rtp/gstrtpilbcdepay.h:
+ * gst/rtp/gstrtpilbcpay.c:
+ * gst/rtp/gstrtpilbcpay.h:
+ * gst/rtp/gstrtpisacdepay.c:
+ * gst/rtp/gstrtpisacdepay.h:
+ * gst/rtp/gstrtpisacpay.c:
+ * gst/rtp/gstrtpisacpay.h:
+ * gst/rtp/gstrtpj2kdepay.c:
+ * gst/rtp/gstrtpj2kdepay.h:
+ * gst/rtp/gstrtpj2kpay.c:
+ * gst/rtp/gstrtpj2kpay.h:
+ * gst/rtp/gstrtpjpegdepay.c:
+ * gst/rtp/gstrtpjpegdepay.h:
+ * gst/rtp/gstrtpjpegpay.c:
+ * gst/rtp/gstrtpjpegpay.h:
+ * gst/rtp/gstrtpklvdepay.c:
+ * gst/rtp/gstrtpklvdepay.h:
+ * gst/rtp/gstrtpklvpay.c:
+ * gst/rtp/gstrtpklvpay.h:
+ * gst/rtp/gstrtpldacpay.c:
+ * gst/rtp/gstrtpmp1sdepay.c:
+ * gst/rtp/gstrtpmp1sdepay.h:
+ * gst/rtp/gstrtpmp2tdepay.c:
+ * gst/rtp/gstrtpmp2tdepay.h:
+ * gst/rtp/gstrtpmp2tpay.c:
+ * gst/rtp/gstrtpmp2tpay.h:
+ * gst/rtp/gstrtpmp4adepay.c:
+ * gst/rtp/gstrtpmp4adepay.h:
+ * gst/rtp/gstrtpmp4apay.c:
+ * gst/rtp/gstrtpmp4apay.h:
+ * gst/rtp/gstrtpmp4gdepay.c:
+ * gst/rtp/gstrtpmp4gdepay.h:
+ * gst/rtp/gstrtpmp4gpay.c:
+ * gst/rtp/gstrtpmp4gpay.h:
+ * gst/rtp/gstrtpmp4vdepay.c:
+ * gst/rtp/gstrtpmp4vdepay.h:
+ * gst/rtp/gstrtpmp4vpay.c:
+ * gst/rtp/gstrtpmp4vpay.h:
+ * gst/rtp/gstrtpmpadepay.c:
+ * gst/rtp/gstrtpmpadepay.h:
+ * gst/rtp/gstrtpmpapay.c:
+ * gst/rtp/gstrtpmpapay.h:
+ * gst/rtp/gstrtpmparobustdepay.c:
+ * gst/rtp/gstrtpmparobustdepay.h:
+ * gst/rtp/gstrtpmpvdepay.c:
+ * gst/rtp/gstrtpmpvdepay.h:
+ * gst/rtp/gstrtpmpvpay.c:
+ * gst/rtp/gstrtpmpvpay.h:
+ * gst/rtp/gstrtpopusdepay.c:
+ * gst/rtp/gstrtpopusdepay.h:
+ * gst/rtp/gstrtpopuspay.c:
+ * gst/rtp/gstrtpopuspay.h:
+ * gst/rtp/gstrtppcmadepay.c:
+ * gst/rtp/gstrtppcmadepay.h:
+ * gst/rtp/gstrtppcmapay.c:
+ * gst/rtp/gstrtppcmapay.h:
+ * gst/rtp/gstrtppcmudepay.c:
+ * gst/rtp/gstrtppcmudepay.h:
+ * gst/rtp/gstrtppcmupay.c:
+ * gst/rtp/gstrtppcmupay.h:
+ * gst/rtp/gstrtpqcelpdepay.c:
+ * gst/rtp/gstrtpqcelpdepay.h:
+ * gst/rtp/gstrtpqdmdepay.c:
+ * gst/rtp/gstrtpqdmdepay.h:
+ * gst/rtp/gstrtpreddec.c:
+ * gst/rtp/gstrtpredenc.c:
+ * gst/rtp/gstrtpsbcdepay.c:
+ * gst/rtp/gstrtpsbcdepay.h:
+ * gst/rtp/gstrtpsbcpay.c:
+ * gst/rtp/gstrtpsbcpay.h:
+ * gst/rtp/gstrtpsirendepay.c:
+ * gst/rtp/gstrtpsirendepay.h:
+ * gst/rtp/gstrtpsirenpay.c:
+ * gst/rtp/gstrtpsirenpay.h:
+ * gst/rtp/gstrtpspeexdepay.c:
+ * gst/rtp/gstrtpspeexdepay.h:
+ * gst/rtp/gstrtpspeexpay.c:
+ * gst/rtp/gstrtpspeexpay.h:
+ * gst/rtp/gstrtpstorage.c:
+ * gst/rtp/gstrtpstreamdepay.c:
+ * gst/rtp/gstrtpstreamdepay.h:
+ * gst/rtp/gstrtpstreampay.c:
+ * gst/rtp/gstrtpstreampay.h:
+ * gst/rtp/gstrtpsv3vdepay.c:
+ * gst/rtp/gstrtpsv3vdepay.h:
+ * gst/rtp/gstrtptheoradepay.c:
+ * gst/rtp/gstrtptheoradepay.h:
+ * gst/rtp/gstrtptheorapay.c:
+ * gst/rtp/gstrtptheorapay.h:
+ * gst/rtp/gstrtpulpfecdec.c:
+ * gst/rtp/gstrtpulpfecenc.c:
+ * gst/rtp/gstrtpvorbisdepay.c:
+ * gst/rtp/gstrtpvorbisdepay.h:
+ * gst/rtp/gstrtpvorbispay.c:
+ * gst/rtp/gstrtpvorbispay.h:
+ * gst/rtp/gstrtpvp8depay.c:
+ * gst/rtp/gstrtpvp8depay.h:
+ * gst/rtp/gstrtpvp8pay.c:
+ * gst/rtp/gstrtpvp8pay.h:
+ * gst/rtp/gstrtpvp9depay.c:
+ * gst/rtp/gstrtpvp9depay.h:
+ * gst/rtp/gstrtpvp9pay.c:
+ * gst/rtp/gstrtpvp9pay.h:
+ * gst/rtp/gstrtpvrawdepay.c:
+ * gst/rtp/gstrtpvrawdepay.h:
+ * gst/rtp/gstrtpvrawpay.c:
+ * gst/rtp/gstrtpvrawpay.h:
+ * gst/rtp/meson.build:
+ * tests/check/meson.build:
+ rtp: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 11:12:34 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/pulse/gstpulseelement.c:
+ * ext/pulse/gstpulseelements.h:
+ * ext/pulse/meson.build:
+ * ext/pulse/plugin.c:
+ * ext/pulse/pulsesink.c:
+ * ext/pulse/pulsesrc.c:
+ pulse: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 10:41:29 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/mpg123/gstmpg123audiodec.c:
+ * ext/mpg123/gstmpg123audiodec.h:
+ mpeg123: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 10:33:50 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/libpng/gstpng.c:
+ * ext/libpng/gstpngdec.c:
+ * ext/libpng/gstpngdec.h:
+ * ext/libpng/gstpngenc.c:
+ * ext/libpng/gstpngenc.h:
+ libpng: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 10:27:18 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/lame/gstlamemp3enc.c:
+ * ext/lame/gstlamemp3enc.h:
+ * ext/lame/plugin.c:
+ lame: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 10:26:26 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/libcaca/gstcacaplugin.c:
+ * ext/libcaca/gstcacasink.c:
+ * ext/libcaca/gstcacasink.h:
+ * ext/libcaca/gstcacatv.c:
+ * ext/libcaca/gstcacatv.h:
+ * ext/libcaca/meson.build:
+ libcaca: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 10:09:46 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/jpeg/gstjpeg.c:
+ * ext/jpeg/gstjpegdec.c:
+ * ext/jpeg/gstjpegelements.h:
+ * ext/jpeg/gstjpegenc.c:
+ * ext/jpeg/gstjpegplugin.c:
+ * ext/jpeg/gstsmokedec.c:
+ * ext/jpeg/gstsmokeenc.c:
+ * ext/jpeg/meson.build:
+ jpeg: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 09:56:36 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/jack/gstjack.c:
+ * ext/jack/gstjack.h:
+ * ext/jack/gstjackaudiosink.c:
+ * ext/jack/gstjackaudiosrc.c:
+ jack: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 08:57:55 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/gdk_pixbuf/gstgdkpixbufdec.c:
+ * ext/gdk_pixbuf/gstgdkpixbufelement.c:
+ * ext/gdk_pixbuf/gstgdkpixbufelements.h:
+ * ext/gdk_pixbuf/gstgdkpixbufoverlay.c:
+ * ext/gdk_pixbuf/gstgdkpixbufplugin.c:
+ * ext/gdk_pixbuf/gstgdkpixbufsink.c:
+ * ext/gdk_pixbuf/meson.build:
+ gdk_pixbuf: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 08:48:21 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/gtk/gstgtkglsink.c:
+ * ext/gtk/gstgtkglsink.h:
+ * ext/gtk/gstgtksink.c:
+ * ext/gtk/gstgtksink.h:
+ * ext/gtk/gstplugin.c:
+ gtk: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-11 19:53:30 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/flac/gstflac.c:
+ * ext/flac/gstflacdec.c:
+ * ext/flac/gstflacelement.c:
+ * ext/flac/gstflacelements.h:
+ * ext/flac/gstflacenc.c:
+ * ext/flac/gstflactag.c:
+ * ext/flac/meson.build:
+ flac: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-11 18:57:03 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * ext/dv/gstdv.c:
+ * ext/dv/gstdvdec.c:
+ * ext/dv/gstdvdemux.c:
+ * ext/dv/gstdvelement.c:
+ * ext/dv/gstdvelements.h:
+ * ext/dv/meson.build:
+ dv: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2020-08-14 15:27:31 -0400 Julian Bouzas <julian.bouzas@collabora.com>
+
+ * ext/aalib/gstaaplugin.c:
+ * ext/aalib/gstaasink.c:
+ * ext/aalib/gstaasink.h:
+ * ext/aalib/gstaatv.c:
+ * ext/aalib/gstaatv.h:
+ * ext/aalib/meson.build:
+ aalib: allow per feature registration
+ Split plugin into features including
+ dynamic types which can be indiviually
+ registered during a static build.
+ More details here:
+ https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-03-19 17:19:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/videocrop/gstvideocrop.c:
+ * gst/videocrop/gstvideocrop.h:
+ * tests/check/elements/videocrop.c:
+ videocrop: handle non raw caps features
+ Currently, videocrop, only negotiates raw caps (system memory) because
+ it's the type of memory it can modify. Nonetheless, it's also possible
+ for the element to handle non-raw caps when only adding the crop meta
+ is possible, in other words, when downstream buffer pools expose the
+ crop API.
+ This patch enable non-raw caps negotiation. If downstream doesn't
+ expose crop API and negotiated caps are featured, the negotiation
+ fails.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/915>
+
+2021-03-19 10:35:09 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: Don't special-case G_SIGNAL_RUN_CLEANUP stage in signal accumulators
+ All these signals don't run the class handler in the CLEANUP stage.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/913>
+
+2021-03-19 10:34:33 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/shout2/gstshout2.c:
+ shout2: Don't register signal without class handler with G_SIGNAL_RUN_CLEANUP
+ There is no class handler to run during the CLEANUP stage.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/913>
+
+2021-03-23 16:59:28 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Avoid colorimetry mismatch for streams with invalid colorimetry
+ video-info sets gst colorimetry to default value when colorimetry in caps
+ is unparsable or invalid. Then v4l2object uses this gst colorimetry to do
+ mapping with v4l2 colorimetry. This may cause colorimetry mismatch when
+ check mapped gst colorimetry with that read from caps directly.
+ To fix this, need to correct gst colorimetry as that parsed from video-info
+ when check gst_v4l2_video_colorimetry_matches().
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/917>
+
+2021-03-19 10:52:26 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Add support for hdr10 stream playback
+ Colorimetry of hdr10 video is bt2100-pq with transfer as
+ GST_VIDEO_TRANSFER_SMPTE2084. So map GST_VIDEO_TRANSFER_SMPTE2084
+ to V4L2_XFER_FUNC_SMPTE2084 to support hdr10 stream playback.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/888>
+
+2021-03-20 10:41:29 -0500 Sid Sethupathi <sid.sethupathi@gmail.com>
+
+ * gst/shapewipe/gstshapewipe.c:
+ shapewipe: fix broken link in docs
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/916>
+
+2021-03-18 17:42:02 +0000 Alba Mendez <me@alba.sh>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Fix more signals
+ Behaviour change in GLib causes select-stream signal to discard
+ the value returned by handlers. See !909 for more info.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/912>
+
+2021-03-18 19:52:53 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/jack/gstjack.c:
+ * ext/jack/gstjackaudiosink.c:
+ * ext/jack/gstjackaudiosrc.c:
+ * ext/pulse/pulsesink.h:
+ * ext/qt/gstqsgtexture.cc:
+ * ext/qt/gstqtglutility.cc:
+ * ext/qt/qtglrenderer.cc:
+ * ext/qt/qtitem.cc:
+ * ext/qt/qtwindow.cc:
+ * ext/vpx/gstvpxdec.c:
+ * ext/vpx/gstvpxenc.c:
+ * gst/audioparsers/gstac3parse.h:
+ * sys/rpicamsrc/gstrpicamsrc.c:
+ * sys/ximage/ximageutil.c:
+ gst: don't use volatile to mean atomic
+ volatile is not sufficient to provide atomic guarantees and real atomics
+ should be used instead. GCC 11 has started warning about using volatile
+ with atomic operations.
+ https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
+ Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/911>
+
+2021-03-17 15:54:59 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtsp/gstrtspsrc.c:
+ Update docs cache and fix before-send signal doc syntax
+ The docs for before-send were missing because of this
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/909>
+
+2021-03-17 13:18:34 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Fix accumulation of before-send signal return values
+ Since glib 2.62, the accumulated return values in RUN_CLEANUP override the
+ accumulated return values in RUN_FIRST. Since:
+ 1. We have a default handler that always returns TRUE, and
+ 2. User handlers are only run in RUN_FIRST, and
+ 3. Our accumulator just takes the latest return value
+ We were discarding the return value from the user handler and always
+ sending messages even if the user handler said not to. See
+ https://gitlab.gnome.org/GNOME/glib/-/issues/2352 for more details.
+ This signal does not need RUN_CLEANUP or RUN_FIRST, so just change it
+ to RUN_LAST so that it's emitted exactly once and accumulated once.
+ With this fix, this signal can now be used to intercept PAUSE when
+ going to GST_STATE_NULL so that the server does a TEARDOWN (if
+ necessary) and not a PAUSE, which will confuse other RTSP clients when
+ playing shared media.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/909>
+
+2021-03-17 11:32:08 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ Revert unusable workaround for PAUSE being sent when going NULL
+ Directly setting rtspsrc to the NULL state before putting the pipeline
+ in the NULL state usually works, but it can cause a deadlock in some
+ cases, so it's not a reliable mechanism to fix this.
+ This reverts commit f37afdafff1fd0a339966116261f5cd0de53f5d1:
+ "rtspsrc: Fix state changes from PAUSED to PLAYING"
+ and commit 76d624b2df5594a82269b94dffe8766a372d059d:
+ "rtspsrc: Do not send PAUSE command when going to GST_STATE_NULL"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/908>
+
+2021-03-16 19:25:36 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Fix parsing of the mediaclk:direct= field
+ Due to an off-by-one when parsing the string, the most significant digit
+ or the clock offset was skipped when parsing the offset.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/907>
+
+2021-03-16 00:08:43 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Fix state changes from PAUSED to PLAYING
+ This was accidentally broken in the last commit that touched this
+ because I missed the fall-through in the case immediately above this.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/906>
+
+2021-03-04 13:05:19 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-ids.h:
+ matroskademux: Fix extraction of multichannel WavPack
+ The old code had a couple of issues that all lead to potential memory
+ safety bugs.
+ - Use a constant for the Wavpack4Header size instead of using sizeof.
+ It's written out into the data and not from the struct and who knows
+ what special alignment/padding requirements some C compilers have.
+ - gst_buffer_set_size() does not realloc the buffer when setting a
+ bigger size than allocated, it only allows growing up to the maximum
+ allocated size. Instead use a GstAdapter to collect all the blocks
+ and take out everything at once in the end.
+ - Check that enough data is actually available in the input and
+ otherwise handle it an error in all cases instead of silently
+ ignoring it.
+ Among other things this fixes out of bounds writes because the code
+ assumed gst_buffer_set_size() can grow the buffer and simply wrote after
+ the end of the buffer.
+ Thanks to Natalie Silvanovich for reporting.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/859
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/902>
+
+2021-03-03 11:31:52 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: Initialize track context out parameter to NULL before parsing
+ Various error return paths don't set it to NULL and callers are only
+ checking if the pointer is NULL. As it's allocated on the stack this
+ usually contains random stack memory, and more often than not the memory
+ of a previously parsed track.
+ This then causes all kinds of memory corruptions further down the line.
+ Thanks to Natalie Silvanovich for reporting.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/858
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/902>
+
+2021-03-15 12:57:19 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Do not send PAUSE command when going to GST_STATE_NULL
+ This usually doesn't matter, but it is disruptive when streaming from
+ a shared media since it will pause all other clients when any client
+ exits.
+ This new behaviour is opt-in and should be safe because you need to
+ set the NULL state on rtspsrc directly, instead of just on the
+ pipeline. See the updated documentation for an explanation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/901>
+
+2021-01-18 15:54:43 +0100 Philipp Zabel <p.zabel@pengutronix.de>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: handle GST_VIDEO_TRANSFER_BT601
+ V4L2 makes no difference between the BT.601 and BT.709 transfer
+ functions [1], but GStreamer does since 1.18 [2].
+ Adapt gst_v4l2_object_get_colorspace() and
+ gst_v4l2_object_set_format_full().
+ [1] https://linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/v4l/colorspaces-details.html#colorspace-smpte-170m-v4l2-colorspace-smpte170m
+ [2] https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/724
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/856>
+
+2021-03-11 22:22:15 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: fix title of a few properties docstrings
+ GstRtspSrc -> GstRTSPSrc
+ This would have been noticed by the since checker, but those
+ properties were introduced prior to that.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/899>
+
+2021-03-07 21:25:01 +0000 Vladimir Menshakov <vladimir.menshakov@gmail.com>
+
+ * docs/gst_plugins_cache.json:
+ * ext/wavpack/gstwavpackdec.c:
+ * ext/wavpack/gstwavpackdec.h:
+ wavpackdec: Add floating point format support
+ This commit negotiate F32 audio format if MODE_FLOAT used in wavpack file.
+ Wavpack float mode is always in 32-bit IEEE format.
+ The following pipeline plays distorted audio if source file is encoded in float mode:
+ gst-launch-1.0 filesrc ... ! wavpackparse ! wavpackdec ! pulsesink
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/894>
+
+2021-03-04 16:40:06 +1100 Matthew Waters <matthew@centricular.com>
+
+ * gst/matroska/matroska-demux.c:
+ matroska: also support push-mode from seek events sent to the element
+ Otherwise sending seek events would fail to actually seek.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/891>
+
+2021-02-26 10:49:10 +0100 Marc Leeman <m.leeman@televic.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ gstrtspsrc: 551 should not result in an unhandled error
+ Some cameras (e.g. HikVision DS-2CD2732F-IS) return "551 Option
+ not supported" when a command is sent that is not implemented
+ (e.g. PAUSE). Instead; it should return "501 Not Implemented".
+ This is wrong, as previously, the camera did announce support for PAUSE
+ in the OPTIONS.
+ In this case, handle the 551 as if it was 501 to avoid throwing errors
+ to application level. */
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/885>
+
+2021-03-01 14:32:40 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: Do not expose profiles/levels in vp8/vp9 template caps
+ Vp8/vp9 supported profiles/levels are listed in decoder sink caps, but
+ there is no parser for these two formats and the demuxers also don't have
+ these information. It causes negotiation fail between demuxers and decoder
+ when check caps "accept = gst_caps_is_subset (caps, template_caps);".
+ To fix this, need to remove profiles/levels for vp8/vp9 formats in decoder
+ sink caps.
+ Fix #854
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/887>
+
+2021-03-03 18:30:39 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/rtpmanager/gstrtphdrext-twcc.h:
+ rtpmanager: Fix an MSVC compile warning
+ We don't expect this object is a part of public library.
+ gstrtphdrext-twcc.c(45): warning C4273: 'gst_rtp_header_extension_twcc_get_type': inconsistent dll linkage
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/889>
+
+2021-02-24 13:25:43 +0100 Philipp Zabel <p.zabel@pengutronix.de>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: fix src side frame rate negotiation
+ Negotiating v4l2h264dec ! v4l2h264enc transcoding pipelines fails in
+ case the encoder does not accept framerate=(fraction)0/1.
+ The acquired caps used for downstream negotiation are determined from
+ gst_v4l2_object_acquire_format(), which sets the GstVideoInfo::fps_n
+ and ::fps_d fields to 0.
+ To fix this, copy the frame rate from the sink side.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/882>
+
+2021-02-16 16:20:05 +0200 Jordan Petridis <jpetridis@gnome.org>
+
+ * sys/rpicamsrc/meson.build:
+ rpicamsrc: depend on posix threads and vchiq_arm
+ Could only test on rpi 3b+
+ Close #839
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/875>
+
+2021-02-11 14:48:07 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: Silence traces around unsupported source change
+ Don't be too spamy about unsupported source change flags as these will be
+ commonly extended in the future.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-11 14:24:29 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2src.c:
+ v4l2src: Move preferred resolution query before the probe
+ As we lock the DV_TIMINGS (and standards in the future), we need to probe the
+ caps after, otherwise, we may endup fixating to an unsupported resolution,
+ which would lead to a not-negotiated error.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-10 16:37:01 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2src.c:
+ * sys/v4l2/v4l2_calls.c:
+ v4l2src: Calculate framerate from DV timings
+ And use this framerate in our preference. Note that we also flush
+ the probed caps as it seems that the format enumeration may change
+ when a new source change event get triggered.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-10 15:52:55 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.h:
+ * sys/v4l2/gstv4l2object.h:
+ * sys/v4l2/gstv4l2src.c:
+ * sys/v4l2/v4l2_calls.c:
+ v4l2rc: Add DV_TIMINGS query and locking
+ This adds support to DV_TIMINGS query and locking. The timing width and
+ height is then used as a preference.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-10 15:49:03 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2src.c:
+ v4l2src: Force renegotiation on resolution change
+ As mandated by the specification, make sure to cycle through streamoff
+ / streamon regardless if the caps have changed or not.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-10 14:52:14 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.h:
+ v4l2object: Remove unused streaming member
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-10 10:48:48 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2src.c:
+ v4l2src: Refactor to use PreferredCapsInfo structure
+ Avoid passing around a bare structure for the preference, this removes
+ the need to copy and free that structure and simplify the code. Also
+ fix a type in the structure name, Prefered -> Preferred.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-08 17:27:20 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2src.c:
+ v4l2src: Stub preferred resolution support
+ This stubs the ability to use preferred resolution from digital
+ video timings, analog TV standards or driver reported native
+ resolution.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-09 14:44:02 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ * sys/v4l2/gstv4l2object.h:
+ * sys/v4l2/v4l2_calls.c:
+ v4l2: Subscribe source_change for the current input
+ When we subscribe for source-change event, we need to specify for which
+ input. Make sure we subscribe for the current input.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-08 17:26:20 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2src.c:
+ * sys/v4l2/gstv4l2src.h:
+ v4l2src: Add input signal status detection
+ As part of the support to select a preferred size, we can also
+ detect the signal status. This is a split patch so that feature
+ is separated to ease review.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-08 17:24:00 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.h:
+ * sys/v4l2/v4l2_calls.c:
+ v4l2: Add helper to query input status
+ This is a wrapper around ENUM_INPUT renamed for readability.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-08 17:22:37 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.h:
+ * sys/v4l2/gstv4l2radio.c:
+ * sys/v4l2/gstv4l2tuner.c:
+ * sys/v4l2/v4l2_calls.c:
+ v4l2: Fix input/output index sign
+ This is an unsigned integer in the kernel API.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-04 16:59:44 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2src.c:
+ v4l2src: Add source resolution change support
+ This patch adds support for source resolution change detection.
+ Resolution change is signaled by drivers when a change in the detected
+ signal have been detected. This is notably seen on HDMI receivers.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-04 14:13:32 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ * sys/v4l2/gstv4l2bufferpool.h:
+ v4l2bufferpool: Handle resolution change event
+ This patch adds the detection, dequeuing and reporting of the SOURCE_CHANGE
+ event when the CH_RESOLUTION flag is set. The acquire function will now return
+ a new custom success called GST_V4L2_FLOW_RESOLUTION_CHANGE. In order to use
+ this new feature, elements must enable it by calling:
+ gst_v4l2_buffer_pool_enable_resolution_change (pool);
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-04 11:01:38 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2object.h:
+ * sys/v4l2/v4l2_calls.c:
+ v4l2object: Add event helpers
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-04 10:10:34 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2bufferpool: use FLOW_LAST_BUFFER
+ This uses the GST_V4L2_FLOW_LAST_BUFFER alias instead of
+ GST_FLOW_CUSTOM_SUCCESS to make the code more readable.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2018-12-10 14:10:05 +0100 Lucas Stach <l.stach@pengutronix.de>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: prefer NV12 over I420
+ Considering NV12 an 'odd' format is a historical artifact. This format
+ is now quite common, and usually preferable to I420 due to more memory
+ friendly access patterns.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/857>
+
+2021-02-18 10:34:25 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * gst/wavparse/gstwavparse.c:
+ * tests/check/elements/wavparse.c:
+ wavparse: fix seeking in READY state
+ wavparse claims to be able to support seeking in the READY state by
+ saving the pending seek event and actually seeking later after having parsed the
+ header.
+ Problem was that this seek event was reset on the READY to PAUSED
+ transition, making all this code useless. Fixing it by stop resetting
+ on READY to PAUSED transition as we already reset on PAUSED to READY
+ and when initiating the element.
+ Note that DTS marker detection isn't support in such scenario as
+ gst_type_find_helper_for_buffer() needs a buffer containing the
+ beginning of the stream.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/879>
+
+2021-02-18 10:05:03 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * tests/check/elements/wavparse.c:
+ tests: wavparse: factor out create_pipeline()
+ No semantic change.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/879>
+
+2021-02-18 00:34:02 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ docs: update plugins cache with new h264 / vp8 depay properties
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>
+
+2020-12-09 01:40:45 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtp/gstrtph264depay.c:
+ * gst/rtp/gstrtph264depay.h:
+ rtph264depay: expose request-keyframe property
+ When set, the depayloader will request new keyframes on packet
+ loss
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>
+
+2020-12-09 01:34:20 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtp/gstrtpvp8depay.c:
+ * gst/rtp/gstrtpvp8depay.h:
+ rtpvp8depay: expose request-keyframe property
+ When set, the depayloader will request new keyframes on packet
+ loss
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>
+
+2020-12-09 01:24:57 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtp/gstrtph264depay.c:
+ * gst/rtp/gstrtph264depay.h:
+ rtph264depay: expose wait-for-keyframe property
+ Similar to rtpvp8depay, when packet loss occurs, the depayloader
+ starts waiting for a keyframe.
+ We try to only stop waiting when all the packets for the new keyframe
+ have been received, by only resetting waiting_for_keyframe when
+ encountering the first packet of a keyframe, this is slightly
+ fragile because there is no bit that explicitly marks the start
+ of an access unit, so we rely on the existing picture_start
+ detection code.
+ As a consequence, the property is only meaningful when outputting
+ access units, and is ignored when outputting NALs directly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>
+
+2021-02-18 00:36:43 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/videomixer/videomixer2.c:
+ videomixer: document as deprecated
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/878>
+
+2021-02-16 22:20:17 +1100 Ashley Brighthope <ashley.b@reddegrees.com>
+
+ * gst/wavenc/gstwavenc.c:
+ wavenc: Fixed INFO chunk corruption, caused by odd sized data not being padded. Code style was updated.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/873>
+
+2020-12-07 19:51:35 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * gst/rtp/gstrtpopuspay.c:
+ rtpopuspay: add info regarding (non-standard) multichannel support
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2020-12-07 16:50:01 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ docs: update plugins cache for rtpopus
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2020-12-01 20:09:58 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * tests/check/elements/rtpopus.c:
+ tests: add rtpopus multichannel test cases
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2020-12-01 16:43:32 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * gst/rtp/gstrtpopusdepay.c:
+ rtpopusdepay: support libwebrtc-compatible multichannel payload
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2020-11-30 21:49:48 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * gst/rtp/gstrtpopuspay.c:
+ rtpopuspay: support libwebrtc-compatible multichannel payload
+ When the audio has more than 2 channels, add optional fields to output
+ caps from which webrtcbin can generate SDP in the syntax recognized by
+ "multiopus" codec present in libwebrtc [1].
+ e.g. for 5.1 audio:
+ a=rtpmap:96 multiopus/48000/6
+ a=fmtp:96 num_streams=4;coupled_streams=2;channel_mapping=0,4,1,2,3,5
+ [1] https://webrtc-review.googlesource.com/c/src/+/129768
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2020-11-30 22:10:14 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * gst/rtp/gstrtpopuspay.c:
+ rtpopuspay: make use of gst_rtp_base_payload_set_outcaps_structure()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2021-02-09 19:31:28 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/effectv/LICENSE:
+ effectv: Remove redundant license file
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/869>
+
+2021-02-05 00:55:12 +0000 Kevin Song <kevinbing.song@gmail.com>
+
+ * sys/v4l2/gstv4l2videoenc.c:
+ Apply 1 suggestion(s) to 1 file(s)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/868>
+
+2021-02-05 00:55:04 +0000 Kevin Song <kevinbing.song@gmail.com>
+
+ * sys/v4l2/gstv4l2videoenc.c:
+ Apply 1 suggestion(s) to 1 file(s)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/868>
+
+2021-02-04 13:43:17 +0800 Bing Song <bing.song@nxp.com>
+
+ * sys/v4l2/gstv4l2videoenc.c:
+ v4l2videoenc: support resolution change stream encode.
+ Resolution change stream transcoding will drain before send new video
+ frame buffer. Need encode video frame after process EOS.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/868>
+
+2021-02-04 11:44:53 +0100 Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+ * gst/isomp4/fourcc.h:
+ * gst/isomp4/qtdemux.c:
+ qtdemux: added support for cbcs encryption scheme
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/865>
+
+2021-01-21 18:04:58 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+ * gst/rtpmanager/gstrtphdrext-rfc6464.h:
+ * gst/rtpmanager/gstrtpmanager.c:
+ * gst/rtpmanager/meson.build:
+ * tests/check/elements/rtphdrextrfc6464.c:
+ * tests/check/meson.build:
+ rtp: add rtphdrextrfc6464
+ Header Extension for Client-to-Mixer Audio Level Indication as
+ defined in RFC 6464.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/630>
+
+2020-06-16 12:01:30 +0200 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/level/gstlevel.c:
+ * gst/level/gstlevel.h:
+ * tests/check/elements/level.c:
+ level: add GstRTPAudioLevelMeta on buffers
+ This meta can be used by a RTP payloader to send the level information
+ to the peer.
+ Part of https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/446
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/630>
+
+2021-02-03 17:10:20 +0200 Robert Swain <robert.swain@gmail.com>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ deinterlace: Provide documentation for GST_DEINTERLACE_BUFFER_STATE
+ More information available in
+ https://gstconf.ubicast.tv/videos/interlacing-and-telecine-in-gstreamer/
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/866>
+
+2021-01-30 16:16:13 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/deinterlace/gstdeinterlacemethod.c:
+ deinterlace: Fix telecine/onefield mixup
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/838
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/866>
+
+2021-01-30 15:49:23 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ * gst/deinterlace/gstdeinterlacemethod.c:
+ deinterlace: Better alternate support
+ Improve line offset halving based on whether this field is top or
+ bottom.
+ Also handle the buffer state the same as mixed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/866>
+
+2021-01-14 01:12:06 +0800 Bing Song <bing.song@nxp.com>
+
+ * sys/v4l2/gstv4l2h265codec.c:
+ v4l2h265codec: fix HEVC profile string issue.
+ Keep HEVC profile compatible with other module.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/850>
+
+2020-12-15 10:41:40 +0800 Bing Song <bing.song@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2object.h:
+ v4l2object: Need keep same transfer as input caps.
+ GST_VIDEO_TRANSFER_BT2020_12 and GST_VIDEO_TRANSFER_BT2020_10 will
+ be mapped to V4L2_XFER_FUNC_709. Need check input caps when map
+ V4L2_XFER_FUNC_709 back to GST_VIDEO_TRANSFER_BT2020_12 and
+ GST_VIDEO_TRANSFER_BT2020_10
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/816
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/841>
+
+2020-12-07 10:01:53 +0100 Tobias Ronge <tobiasr@axis.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Do not wait for response while flushing
+ Due to the may_cancel flag in GstRTSPConnection, receiving might not get
+ cancelled when supposed to. In this case, gst_rtsp_src_receive_response
+ will have to wait until timeout instead but if busy receiving RTP
+ data, this timeout will never occur.
+ With this patch, gst_rtsp_src_receive_response returns GST_RTSP_EINTR
+ if flushing is set to TRUE instead of continuing to receive.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/831>
+
+2021-01-14 19:13:03 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ext/dv/meson.build:
+ meson: allow libdv subproject fallback
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/854>
+
+2020-12-21 13:55:58 +0100 Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Allow streams with no specified protection system ID
+ This is necessary in cases like CMAF where there won't be any events
+ passing thru.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/852>
+
+2021-01-07 16:57:27 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * docs/gst_plugins_cache.json:
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Map correct video format for RGBA
+ Map V4L2_PIX_FMT_RGBA32 pixel format to GST_VIDEO_FORMAT_RGBA instead of
+ GST_VIDEO_FORMAT_RGB video format to support RGBA.
+ Fixes #823
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/848>
+
+2021-01-02 13:06:16 +0530 Sanchayan Maity <sanchayan@asymptotic.io>
+
+ * gst/udp/gstudpsrc.c:
+ udpsrc: Fix marker links
+ These should be with a single ':'. The double '::' results in a CI with
+ build failure message like below.
+ ERROR: [links]: (mandatory-link-not-found): Mandatory link Link GstSocketTimestamp -> None (GstSocketTimestamp) could not be resolved
+ ERROR: [check-missing-since-markers]: (missing-since-marker): Missing since marker for udpsrc:socket-timestamp
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/828>
+
+2020-12-17 11:24:07 +0530 Sanchayan Maity <sanchayan@asymptotic.io>
+
+ * docs/gst_plugins_cache.json:
+ * gst/udp/gstudpsrc.c:
+ * gst/udp/gstudpsrc.h:
+ udpsrc: Allow use of socket control message timestamps for DTS
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/828>
+
+2020-12-09 20:20:18 +1100 Matthew Waters <matthew@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/videofilter/gstvideoflip.c:
+ * gst/videofilter/gstvideoflip.h:
+ * tests/check/elements/videoflip.c:
+ videoflip: fix possible crash when setting the video-direction while running
+ A classic case of not enough locking.
+ One interesting thing with this is the interaction between the
+ rotation value and caps negotiation. i.e. the width/height of the caps
+ can be swapped depending on the video-direction property. We can't lock
+ the entirety of the caps negotiation for obvious reasons so we need to
+ do something else. This takes the approach of trying to use a single
+ rotation value throughout the entirety of the negotiation and then
+ subsequent output frame in a kind of latching sequence.
+ Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/792
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/836>
+
+2020-12-09 19:49:47 +1100 Matthew Waters <matthew@centricular.com>
+
+ * tests/check/elements/videoflip.c:
+ * tests/check/meson.build:
+ tests: add tests for videoflip
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/836>
+
+2020-12-30 13:38:46 +0100 Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+ * gst/deinterlace/meson.build:
+ deinterlace: force -DPREFIX on macos
+ This is due to a bug in meson where it will not detect properly
+ the compiler if the symbols need an undercore.
+ https://github.com/mesonbuild/meson/issues/5482
+ Fixes #821
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/845>
+
+2020-12-15 11:36:27 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Use proper types instead of G_TYPE_POINTER for the RTSP messages in the "handle-request" signal
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/842>
+
+2020-12-10 14:27:49 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: Avoid deadlock when releasing a pad from a running muxer
+ Might not drain correctly
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/838>
+
+2020-12-11 11:24:14 +0800 Hou Qi <qi.hou@nxp.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: Use active resolution during fallback colorspace probe
+ For legacy drivers that don't implement ENUM_FRAMESIZE, use active
+ resolution to probe colorspace. This can improve the accuracy of the
+ result when the colorspace depends on the resolution. This fixes a
+ wrong colorspace issue on board with vendor bsp at resolution 2560x1440.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/830>
+
+2020-12-12 04:02:37 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/gstrtpst2022-1-fecdec.c:
+ rtpst2022-1-fecdec: don't xor out of bounds
+ When reconstituting packets from a stream with variable packet
+ sizes, don't xor larger packets past the length of the protected
+ packet
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/839>
+
+2020-12-12 04:00:41 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+ rtpst2022-1-fecenc: memset when reallocating xored payload
+ When protecting packets with a variable payload length, we
+ reallocate the xored payload when needed. It is a good idea
+ to memset the extended memory to 0 so that we don't xor
+ data with garbage!
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/839>
+
+2020-12-12 03:56:11 +0100 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/gstrtpst2022-1-fecdec.c:
+ * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+ rtpst2022-1-fec-*: protect additional RTP header fields
+ While the standard is a bit vague about whether the padding,
+ extension and marker bits should be protected:
+ > The usage, by senders and receivers, of the following bits shall
+ > be defined by the associated video/audio transport standards:
+ It is obviously necessary and useful for some formats (eg VP8)
+ that those indeed be protected.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/839>
+
+2020-12-12 03:28:56 +1100 Jan Schmidt <jan@centricular.com>
+
+ * tests/check/elements/splitmuxsink.c:
+ splitmuxsink: Unit test - check format/opened/closed sequence
+ Check the sequence of format-location/fragment-opened/fragment-closed
+ events is respected. There should be 1 format-location call for each
+ fragment-opened message, and 1 fragment-closed for each.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>
+
+2020-12-09 00:40:52 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: Fix for 'reference bytes muxed' check.
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798
+ introduced a check in the need-new-fragment logic to avoid starting a
+ new fragment unless there has been some data on the reference stream,
+ but the check is done against the number of bytes that have been
+ received on the input, not the number that were released for output
+ into the current fragment.
+ Fix the check to remember and test against bytes that have been sent
+ for output.
+ This also fixes a problem where starting a new fragment fails to
+ request a new filename from the format-location signal.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>
+
+2020-09-15 00:27:24 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Add debug for fragment opened/closed msgs
+ When posting fragment-opened and fragment-closed messages,
+ put a debug statement in the logs
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>
+
+2020-08-18 16:06:14 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Convert asserts into element errors.
+ Change some g_assert into element errors so that they can be
+ caught and the pipeline shut down.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>
+
+2020-07-10 15:36:54 +1000 Matthew Waters <matthew@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtpfunnel.c:
+ * gst/rtpmanager/gstrtphdrext-twcc.c:
+ * gst/rtpmanager/gstrtphdrext-twcc.h:
+ * gst/rtpmanager/gstrtpmanager.c:
+ * gst/rtpmanager/meson.build:
+ rtpmanager: update for rtp header extensions
+ Provide an implementation of the transport-wide-cc header extension and
+ use it in rtpfunnel.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/808>
+
+2020-11-15 11:30:07 +0000 Jose Quaresma <quaresma.jose@gmail.com>
+
+ * sys/rpicamsrc/meson.build:
+ rpicamsrc: add vchostif library as it is required to build successful
+ fix: undefined reference to `vc_gencmd'
+ /usr/src/debug/gstreamer1.0-plugins-good/1.18.1-r0/build/../gst-plugins-good-1.18.1/sys/rpicamsrc/RaspiCamControl.c:1440: undefined reference to `vc_gencmd'
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/818>
+
+2020-11-25 17:51:24 +0100 Marijn Suijten <marijns95@gmail.com>
+
+ * tests/check/elements/rtp-payloading.c:
+ tests/rtp-payloading: Use new AudioFormatInfo::fill_silence function
+ The function is renamed to be properly associated with AudioFormatInfo
+ (its instance) instead of AudioFormat (an unrelated enum), see [1] for
+ the rename itself.
+ [1]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/940
+
+2020-11-24 22:11:50 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * gst/deinterlace/meson.build:
+ * meson.build:
+ deinterlace: Enable x86 assembly with nasm on MSVC
+ We need to remove x86inc.asm from the list of compiled assembly files
+ because it is not supposed to be compiled separately. It is directly
+ included by yadif.asm, and it exports no symbols.
+ The object file was getting ignored on all platforms except on msvc
+ where it was causing a linker hang when building with debugging
+ enabled because the object file had no debug symbols (or similar).
+ We've seen this before in FFmpeg too, which uses nasm:
+ https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg/-/merge_requests/46
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/825>
+
+2020-11-19 17:47:21 +1100 Matthew Waters <matthew@centricular.com>
+
+ * ext/qt/gstqtoverlay.cc:
+ * ext/qt/gstqtsink.cc:
+ qml: add some docs on display and contexts
+ Especially considering some dynamic pipeline scenarios.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/822>
+
+2020-11-18 20:09:24 +0100 Tim Schneider <tim.schneider94@t-online.de>
+
+ * sys/rpicamsrc/gstrpicamsrc.c:
+ rpicamsrc: Added "src->started = FALSE;" to gst_rpi_cam_src_stop
+ Makes the element reusable multiple times after a state change back to READY.
+ Fixes #105
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/823>
+
+2020-11-12 09:32:30 +0800 Bing Song <bing.song@nxp.com>
+
+ * docs/gst_plugins_cache.json:
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: caps negotiate wrong as interlace feature
+ gst_caps_simplify() will move interlace format before normal video
+ format. It will cause caps negotiate prefer interlaced caps which
+ isn't expected. Seperate normal caps and interlaced caps and then
+ merge it will keep prefer progress video format.
+ Add ARGB/BGRA for interlaced caps.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/802
+ Part-of <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/813>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/813>
+
+2020-11-13 21:25:42 +0100 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/rtpsession.c:
+ * tests/check/elements/rtpsession.c:
+ rtpsession: never send on a non-internal source
+ This will end up as a "received" packet, due to the code in
+ source_push_rtp, which will think this is a packet being received.
+ Instead drop the packet and hope that either:
+ 1. Something upstream responds to the GstRTPCollision event and changes
+ SSRC used for sending.
+ 2. That the application responds to the "on-ssrc-collision" signal, and
+ forces the sender (payloader) to change its SSRC.
+ 3. That the BYE sent to the existing user of this SSRC will respond to
+ the BYE, and that we timeout this source, so we can continue sending
+ using the chosen SSRC.
+ The test reproduces a scenario where we previously would have sent
+ on a non-internal source.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/817>
+
+2020-11-13 12:39:53 +0100 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/rtpsource.c:
+ rtpsource: rewrite timeout-check to avoid underflow
+ If current_time is < collision_timeout, we get an uint64 underflow, and
+ the check will trigger prematurely.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/817>
+
+2020-11-13 14:58:44 +0200 Vivia Nikolaidou <vivia@ahiru.eu>
+
+ * gst/audioparsers/gstaacparse.c:
+ aacparse: Fix caps change handling
+ In baseparse we set the fixed caps flag on all src pads, therefore the
+ source pad caps query in get_allowed_caps will return the current caps.
+ Current caps won't necessarily intersect with the new caps (e.g. sample
+ rate change). Replace get_allowed_caps with peer_query_caps.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/816>
+
+2020-11-12 23:39:21 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/elements/qtdemux.c:
+ tests: qtdemux: fix typo in caps field
+ timesacle -> timescale
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/815>
+
+2020-11-12 23:38:21 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/elements/qtdemux.c:
+ tests: qtdemux: fix crash on 32-bit architectures
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/803
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/815>
+
+2020-09-14 13:12:50 +0530 Sanchayan Maity <sanchayan@asymptotic.io>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtp/gstrtp.c:
+ * gst/rtp/gstrtpldacpay.c:
+ * gst/rtp/gstrtpldacpay.h:
+ * gst/rtp/meson.build:
+ rtp: ldacpay: Add LDAC RTP payloader
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/757>
+
+2020-11-03 15:58:30 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ext/qt/gstqsgtexture.cc:
+ * ext/qt/gstqsgtexture.h:
+ * ext/qt/qtitem.cc:
+ qmlglsink: Keep old buffers around a bit longer if they were bound by QML
+ We don't know exactly when QML will stop using them but it should be
+ safe to unref them after at least 2 more buffers were bound.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/810>
+
+2020-11-10 18:18:12 +0000 ChrisDuncanAnyvision <chrisd@anyvision.co>
+
+ * gst/rtsp/gstrtspsrc.c:
+ * gst/rtsp/gstrtspsrc.h:
+ rtspsrc: Ensure same group-id used for both TCP/UDP stream-start events
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/811>
+
+2020-11-10 16:17:23 +0000 ChrisDuncanAnyvision <chrisd@anyvision.co>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Use consistent URI hashed stream-id for UDP and TCP/Interleaved streams
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/811>
+
+2020-11-04 18:43:04 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
+
+ * meson.build:
+ meson: Enable some MSVC warnings for parity with GCC/Clang
+ This makes it easier to do development with MSVC by making it warn
+ on common issues that GCC/Clang error out for in our CI configuration.
+ Continuation from https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/223
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/809>
+
+2020-10-15 21:42:40 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/rtpsession.c:
+ * gst/rtpmanager/rtpsource.c:
+ * gst/rtpmanager/rtpsource.h:
+ * gst/rtpmanager/rtpstats.h:
+ rtpsource: Report for which local SSRC is a remote RB reporting on
+ This is useful in the Bundle case because there may be multiple local
+ and remote SSRCs in the same session.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/776>
+
+2020-10-29 15:58:38 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtp/gstrtpisacdepay.c:
+ * gst/rtp/gstrtpisacpay.c:
+ docs: update plugins cache
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/530>
+
+2020-03-20 13:15:33 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * gst/rtp/gstrtp.c:
+ * gst/rtp/gstrtpisacdepay.c:
+ * gst/rtp/gstrtpisacdepay.h:
+ * gst/rtp/meson.build:
+ rtp: add rtpisacdepay
+ Depayload for the iSAC audio codec.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/530>
+
+2020-03-20 13:15:33 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+ * gst/rtp/gstrtp.c:
+ * gst/rtp/gstrtpisacpay.c:
+ * gst/rtp/gstrtpisacpay.h:
+ * gst/rtp/meson.build:
+ rtp: add rtpisacpay
+ Payload for the iSAC audio codec.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/530>
+
+2020-11-01 18:36:49 +0000 Dinesh Manajipet <saidinesh5@gmail.com>
+
+ * ext/qt/qtitem.cc:
+ qmlglsink: Set qtitem's implicit width/height
+ This can be useful to let the layouts automatically resize qtitem
+ and also easily query a video's width/height from QML
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/802>
+
+2020-11-01 10:30:27 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/flv/gstflvmux.c:
+ flvmux: Release pads via GstAggregator
+ See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/797
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/801>
+
+2020-10-26 12:40:49 +1100 Matthew Waters <matthew@centricular.com>
+
+ * gst/isomp4/atoms.c:
+ * gst/isomp4/atoms.h:
+ * gst/isomp4/gstqtmux.c:
+ qtmux: support muxing multiple codec_data for h264/h265
+ Each codec_data is put into its own SampleTableEntry inside the stsd.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/787>
+
+2020-10-29 14:54:16 +0100 Stéphane Cerveau <scerveau@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/debugutils/gstnavseek.c:
+ * gst/debugutils/gstnavseek.h:
+ navseek: add hold_eos property
+ This property will tell the element to hold
+ the EOS event and keep it until the next
+ keystroke.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/792>
+
+2020-10-31 12:52:04 +1100 Jan Schmidt <jan@centricular.com>
+
+ * tests/check/elements/splitmuxsrc.c:
+ splitmuxsrc: Fix comment in a test
+ Fix a comment in the splitmuxsrc robust muxing test so it
+ describes the test properly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-31 12:49:08 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: Change EOS catching logic.
+ Add a new state for ending the overall stream, and use it to decide
+ whether to pass the final EOS message up the bus instead of dropping
+ it. Fixes a small race that makes the testsuite sometimes not generate
+ the last fragment(s) sometimes because the wrong EOS gets
+ allowed through too early.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-31 02:19:07 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: Don't use the element state lock
+ Using the element state lock to avoid splitmuxsink shutting
+ down while doing element manipulations can lead to a deadlock on
+ shutdown if a fragment switch happens at exactly the wrong moment.
+ Use a private mutex and a shutdown boolean instead.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-30 03:38:15 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Don't busy loop on a non-ready pad.
+ If a pad gets into the check_completed_gop method and then
+ the underlying conditions change on the reference context,
+ things could get stuck in a busy loop when the context should
+ instead jump back out and wait for more data.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-30 03:36:51 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsrc.c:
+ splitmuxsrc: Mark running=false on shutdown.
+ Make sure that any late gst_element_call_async() callbacks
+ know that the elements is shutting down and bail out instead
+ of operating on the element we're trying to stop.
+ Fixes a spurious test failure in elements_splitmuxsrc
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-29 02:36:35 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: Forward EOS messages from async fragments.
+ Re-enable forwarding EOS messages from fragments that are completing
+ asynchronously, so that splitmuxsink itself won't go EOS until they
+ are complete. This was disabled to work around a bug in core that
+ is fixed in
+ https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/683
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-09-17 22:56:01 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ * gst/multifile/gstsplitmuxsink.h:
+ splitmuxsink: Never start a new fragment with no reference buffers
+ If there has been no bytes from the reference stream muxed into
+ the current fragment, then time can't have advanced, there's no
+ GOP... this fragment would be broken or empty, so wait for some
+ data on the reference buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-29 02:38:16 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: Chain up when releasing pad, and fix some locking.
+ Release pads by calling up into aggregator so it can do the right
+ things. Don't clean up the pad until after that.
+ Add some missing locks around some accesses to shared pad state.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/797>
+
+2018-08-13 15:35:11 +0200 Stian Selnes <stian@pexip.com>
+
+ * gst/rtp/gstrtpvp9depay.c:
+ * gst/rtp/gstrtpvp9depay.h:
+ * tests/check/elements/rtpvp9.c:
+ rtpvp9depay: Improve SVC parsing, aggregate all layers
+ - Fix start and end of picture to support multiple layers. Start of
+ picture is the first packet of the base layer, while end of picture
+ is when the marker bit is set (last packet of the enhancement
+ layers).
+ - All "layers" (aka "frames") of a picture are pushed downstream in a
+ single buffer when picture is complete.
+ - Forgive SID=0 for enhancement layers (invalid, but Chrome and
+ Firefox sends it)
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/773>
+
+2020-10-30 03:09:48 +0100 Stian Selnes <stian@pexip.com>
+
+ * gst/rtp/gstrtpvp8depay.c:
+ * gst/rtp/gstrtpvp8depay.h:
+ * tests/check/elements/rtpvp8.c:
+ rtpvp8depay: Send lost events when marker bit is missing
+ This means the previous frame was incomplete.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/796>
+
+2020-10-14 23:17:53 +0200 Knut Saastad <Knut@bitflow.io>
+
+ * gst/rtp/gstrtpvp8depay.c:
+ * gst/rtp/gstrtpvp8pay.c:
+ rtpvp9depay: detect incomplete frames and bail out
+ If a packet with the B bit set arrives but we haven't received
+ a packet with the marker or E bits set to end the previous frame,
+ we know the current frame was incomplete.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/795>
+
+2020-10-14 23:17:53 +0200 Knut Saastad <Knut@bitflow.io>
+
+ * gst/rtp/gstrtpvp9depay.c:
+ rtpvp9depay: detect incomplete frames and bail out
+ If a packet with the B bit set arrives but we haven't received
+ a packet with the marker or E bits set to end the previous frame,
+ we know the current frame was incomplete.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/769>
+
+2020-10-14 01:28:50 +0200 Mikhail Fludkov <misha@pexip.com>
+
+ * gst/rtp/gstrtpvp8depay.c:
+ * gst/rtp/gstrtpvp8depay.h:
+ * gst/rtp/gstrtpvp9depay.c:
+ * gst/rtp/gstrtpvp9depay.h:
+ * tests/check/elements/rtpvp8.c:
+ * tests/check/elements/rtpvp9.c:
+ rtpvp*depay: possibly forward might-have-been-fec PacketLost events
+ This is ad adaptation of a Pexip patch for dealing with spurious
+ GstRTPPacketLost events caused by lost ulpfec packets: as FEC packets
+ under that scheme are spliced in the same sequence domain as the media
+ packets, it is not generally possible to determine whether a lost packet
+ was a FEC packet or a media packet.
+ When upstreaming pexip's ulpfec patches, we decided to drop all lost
+ events at the base depayloader level, and where the original patch
+ from pexip was making use of picture ids and marker bits to determine
+ whether a packet should be forwarded, this patch makes use of those
+ to determine whether they should be dropped instead (by removing their
+ might-have-been-fec field).
+ Spurious lost events coming out of the depayloader can cause the
+ decoder to stop decoding until the next keyframe and / or request a new
+ keyframe, and while this is not desirable it makes sense to forward
+ that information when we have other means to determine whether a lost
+ packet was indeed a FEC packet, as is the case with VP8 / VP9 payloads
+ when they carry a picture id.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/769>
+
+2020-10-20 23:22:36 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/rtp/gstrtph264depay.c:
+ rtph264depay: Preserve SPS/PPS arrival order.
+ Even if SPS/PPS haven't changed, make sure to move them to the
+ end of the tracking array if needed, so we always know what the
+ most recent entries are, in case we need to discard the oldest
+ when generating codec_data.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/775>
+
+2020-10-17 00:05:15 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/rtp/gstrtph264depay.c:
+ rtph264depay: Warn when max SPS/PPS are collected in AVC mode.
+ The AVC codec_data has a flaw that it can only accomodate
+ 31 SPS headers, even though H.264 can have 32, and 255 PPS,
+ when there can be 256 in H.264. When streaming RTP some
+ clients like to cycle through SPS/PPS ids when changing
+ configuration and can eventually accumulate a full set.
+ In that case, we have no choice but to discard one (oldest)
+ entry, or else the count written into the codec_data is wrong
+ and downstream decoding failures ensue.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/775>
+
+2020-10-28 00:29:05 +0100 Havard Graff <havard.graff@gmail.com>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * gst/rtpmanager/rtptimerqueue.c:
+ * gst/rtpmanager/rtptimerqueue.h:
+ * tests/check/elements/rtpjitterbuffer.c:
+ * tests/check/elements/rtptimerqueue.c:
+ rtpjitterbuffer: don't send multiple instant RTX for the same packet
+ Due to us not properly acknowleding the time when the last RTX was sent
+ when scheduling a new one, it can easily happen that due to the packet
+ you are requesting have a PTS that is slightly old (but not too old when
+ adding the latency of the jitterbuffer), both its calculated second and
+ third (etc.) timeout could already have passed. This would lead to a burst
+ of RTX requests, which acts completely against its purpose, potentially
+ spending a lot more bandwidth than needed.
+ This has been properly reproduced in the test:
+ test_rtx_not_bursting_requests
+ The good news is that slightly re-thinking the logic concerning
+ re-requesting RTX, made it a lot simpler to understand, and allows us
+ to remove two members of the RtpTimer which no longer serves any purpose
+ due to the refactoring. If desirable the whole "delay" concept can actually
+ be removed completely from the timers, and simply just added to the timeout
+ by the caller of the API. But that can be a change for a another time.
+ The only external change (other than the improved behavior around bursting
+ RTX) is that the "delay" field now stricly represents the delay between
+ the PTS of the RTX-requested packet and the time it is requested on,
+ whereas before this calculation was more about the theoretical calculated
+ delay. This is visible in three other RTX-tests where the delay had
+ to be adjusted slightly. I am confident however that this change is
+ correct.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/789>
+
+2020-10-27 23:43:49 +1100 Jan Schmidt <jan@centricular.com>
+
+ * gst/matroska/matroska-mux.c:
+ matroska-mux: Fix sparse stream crash
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/656
+ introduced an invalid memory access when debug is enabled, by casting
+ the wrong pointer to a GstCollectPad. Fixing that showed the original
+ change was incorrect and leads to an infinite loop in the
+ testsuite. This patch fixes both problems.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/788>
+
+2020-10-22 15:29:01 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * ext/vpx/gstvpxenc.c:
+ vpx: Fix the check to unfixed/unknown framerate to set bitrate
+ 0/1 means unknown framerate not X/0 (which is illegal).
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/782>
+
+2020-10-22 09:17:26 -0400 Arun Raghavan <arun@asymptotic.io>
+
+ * gst/rtp/gstrtputils.c:
+ rtputils: Count metas with an empty tag list for copying/keeping
+ The GstMetaInfos registered in core do not set their tags to NULL, but
+ instead use an empty list (non-NULL list with a single NULL value).
+ Let's check explicitly for that so as to not miss some metas.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/779>
+
+2020-10-16 16:05:45 -0700 Bastien Reboulet <bastien.reboulet@gmail.com>
+
+ * ext/qt/qtitem.cc:
+ qmlglsink: fix crash when created/destroyed in quick succession
+ The crash is caused by a race condition where the render thread
+ calls a method on the QtGLVideoItem instance that was
+ previously destroyed by the main thread.
+ Also, less frequently, QtGLVideoItem::onSceneGraphInitialized
+ is called when QQuickItem::window is null, also causing a crash.
+ Fixes #798
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/777>
+
+2020-10-19 18:23:25 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ * sys/v4l2/gstv4l2videoenc.c:
+ v4l2codec: Garbage collect old frames if they accumulate because of codec bugs
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/778>
+
+2020-10-19 17:56:04 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ * sys/v4l2/gstv4l2bufferpool.h:
+ * sys/v4l2/gstv4l2sink.c:
+ * sys/v4l2/gstv4l2src.c:
+ * sys/v4l2/gstv4l2transform.c:
+ * sys/v4l2/gstv4l2videodec.c:
+ * sys/v4l2/gstv4l2videoenc.c:
+ v4l2codec: Pass system frame number as timestamp and use it to retrieve back frames reliably
+ System frame numbers are supposed to be unique and correct drivers are
+ passing through timestamps without modification from the output/sink to the
+ capture/src side.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/778>
+
+2020-09-24 13:13:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpbin.h:
+ rtpbin: Add clear-ssrc action
+ This action signal will delegate to clear-ssrc onto the rtpssrcdemux element
+ associated with the session. This allow rtpbin users to clear pads and
+ elements for a specific ssrc that is known to no longer be in use. This
+ happens when a pad is reused in rtpsrc or ristsrc.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/736>
+
+2017-09-08 20:02:13 +0100 John-Mark Bell <jmb@pexip.com>
+
+ * gst/rtp/gstrtpvp8pay.c:
+ * gst/rtp/gstrtpvp8pay.h:
+ * tests/check/elements/rtpvp8.c:
+ * tests/check/meson.build:
+ rtpvp8pay: payload temporally scaled bitstreams.
+ Co-Authored-By: Vincent Sanders <vince@pexip.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/728>
+
+2017-11-17 15:11:41 +0100 Stian Selnes <stian@pexip.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtp/gstrtpvp8pay.c:
+ * gst/rtp/gstrtpvp8pay.h:
+ rtpvp8pay: Add picture-id-offset property
+ Add property to set the initial value for picture-id. RFC7741 says
+ that picture-id MAY be initialized to a random value, thus it's also
+ valid to simply set it to a fixed initial value. A fixed value is very
+ useful for testing.
+ Default behavior is not changed.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/728>
+
+2017-03-16 15:23:28 +0100 Mikhail Fludkov <misha@pexip.com>
+
+ * gst/rtp/gstrtpvp8pay.c:
+ rtpvp8pay: move duplicate code to separate functions
+ Two new functions to modify picture id:
+ gst_rtp_vp8_pay_picture_id_reset - picks random picture id of
+ appropriate bitsize
+ gst_rtp_vp8_pay_picture_id_increment - increments picture id taking
+ care of wrapping
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/728>
+
+2017-09-08 08:13:05 +0100 John-Mark Bell <jmb@pexip.com>
+
+ * docs/gst_plugins_cache.json:
+ * ext/vpx/gstvpxenc.c:
+ vp8enc: expect bps for temporal-scalability-target-bitrate.
+ Consistency with target-bitrate is less surprising and with
+ modern libvpx additional configuration is required to make
+ temporal scaling work.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/728>
+
+2017-09-08 08:19:20 +0100 John-Mark Bell <jmb@pexip.com>
+
+ vp8enc: finish support for temporally scaled encoding
+ - introduce two new properties:
+ * temporal-scalability-layer-flags:
+ Provide fine-grained control of layer encoding to the
+ outside world. The flags sequence should be a multiple of
+ the periodicity and is indexed by a running count of encoded
+ frames modulo the sequence length.
+ * temporal-scalability-layer-sync-flags:
+ Specify the pattern of inter-layer synchronisation (i.e.
+ which of the frames generated by the layer encoding
+ specification represent an inter-layer synchronisation).
+ There must be one entry per entry in
+ temporal-scalability-layer-flags.
+ - apply temporal scalability settings and expose as buffer
+ metadata.
+ This allows the codec to allocate a given frame to the correct
+ internal bitrate allocator. Additionally, all the
+ non-bitstream metadata needed to payload a temporally scaled
+ stream is now attached to each output buffer as a
+ GstVideoVP8Meta.
+ - add unit test for temporally scaled encoding.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/728>
+
+2020-10-15 18:21:54 +0200 Stéphane Cerveau <scerveau@collabora.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ * gst/udp/gstudp.c:
+ * meson.build:
+ meson: update glib minimum version to 2.56
+ In order to support the symbol g_enum_to_string in various
+ project using GStreamer ( gst-validate etc.), the glib minimum
+ version should be 2.56.0.
+ Remove compat code as glib requirement
+ is now > 2.56
+ Version used by Ubuntu 18.04 LTS
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/774>
+
+2020-10-14 14:30:34 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+ rtpst2022-1-fecenc: fix input seqnum check
+ We need to cast the incremented last seqnum to guint16 for
+ consistent checks on wraparound
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/770>
+
+2020-09-12 09:02:30 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/flv/gstflvmux.c:
+ * gst/flv/gstflvmux.h:
+ flvmux: Correct time types
+ - last_dts is in milliseconds, not nanoseconds as expected for
+ GstClockTime. Make it a generic guint64.
+ - Use GstClockTime for the fields that actually contain nanoseconds.
+ None of them should become negative.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/766>
+
+2020-10-09 09:31:27 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+ rtpst2022-1-fecenc: Don't unconditionally use GLib 2.60 APIs
+ g_queue_clear_full() in this case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/768>
+
+2020-10-08 18:54:55 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/rtp/rtpulpfeccommon.c:
+ rtpulpfec: fix potential alignment issue in xor function
+ https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/753#note_646453
+ for context
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/753>
+
+2020-10-06 03:03:13 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpbin.h:
+ * gst/rtpmanager/gstrtpmanager.c:
+ * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+ * gst/rtpmanager/gstrtpst2022-1-fecenc.h:
+ * gst/rtpmanager/meson.build:
+ * tests/check/elements/rtpst2022-1-fecenc.c:
+ * tests/check/meson.build:
+ rtpmanager: implement SMPTE 2022-1 FEC encoder
+ + improve integration of FEC encoders in rtpbin
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/753>
+
+2020-10-06 03:13:30 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtpmanager/gstrtpbin.c:
+ * gst/rtpmanager/gstrtpbin.h:
+ * gst/rtpmanager/gstrtpmanager.c:
+ * gst/rtpmanager/gstrtpst2022-1-fecdec.c:
+ * gst/rtpmanager/gstrtpst2022-1-fecdec.h:
+ * gst/rtpmanager/meson.build:
+ * tests/check/elements/rtpst2022-1-fecdec.c:
+ * tests/check/meson.build:
+ rtpmanager: implement SMPTE 2022-1 FEC decoder
+ + improve integration of FEC decoders in rtpbin
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/753>
+
+2020-07-08 17:28:31 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/rtpmanager/gstrtpfunnel.c:
+ * tests/check/elements/rtpfunnel.c:
+ rtpfunnel: Also forward custom sticky event
+ This is useful to track metadata about each group of packets
+ Also include a unit test
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/666>
+
+2020-09-29 09:44:54 -0300 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/isomp4/gstqtmux-doc.c:
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstqtmuxmap.c:
+ isomp4: Rename GstQTMux to GstBaseQTMux to avoid breaking API
+ Since 52b63de19ada283c1180c8fc00cacb1465fdf10f the qtmux GType was
+ renamed GstQTMuxElement which breaks presets, revert that change.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/755>
+
+2020-09-28 18:25:21 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/rtp/gstrtpdvpay.c:
+ * gst/rtp/gstrtph261pay.c:
+ * gst/rtp/gstrtph263pay.c:
+ * gst/rtp/gstrtph263ppay.c:
+ * gst/rtp/gstrtph264pay.c:
+ * gst/rtp/gstrtph265pay.c:
+ * gst/rtp/gstrtpj2kpay.c:
+ * gst/rtp/gstrtpjpegpay.c:
+ * gst/rtp/gstrtpklvpay.c:
+ * gst/rtp/gstrtpmp4vpay.c:
+ * gst/rtp/gstrtpmpvpay.c:
+ * gst/rtp/gstrtptheorapay.c:
+ * gst/rtp/gstrtpvp8pay.c:
+ * gst/rtp/gstrtpvp9pay.c:
+ rtp: Fix allocations to support source-info property
+ Use gst_rtp_base_payload_allocate_output_buffer() instead of
+ gst_rtp_buffer_new_allocate() in order to allocate RTP buffer with
+ correct number of CSRCs according to the meta.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/612>
+
+2015-10-23 11:08:56 +0200 Stian Selnes <stian@pexip.com>
+
+ * gst/rtp/gstrtpvp8pay.c:
+ rtpvp8pay: Fix allocation to support source-info property
+ Use gst_rtp_base_payload_allocate_output_buffer() in order to allocate
+ RTP buffer with correct number of CSRCs according to the meta.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/314
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/612>
+
+2020-09-28 15:36:00 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ qtmux: output the correct limits in error messages
+ Having the current bytes being less than the limit was confusing!
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/732>
+
+2020-07-31 16:47:37 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstqtmux.h:
+ * tests/check/elements/qtmux.c:
+ qtmux: properly support initial caps nego failure
+ Scenario:
+ - gap event causes h264parse to push made up caps that may fail checks
+ inside qtmux (e.g missing codec_data).
+ - the caps event has already been marked as received and is sticky on
+ the sink pad
+ - gst_qt_mux_pad_can_renegotiate() will retrieve the failed caps event
+ using gst_pad_get_current_caps() and reject the correct updated caps
+ with codec_data.
+ - Failure!
+ Keep track of the configured caps ourselves instead of relying on the
+ sticky event on the pad.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/732>
+
+2020-07-22 15:34:44 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstqtmux.h:
+ qtmux: support non-seekable downstream mode
+ Write an mdat per buffer in that case.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/732>
+
+2020-09-23 15:25:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: Remove the rtpjitterbuffer with the stream
+ Since !348, the jitterbuffer was only removed with the session. This restores
+ the original behaviour and removes the jitterbuffer when the stream is
+ removed. This avoid accumulating jitterbuffer objects into the bin when a
+ session is reused.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/735>
+
+2020-09-23 13:26:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/rtpmanager/gstrtpbin.c:
+ rtpbin: Cleanup dead code
+ The rtpjitterbuffer is now part of the session elements, we no longer need
+ to do the ref_sink dance when signalling it. It is already owned by the bin
+ when signalled. Also, the code that handles generic session elements already
+ handle the ref_sink() calls since:
+ 03dc22951bacb6fdc3868c8f801e6a52c33a745f
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/735>
+
+2020-09-18 16:09:20 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/rtp/gstrtph264depay.c:
+ * gst/rtp/gstrtph264depay.h:
+ * gst/rtp/gstrtph265depay.c:
+ * gst/rtp/gstrtph265depay.h:
+ * tests/check/elements/rtph264.c:
+ rtph26*depay: drop FU's without a corresponding start bit
+ If we have not received a FU with a start bit set, any subsequent FU
+ data is not useful at all and would result in an invalid stream.
+ This case is constructed from multiple requirements in
+ RFC 3984 Section 5.8 and RFC 7798 Section 4.4.3. Following are excerpts
+ from RFC 3984 but RFC 7798 contains similar language.
+ The FU in a single FU case is forbidden:
+ A fragmented NAL unit MUST NOT be transmitted in one FU; i.e., the
+ Start bit and End bit MUST NOT both be set to one in the same FU
+ header.
+ and dropping is possible:
+ If a fragmentation unit is lost, the receiver SHOULD discard all
+ following fragmentation units in transmission order corresponding to
+ the same fragmented NAL unit.
+ The jump in seqnum case is supported by this from the specification
+ instead of implementing the forbidden_zero_bit mangling:
+ If a fragmentation unit is lost, the receiver SHOULD discard all
+ following fragmentation units in transmission order corresponding to
+ the same fragmented NAL unit.
+ A receiver in an endpoint or in a MANE MAY aggregate the first n-1
+ fragments of a NAL unit to an (incomplete) NAL unit, even if fragment
+ n of that NAL unit is not received. In this case, the
+ forbidden_zero_bit of the NAL unit MUST be set to one to indicate a
+ syntax violation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/730>
+
+2020-09-20 21:06:19 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/imagefreeze/gstimagefreeze.c:
+ imagefreeze: Response caps query from srcpad
+ ... and chain up to default query handler for unhandled query types.
+ Unhandled query shouldn't be returned with FALSE if there's no special needs.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/731>
+
+2020-09-16 12:15:09 +1000 Matthew Waters <matthew@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/isomp4/gstqtmux-doc.c:
+ * gst/isomp4/gstqtmux-doc.h:
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstqtmux.h:
+ qtmux: make documentation happy
+ introduce a base qtmux class that we can install documentation snippets
+ on instead of duplicating across alll the isomp4 elements
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-05-28 19:40:24 +1000 Matthew Waters <matthew@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/isomp4/atoms.c:
+ * gst/isomp4/atoms.h:
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/gstqtmux.h:
+ * gst/isomp4/gstqtmuxmap.c:
+ * tests/check/elements/qtmux.c:
+ isomp4/mux: add a fragment mode for initial moov with data
+ Used by some proprietary software for their fragmented files.
+ Adds some support for multi-stream fragmented files
+ Flow is as follows.
+ 1. The first 'fragment' is written as a self-contained fragmented
+ mdat+moov complete with an edit list and durations, tags, etc.
+ 2. Subsequent fragments are written with a mdat+moof and each stream is
+ interleaved as data arrives (currently ignoring the interleave-*
+ properties). data-offsets in both the traf and the trun ensure
+ data is read from the correct place on demuxing. Data/chunk offsets
+ are also kept for writing out the final moov.
+ 3. On finalisation, the initial moov is invalidated to a hoov and the
+ size of the first mdat is extended to cover the entire file contents.
+ Then a moov is written as regularly would in moov-at-end mode (the
+ default).
+ This results in a file that is playable throughout while leaving a
+ finalised file on completion for players that do not understand
+ fragmented mp4.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-06-25 16:37:56 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: increase some logging on streams and sample parsing
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-06-25 16:35:45 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: bail out when encountering an atom with a size of 0
+ A size 0 atom means the atom extends to the end of the file. No further
+ valid atoms will ever follow. Avoids a subsequent scan for an atom from
+ one byte earlier after encountering a size 0 atom.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-06-25 16:33:04 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: fix subsequent moof parsing after moov with valid samples
+ reset the moof_offset back to its original value like is done in the
+ error case just before.
+ Fixes subsequent parsing of a moof following a moov that contains valid
+ samples in a non-streaming fragmented mp4.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-06-25 16:30:28 +1000 Matthew Waters <matthew@centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: extend edit list when fragmented
+ When we are fragmented, the edit list may only refer to the portion of
+ the media that is in the moov. Extend the edit list stop time when we
+ if there is only one qt segment and we are reading a fragmented file.
+ Fixes playback of some fragmented mp4 files generated by proprietary
+ programs.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-09-15 14:22:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * meson_options.txt:
+ meson: Allow overriding qt5 feature
+ This will allow controlling that feature from gst-build
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/729>
+
+2015-11-17 19:14:01 -0500 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/multifile/gstsplitmuxsrc.c:
+ splitmuxsrc: Implement segment query
+ Fixes #239
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/713>
+
+2020-09-14 10:15:35 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtp/gstrtpmp4gdepay.c:
+ rtpmp4gdepay: Allow lower-case "aac-hbr" instead of correct "AAC-hbr"
+ Various live555 based products are using the wrong "mode" string or
+ seem to assume case-insensitive matching, which is wrong.
+ Examples for this are the Yuan SC6C0N1 mini and the Kiloview E2.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/727>
+
+2020-05-02 02:21:00 +0200 Stefan Brüns <stefan.bruens@rwth-aachen.de>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Add support for AAX encrypted audio streams
+ This is modelled after the DASH Common Encryption scheme, but is somewhat
+ simpler as more parts are fixed, i.e. just one encryption scheme.
+ The output caps are fixed to 'application/x-aavd'. All information
+ required for decryption are part of the 'adrm' atom, which is passed
+ on as a property. The property is attached to the buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/577>
+
+2020-05-02 02:20:44 +0200 Stefan Brüns <stefan.bruens@rwth-aachen.de>
+
+ * gst/isomp4/fourcc.h:
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux_types.c:
+ qtdemux: Add 'aavd' and related fourcc codes for AAX encrypted audio
+ The 'aavd' box is contained in the 'stsd' sample description. The 'aavd'
+ box follows the layout of an 'mp4a' entry, i.e. it contains a single
+ standard 'esds' extension box, and the two proprietary 'adrm' and 'aabd'
+ extension boxes.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/577>
+
+2014-06-23 08:46:37 +0200 Haakon Sporsheim <haakon@pexip.com>
+
+ * ext/vpx/gstvp8dec.c:
+ * ext/vpx/gstvp9dec.c:
+ * ext/vpx/gstvpxdec.c:
+ * ext/vpx/gstvpxdec.h:
+ vpxdec: request a sync point on decoder errors
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/725>
+
+2020-09-13 18:31:57 +0200 Camilo Celis Guzman <camilo@pexip.com>
+
+ * gst/rtp/gstrtpvrawpay.c:
+ rtp/vrawpay: use alloc_output_buffer from base class
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/726>
+
+2020-09-07 23:20:58 +0800 Ricky Tang <ricky@deepsentinel.com>
+
+ * docs/gst_plugins_cache.json:
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Fix push-backchannel-buffer parameter mismatch
+ When using python, signal parameter must match with function.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/724>
+
+2020-09-10 11:24:32 +0200 Jérôme Laheurte <jlaheurte@quividi.net>
+
+ * ext/jpeg/gstjpegdec.c:
+ jpegdec: check buffer size before dereferencing. Fixes #541
+ Some cameras (Panacast) have buggy drivers/firmware which send
+ invalid JPEG frames, containing no data, which makes jpegdec
+ crash because it assumes the frame is at least 2 bytes long.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/723>
+
+2020-09-10 11:11:00 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/flv/gstflvmux.c:
+ flvmux: Improve logging of gst_flv_mux_buffer_to_tag_internal
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/722>
+
+2020-09-09 15:12:53 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/flv/gstflvmux.c:
+ flvmux: Move stream skipping to GstAggregatorPadClass.skip_buffer
+ Besides looking like the correct place to put this, it allows us to drop
+ the entire aggregator queue. The old implementation only dropped at most
+ one buffer for each call of aggregate.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/722>
+
+2020-09-08 17:35:50 +0200 Havard Graff <havard@pexip.com>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: plug memory-leak
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/718>
+
+2020-08-28 18:09:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * ext/vpx/gstvp9enc.c:
+ * ext/vpx/gstvp9enc.h:
+ * ext/vpx/meson.build:
+ vp9enc: expose row-mt property
+ With recent libvpx versions, multithreading can be enabled on
+ a per-tile basis, instead of on a per tile-column basis.
+ In combination with the new tile-rows property, this allows the
+ encoder to make much better use of the available CPU power.
+ Bump minimum libvpx version to 1.7.0
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/707>
+
+2020-08-28 17:45:48 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * ext/vpx/gstvpxenc.c:
+ vpxenc: change default for deadline to good quality
+ Having the deadline set to best quality causes the encoder
+ to be absurdly slow, most real-life users will want the good
+ quality tradeoff instead.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/707>
+
+2020-08-28 17:39:47 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * ext/vpx/gstvp9enc.c:
+ * ext/vpx/gstvp9enc.h:
+ vp9enc: expose tile-columns and tile-rows properties
+ Based on patch by Stian Selnes <stian@pexip.com>.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/707>
+
+2020-08-28 17:35:26 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * ext/vpx/gstvpxenc.c:
+ * ext/vpx/gstvpxenc.h:
+ vpxenc: add configure_encoder virtual method
+ For subclasses to expose format-specific properties
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/707>
+
+2020-09-08 20:57:33 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/multifile/gstsplitmuxsink.c:
+ splitmuxsink: fix sink pad release while PLAYING
+ - Release the split mux lock while removing the probes
+ - Flush the sinkpad to unblock other pads
+ - Turn check_completed_gop into a do while statement, when
+ waking up we want to recheck whether the current GOP is
+ ready for sending
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/719>
+
+2017-10-31 09:40:33 +0000 John-Mark Bell <jmb@pexip.com>
+
+ * tests/check/elements/vp8enc.c:
+ vp8enc: improve unit tests
+ - make test_encode_simple cope with libvpx built with
+ CONFIG_REALTIME_ONLY. Sadly, there's no way to detect this at
+ runtime beyond trying to set lag-in-frames to >0, pushing a
+ buffer and catching the GST_FLOW_NOT_NEGOTIATED return.
+ - fix bitrot in test_encode_simple_when_bitrate_set_to_zero.
+ - port test_encode_simple to GstHarness and introduce a separate
+ test for the lag-in-frames property.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/708>
+
+2020-08-21 16:03:09 +0200 Jakub Adam <jakub.adam@collabora.com>
+
+ * docs/gst_plugins_cache.json:
+ docs: Update plugin cache
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/705>
+
+2020-03-24 19:35:07 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/vpx/gstvp9dec.c:
+ * ext/vpx/gstvp9enc.c:
+ * ext/vpx/gstvpxenc.c:
+ vpx: Support GST_VIDEO_FORMAT_I422_10LE
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/705>
+
+2020-03-24 17:16:59 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/vpx/gstvp9dec.c:
+ * ext/vpx/gstvp9enc.c:
+ * ext/vpx/gstvpxenc.c:
+ vpx: Support GST_VIDEO_FORMAT_I420_10LE
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/705>
+
+2020-03-23 21:44:30 +0100 Jakub Adam <jakub.adam@collabora.com>
+
+ * ext/vpx/gstvp9enc.c:
+ * ext/vpx/gstvpxenc.c:
+ vp9enc: support GST_VIDEO_FORMAT_Y444
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/705>
+
+2020-09-08 17:30:35 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * .gitlab-ci.yml:
+ ci: include template from gst-ci master branch again
+
+2020-09-08 16:58:37 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * meson.build:
+ Back to development
+
=== release 1.18.0 ===
2020-09-08 00:05:14 +0100 Tim-Philipp Müller <tim@centricular.com>
+ * .gitlab-ci.yml:
* ChangeLog:
* NEWS:
* README:
* RELEASE:
+ * docs/gst_plugins_cache.json:
* gst-plugins-good.doap:
* meson.build:
Release 1.18.0
diff --git a/NEWS b/NEWS
index dba9c7c47..cc6c3b4a8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,11 +1,23 @@
-GStreamer 1.18 Release Notes
+GStreamer 1.20 Release Notes
-GStreamer 1.18.0 was originally released on 7 September 2020.
+GStreamer 1.20 has not been released yet. It is scheduled for release
+around July 2021.
-See https://gstreamer.freedesktop.org/releases/1.18/ for the latest
+1.19.x is the unstable development version that is being developed in
+the git master branch and which will eventually result in 1.20, and
+1.19.1 is the current development release in that series
+
+It is expected that feature freeze will be around June/July 2021,
+followed by several 1.19 pre-releases and the new 1.20 stable release
+around July 2021.
+
+1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
+1.10, 1.8, 1.6,, 1.4, 1.2 and 1.0 release series.
+
+See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
-Last updated: Monday 7 September 2020, 10:30 UTC (log)
+Last updated: Sunday 30 May 2021, 16:00 UTC (log)
Introduction
@@ -18,1639 +30,87 @@ fixes and other improvements.
Highlights
-- GstTranscoder: new high level API for applications to transcode
- media files from one format to another
-
-- High Dynamic Range (HDR) video information representation and
- signalling enhancements
-
-- Instant playback rate change support
-
-- Active Format Description (AFD) and Bar Data support
-
-- ONVIF trick modes support in both GStreamer RTSP server and client
-
-- Hardware-accelerated video decoding on Windows via DXVA2 /
- Direct3D11
-
-- Microsoft Media Foundation plugin for video capture and
- hardware-accelerated video encoding on Windows
-
-- qmlgloverlay: New overlay element that renders a QtQuick scene over
- the top of an input video stream
-
-- New imagesequencesrc element to easily create a video stream from a
- sequence of jpeg or png images
-
-- dashsink: Add new sink to produce DASH content
-
-- dvbsubenc: DVB Subtitle encoder element
-
-- TV broadcast compliant MPEG-TS muxing with constant bitrate muxing
- and SCTE-35 support
-
-- rtmp2: new RTMP client source and sink element implementation
-
-- svthevcenc: new SVT-HEVC-based H.265 video encoder
-
-- vaapioverlay compositor element using VA-API
-
-- rtpmanager support for Google’s Transport-Wide Congestion Control
- (twcc) RTP extension
-
-- splitmuxsink and splitmuxsrc gained support for auxiliary video
- streams
-
-- webrtcbin now contains some initial support for renegotiation
- involving stream addition and removal
-
-- New RTP source and sink elements to easily set up RTP streaming via
- rtp:// URIs
-
-- New Audio Video Transport Protocol (AVTP) plugin for Time-Sensitive
- Applications
-
-- Support for the Video Services Forum’s Reliable Internet Stream
- Transport (RIST) TR-06-1 Simple Profile
-
-- Universal Windows Platform (UWP) support
-
-- rpicamsrc element for capturing from the Raspberry Pi camera
-
-- RTSP Server TCP interleaved backpressure handling improvements as
- well as support for Scale/Speed headers
-
-- GStreamer Editing Services gained support for nested timelines,
- per-clip speed rate control and the OpenTimelineIO format.
-
-- Autotools build system has been removed in favour of Meson
+- this section will be completed in due course
Major new features and changes
Noteworthy new features and API
-Instant playback rate changes
-
-Changing the playback rate as quickly as possible so far always required
-a flushing seek. This generally works, but has the disadvantage of
-flushing all data from the playback pipeline and requiring the demuxer
-or parser to do a full-blown seek including resetting its internal state
-and resetting the position of the data source. It might also require
-considerable decoding effort to get to the right position to resume
-playback from at the higher rate.
-
-This release adds a new mechanism to achieve quasi-instant rate changes
-in certain playback pipelines without interrupting the flow of data in
-the pipeline. This is activated by sending a seek with the
-GST_SEEK_FLAG_INSTANT_RATE_CHANGE flag and start_type = stop_type =
-GST_SEEK_TYPE_NONE. This flag does not work for all pipelines, in which
-case it is necessary to fall back to sending a full flushing seek to
-change the playback rate. When using this flag, the seek event is only
-allowed to change the current rate and can modify the trickmode flags
-(e.g. keyframe only or not), but it is not possible to change the
-current playback position, playback direction or do a flush.
-
-This is particularly useful for streaming use cases like HLS or DASH
-where the streaming download should not be interrupted when changing
-rate.
-
-Instant rate changing is handled in the pipeline in a specific sequence
-which is detailed in the seeking design docs. Most elements don’t need
-to worry about this, only elements that sync to the clock need some
-special handling which is implemented in the GstBaseSink base class, so
-should be taken care of automatically in most normal playback pipelines
-and sink elements.
-
-See Jan’s GStreamer Conference 2019 talk “Changing Playback Rate
-Instantly” for more information.
-
-You can try this feature by passing the -i command line option to
-gst-play-1.0. It is supported at least by qtdemux, tsdemux, hlsdemux,
-and dashdemux.
-
-Google Transport-Wide Congestion Control
-
-rtpmanager now supports the parsing and generating of RTCP messages for
-the Google Transport-Wide Congestion Control RTP Extension, as described
-in:
-https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01.
-
-This “just” provides the required plumbing/infrastructure, it does not
-actually make effect any actual congestion control on the sender side,
-but rather provides information for applications to use to make such
-decisions.
-
-See Håvard’s “Google Transport-Wide Congestion Control” talk for more
-information about this feature.
-
-GstTranscoder: a new high-level transcoding API for applications
-
-The new GstTranscoder library, along with transcodebin and
-uritranscodebin elements, provides high level API for applications to
-transcode media files from one format to another. Watch Thibault’s talk
-“GstTranscoder: A High Level API to Quickly Implement Transcoding
-Capabilities in your Applications” for more information.
-
-This also comes with a gst-transcoder-1.0 command line utility to
-transcode one URI into another URI based on the specified encoding
-profile.
-
-Active Format Description (AFD) and Bar Data support
-
-The GstVideo Ancillary Data API has gained support for Active Format
-Description (AFD) and Bar data.
-
-This includes various two new buffer metas: GstVideoAFDMeta and
-GstVideoBarMeta.
-
-GStreamer now also parses and extracts AFD/Bar data in the h264/h265
-video parsers, and supports both capturing them and outputting them in
-the decklink elements. See Aaron’s lightning talk at the GStreamer
-Conference for more background.
-
-ONVIF trick modes support in both GStreamer RTSP server and client
-
-- Support for the various trick modes described in section 6 of the
- ONVIF streaming spec has been implemented in both gst-rtsp-server
- and rtspsrc.
-- Various new properties in rtspsrc must be set to take advantage of
- the ONVIF support
-- Examples are available here: test-onvif-server.c and
- test-onvif-client.c
-- Watch Mathieu Duponchelle’s talk “Implementing a Trickmode Player
- with ONVIF, RTSP and GStreamer” for more information and a live
- demo.
-
-GStreamer Codecs library with decoder base classes
-
-This introduces a new library in gst-plugins-bad which contains a set of
-base classes that handle bitstream parsing and state tracking for the
-purpose of decoding different codecs. Currently H264, H265, VP8 and VP9
-are supported. These bases classes are meant primarily for internal use
-in GStreamer and are used in various decoder elements in connection with
-low level decoding APIs like DXVA, NVDEC, VAAPI and V4L2 State Less
-decoders. The new library is named gstreamer-codecs-1.0 /
-libgstcodecs-1.0 and is not yet guaranteed to be API stable across major
-versions.
-
-MPEG-TS muxing improvements
-
-The GStreamer MPEG-TS muxer has seen major improvements on various
-fronts in this cycle:
-
-- It has been ported to the GstAggregator base class which means it
- can work in defined-latency mode with live input sources and
- continue streaming if one of the inputs stops producing data.
-
-- atscmux, a new ATSC-specific tsmux subclass
-
-- Constant Bit Rate (CBR) muxing support via the new bitrate property
- which allows setting the target bitrate in bps. If this is set the
- muxer will insert null packets as padding to achieve the desired
- multiplex-wide constant bitrate.
-
-- compliance fixes for TV broadcasting use cases (esp. ATSC). See
- Jan’s talk “TV Broadcast compliant MPEG-TS” for details.
-
-- Streams can now be added and removed at runtime: Until now, any
- streams in tsmux had to be present when the element started
- outputting its first buffer. Now they can appear at any point during
- the stream, or even disappear and reappear later using the same PID.
-
-- new pcr-interval property allows applications to configure the
- desired interval instead of hardcoding it
-
-- basic SCTE-35 support. This is enabled by setting the scte-35-pid
- property on the muxer. Sending SCTE-35 commands is then done by
- creating the appropriate SCTE-35 GstMpegtsSection and sending them
- on the muxer.
-
-- MPEG-2 AAC handling improvements
+- this section will be filled in in due course
New elements
-- New qmlgloverlay element for rendering a QtQuick scene over the top
- of a video stream. qmlgloverlay requires that Qt support adopting an
- external OpenGL context and is known to work on X11 and Windows.
- Wayland is known not to work due to limitations within Qt. Check out
- the example to see how it works.
-
-- The clocksync element is a generic element that can be placed in a
- pipeline to synchronise passing buffers to the clock at that point.
- This is similar to identity sync=true, but because it isn’t
- GstBaseTransform-based, it can process GstBufferLists without
- breaking them into separate GstBuffers. It is also more discoverable
- than the identity option. Note that you do not need to insert this
- element into your pipeline to make GStreamer sync to the pipeline
- clock, this is usually handled automatically by the elements in the
- pipeline (sources and sinks mostly). This element is useful to feed
- non-live input such as local files into elements that expect live
- input such as webrtcbin.`
-
-- New imagesequencesrc element to easily create a video stream from a
- sequence of JPEG or PNG images (or any other encoding where the type
- can be detected), basically a multifilesrc made specifically for
- image sequences.
-
-- rpicamsrc element for capturing raw or encoded video (H.264, MJPEG)
- from the Raspberry Pi camera. This works much like the popular
- raspivid command line utility but outputs data nicely timestamped
- and formatted in order to integrate nicely with other GStreamer
- elements. Also comes with a device provider so applications can
- discover the camera if available.
-
-- aatv and cacatv video filters that transform video ASCII art style
-
-- avtp: new Audio Video Transport Protocol (AVTP) plugin for Linux.
- See Andre Guedes’ talk “Audio/Video Bridging (AVB) support in
- GStreamer” for more details.
-
-- clockselect: a pipeline element that enables clock selection/forcing
- via gst-launch pipeline syntax.
-
-- dashsink: Add new sink to produce DASH content. See Stéphane’s talk
- or blog post for details.
-
-- dvbsubenc: a DVB subtitle encoder element
-
-- microdns: a libmicrodns-based mdns device provider to discover RTSP
- cameras on the local network
-
-- mlaudiosink: new audio sink element for the Magic Leap platform,
- accompanied by an MLSDK implementation in the amc plugin
-
-- msdkvp9enc: VP9 encoder element for the Intel MediaSDK
-
-- rist: new plugin implementing support for the Video Services Forum’s
- Reliable Internet Stream Transport (RIST) TR-06-1 Simple Profile.
- See Nicolas’ blog post “GStreamer support for the RIST
- Specification” for more details.
-
-- rtmp2: new RTMP client source and sink elements with fully
- asynchronous network operations, better robustness and additional
- features such as handling ping and stats messages, and adobe-style
- authentication. The new rtmp2src and rtmp2sink elements should be
- API-compatible with the old rtmpsrc / rtmpsink elements and should
- work as drop-in replacements.
-
-- new RTP source and sink elements to easily set up RTP streaming via
- rtp:// URIs: The rtpsink and rtpsrc elements add an URI interface so
- that streams can be decoded with decodebin using rtp:// URIs. These
- can be used as follows: ``` gst-launch-1.0 videotestsrc ! x264enc !
- rtph264pay config-interval=3 ! rtpsink uri=rtp://239.1.1.1:1234
-
- gst-launch-1.0 videotestsrc ! x264enc ! rtph264pay config-interval=1
- ! rtpsink uri=rtp://239.1.2.3:5000 gst-launch-1.0 rtpsrc
- uri=rtp://239.1.2.3:5000?encoding-name=H264 ! rtph264depay !
- avdec_h264 ! videoconvert ! xvimagesink
-
- gst-launch-1.0 videotestsrc ! avenc_mpeg4 ! rtpmp4vpay
- config-interval=1 ! rtpsink uri=rtp://239.1.2.3:5000 gst-launch-1.0
- rtpsrc uri=rtp://239.1.2.3:5000?encoding-name=MP4V-ES ! rtpmp4vdepay
- ! avdec_mpeg4 ! videoconvert ! xvimagesink ```
-
-- svthevcenc: new SVT-HEVC-based H.265 video encoder
-
-- switchbin: new helper element which chooses between a set of
- processing chains (paths) based on input caps, and changes the
- active chain if new caps arrive. Paths are child objects, which are
- accessed by the GstChildProxy interface. See the switchbin
- documentation for a usage example.
-
-- vah264dec: new experimental va plugin with an element for H.264
- decoding with VA-API using GStreamer’s new stateless decoder
- infrastructure (see Linux section below).
-
-- v4l2codecs: introduce an V4L2 CODECs Accelerator supporting the new
- CODECs uAPI in the Linux kernel (see Linux section below)
-
-- zxing new plugin to detect QR codes and barcodes, based on libzxing
-
-- also see the Rust plugins section below which contains plenty of new
- exciting plugins written in Rust!
+- this section will be filled in in due course
New element features and additions
-GStreamer core
-
-- filesink: Add a new “full” buffer mode. Previously the default and
- full modes were the same. Now the default mode is like before: it
- accumulates all buffers in a buffer list until the threshold is
- reached and then writes them all out, potentially in multiple
- writes. The new full mode works by always copying memory to a single
- memory area and writing everything out with a single write once the
- threshold is reached.
-
-- multiqueue: Add stats property and
- current-level-{buffers, bytes, time} pad properties to query the
- current levels of the corresponding internal queue.
-
-Plugins Base
-
-- alsa: implement a device provider
-
-- alsasrc: added use-driver-timestamp property to force use of
- pipeline timestamps (and disable driver timestamps) if so desired
-
-- audioconvert: fix changing the mix-matrix property at runtime
-
-- appsrc: added support for segment forwarding or custom GstSegments
- via GstSample, enabled via the handle-segment-change property. This
- only works for segments in TIME format for now.
-
-- compositor: various performance optimisations, checkerboard drawing
- fixes, and support for VUYA format
-
-- encodebin: Fix and refactor smart encoding; ensure that a single
- segment is pushed into encoders; improve force-key-unit event
- handling.
-
-- opusenc: Add low delay option (audio-type=restricted-lowdelay) to
- disable the SILK layer and achieve only 5ms delay.
-
-- opusdec: add stats property to retrieve various decoder statistics.
-
-- uridecodebin3: Let decodebin3 do its stream selection if no one
- answers
-
-- decodebin3: Avoid overriding explicit user selection of streams
-
-- playbin: add flag to force use of software decoders over any
- hardware decoders that might also be available
-
-- playbin3, playbin: propagate sink context
-
-- rawvideoparse: Fix tiling support, allow setting colorimetry
-
-- subparse: output plain utf8 text instead of pango-markup formatted
- text if downstream requires it, useful for interop with elements
- that only accept utf8-formatted subtitles such as muxers or closed
- caption converters.
-
-- tcpserversrc, tcpclientsrc: add stats property with TCP connection
- stats (some are only available on Linux though)
-
-- timeoverlay: add show-times-as-dates, datetime-format and
- datetime-epoch properties to display times with dates
-
-- videorate: Fix changing rate property during playback; reverse
- playback fixes; update QoS events taking into account our rate
-
-- videoscale: pass through and transform size sensitive metas instead
- of just dropping them
-
-Plugins Good
-
-- avidemux can handle H.265 video now. Our advice remains to
- immediately cease all contact and communication with anyone who
- hands you H.265 video in an AVI container, however.
-
-- avimux: Add support for S24LE and S32LE raw audio and v210 raw video
- formats; support more than 2 channels of raw audio.
-
-- souphttpsrc: disable session sharing and cookie jar when the cookies
- property is set; correctly handle seeks past the end of the content
-
-- deinterlace: new YADIF deinterlace method which should provide
- better quality than the existing methods and is LGPL licensed;
- alternate fields are supported as input to the deinterlacer as well
- now, and there were also fixes for switching the deinterlace mode on
- the fly.
-
-- flvmux: in streamable mode allow adding new pads even if the initial
- header has already been written. Old clients will only process the
- initial stream, new clients will get a header with the new streams.
- The skip-backwards-streams property can be used to force flvmux to
- skip and drop a few buffers rather than produce timestamps that go
- backward and confuse librtmp-based clients. There’s also better
- handling for timestamp rollover when streaming for a long time.
-
-- imagefreeze: Add live mode, which can be enabled via the new is-live
- property. In this mode frames will only be output in PLAYING state
- according to the negotiated framerate, skipping frames if the output
- can’t keep up (e.g. because it’s blocked downstream). This makes it
- possible to actually use imagefreeze in live pipelines without
- having to manually ensure somehow that it starts outputting at the
- current running time and without still risking to fall behind
- without recovery.
-
-- matroskademux, qtdemux: Provide audio lead-in for some lossy formats
- when doing accurate seeks, to make sure we can actually decode
- samples at the desired position. This is especially important for
- non-linear audio/video editing use-cases.
-
-- matroskademux, matroskamux: Handle interlaced field order (tff, bff)
-
-- matroskamux:
-
- - new offset-to-zero property to offset all streams to start at
- zero. This takes the timestamp of the earliest stream and
- offsets it so that it starts at 0. Some software (VLC,
- ffmpeg-based) does not properly handle Matroska files that start
- at timestamps much bigger than zero, which could happen with
- live streams.
- - added a creation-time property to explicitly set the creation
- time to write into the file headers. Useful when remuxing, for
- example, but also for live feeds where the DateUTC header can be
- set a UTC timestamp corresponding to the beginning of the file.
- - the muxer now also always waits for caps on sparse streams, and
- warns if caps arrive after the header has already been sent,
- otherwise the subtitle track might be silently absent in the
- final file. This might affect applications that send sparse data
- into matroskamux via an appsrc element, which will usually not
- send out the initial caps before it sends out the first buffer.
-
-- pulseaudio: device provider improvements: fix discovery of
- newly-added devices and hide the alsa device provider if we provide
- alsa devices
-
-- qtdemux: raw audio handling improvements, support for AC4 audio, and
- key-units trickmode interval support
-
-- qtmux:
-
- - was ported to the GstAggregator base class which allows for
- better handling of live inputs, but might entail minor
- behavioural changes for sparse inputs if inputs are not live.
- - has also gained a force-create-timecode-trak property to create
- a timecode trak in non-mov flavors, which may not be supported
- by Apple but is supported by other software such as Final Cut
- Pro X
- - also a force-chunks property to force the creation of chunks
- even in single-stream files, which is required for Apple ProRes
- certification.
- - also supports 8k resolutions in prefill mode with ProRes.
-
-- rtpbin gained a request-jitterbuffer signal which allows
- applications to plug in their own jitterbuffer implementation such
- as the threadsharing jitterbuffer from the Rust plugins, for
- example.
-
-- rtprtxsend: add clock-rate-map property to allow generic RTP input
- caps without a clock-rate whilst still supporting the max-size-time
- property for bundled streams.
-
-- rtpssrcdemux: introduce max-streams property to guard against
- attacks where the sender changes SSRC for every RTP packet.
-
-- rtph264pay, rtph264pay: implement STAP-A and various aggregation
- modes controled by the new aggegrate-mode property: none to not
- aggregate NAL units (as before), zero-latency to aggregate NAL units
- until a VCL or suffix unit is included, or max to aggregate all NAL
- units with the same timestamp (which adds one frame of latency). The
- default has been kept at none for backwards compatibility reasons
- and because various RTP/RTSP implementions don’t handle aggregation
- well. For WebRTC use cases this should be set to zero-latency,
- however.
-
-- rtpmp4vpay: add support for config-interval=-1 to resend headers
- with each IDR keyframe, like other video payloaders.
-
-- rtpvp8depay: Add wait-for-keyframe property for waiting until the
- next keyframe after packet loss. Useful if the video stream was not
- encoded with error resilience enabled, in which case packet loss
- tends to cause very bad artefacts when decoding, and waiting for the
- next keyframe instead improves user experience considerably.
-
-- splitmuxsink and splitmuxsrc can now handle auxiliary video streams
- in addition to the primary video stream. The primary video stream is
- still used to select fragment cut points at keyframe boundaries.
- Auxilliary video streams may be broken up at any packet - so
- fragments may not start with a keyframe for those streams.
-
-- splitmuxsink:
-
- - new muxer-preset and sink-preset properties for setting
- muxer/sink presets
- - a new start-index property to set the initial fragment id
- - and a new muxer-pad-map property which explicitly maps
- splitmuxsink pads to the muxer pads they should connect to,
- overriding the implicit logic that tries to match pads but
- yields arbitrary names.
- - Also includes the actual sink element in the fragment-opened and
- fragment-closed element messages now, which is especially useful
- for sinks without a location property or when finalisation of
- the fragments is done asynchronously.
-
-- videocrop: add support for Y444, Y41B and Y42B pixel formats
-
-- vp8enc, vp9enc: change default value of VP8E_SET_STATIC_THRESHOLD
- from 0 to 1 which matches what Google WebRTC does and results in
- lower CPU usage; also added a new bit-per-pixel property to select a
- better default bitrate
-
-- v4l2: add support for ABGR, xBGR, RGBA, and RGBx formats and for
- handling interlaced video in alternate fields interlace mode (one
- field per buffer instead of one frame per picture with both fields
- interleaved)
-
-- v4l2: Profile and level probing support for H264, H265, MPEG-4,
- MPEG-2, VP8, and VP9 video encoders and decoders
-
-Plugins Ugly
-
-- asfdemux: extract more metadata: disc number and disc count
-
-- x264enc:
-
- - respect YouTube bitrate recommendation when user sets the
- YouTube profile preset
- - separate high-10 video formats from 8-bit formats to improve
- depth negotiation and only advertise suitable input raw formats
- for the desired output depth
- - forward downstream colorimetry and chroma-site restrictions to
- upstream elements
- - support more color primaries/mappings
-
-Plugins Bad
-
-- av1enc: add threads, row-mt and tile-{columns,rows} properties for
- this AOMedia AV1 encoder
-
-- ccconverter: implement support for CDP framerate conversions
-
-- ccextractor: Add remove-caption-meta property to remove caption
- metas from the outgoing video buffers
-
-- decklink: add support for 2K DCI video modes, widescreen NTSC/PAL,
- and for parsing/outputting AFD/Bar data. Also implement a simple
- device provider for Decklink devices.
-
-- dtlsrtpenc: add rtp-sync property which synchronises RTP streams to
- the pipeline clock before passing them to funnel for merging with
- RTCP.
-
-- fdkaac: also decode MPEG-2 AAC; encoder now supports more
- multichannel/surround sound layouts
-
-- hlssink2: add action signals for custom playlist/fragment handling:
- Instead of always going through the file system API we allow the
- application to modify the behaviour. For the playlist itself and
- fragments, the application can provide a GOutputStream. In addition
- the sink notifies the application whenever a fragment can be
- deleted.
-
-- interlace: can now output data in alternate fields mode; added field
- switching mode for 2:2 field pattern
-
-- iqa: Add a mode property to enable strict mode that checks that all
- the input streams have the exact same number of frames; also
- implement the child proxy interface
-
-- mpeg2enc: add disable-encode-retries property for lower CPU usage
-
-- mpeg4videoparse: allow re-sending codec config at IDR via
- config-interval=-1
-
-- mpegtsparse: new alignment property to determine number of TS
- packets per output buffer, useful for feeding an MPEG-TS stream for
- sending via udpsink. This can be used in combination with the
- split-on-rai property that makes sure to start a new output buffer
- for any TS packet with the Random Access Indicator set. Also set
- delta unit buffer flag on non-random-access buffers.
-
-- mpegdemux: add an ignore-scr property to ignore the SCR in
- non-compliant MPEG-PS streams with a broken SCR, which will work as
- long as PTS/DTS in the PES header is consistently increasing.
-
-- tsdemux:
-
- - add an ignore-pcr property to ignore MPEG-TS streams with broken
- PCR streams on which we can’t reliably recover correct
- timestamps.
- - new latency property to allow applications to lower the
- advertised worst-case latency of 700ms if they know their
- streams support this (must have timestamps in higher frequency
- than required by the spec)
- - support for AC4 audio
-
-- msdk - Intel Media SDK plugin for hardware-accelerated video
- decoding and encoding on Windows and Linux:
-
- - mappings for more video formats: Y210, Y410, P012_LE, Y212_LE
- - encoders now support bitrate changes and input format changes in
- playing state
- - msdkh264enc, msdkh265enc: add support for CEA708 closed caption
- insertion
- - msdkh264enc, msdkh265enc: set Region of Interest (ROI) region
- from ROI metas
- - msdkh264enc, msdkh265enc: new tune property to enable low-power
- mode
- - msdkh265enc: add support 12-bit 4:2:0 encoding and 8-bit 4:2:2
- encoding and VUYA, Y210, and Y410 as input formats
- - msdkh265enc: add support for screen content coding extension
- - msdkh265dec: add support for main-12/main-12-intra,
- main-422-10/main-422-10-intra 10bit,
- main-422-10/main-422-10-intra 8bit,
- main-422-12/main-422-12-intra, main-444-10/main-444-10-intra,
- main-444-12/main-444-12-intra, and main-444 profiles
- - msdkvp9dec: add support for 12-bit 4:4:4
- - msdkvpp: add support for Y410 and Y210 formats, cropping via
- properties, and a new video-direction property.
-
-- mxf: Add support for CEA-708 CDP from S436 essence tracks. mxfdemux
- can now handle Apple ProRes
-
-- nvdec: add H264 + H265 stateless codec implementation nvh264sldec
- and nvh265sldec with fewer features but improved latency. You can
- set the environment variable GST_USE_NV_STATELESS_CODEC=h264 to use
- the stateless decoder variant as nvh264dec instead of the “normal”
- NVDEC decoder implementation.
-
-- nvdec: add support for 12-bit 4:4:4/4:2:0 and 10-bit 4:2:0 decoding
-
-- nvenc:
-
- - add more rate-control options, support for B-frame encoding (if
- device supports it), an aud property to toggle Access Unit
- Delimiter insertion, and qp-{min,max,const}-{i,p,b} properties.
- - the weighted-pred property enables weighted prediction.
- - support for more input formats, namely 8-bit and 10-bit RGB
- formats (BGRA, RGBA, RGB10A2, BGR10A2) and YV12 and VUYA.
- - on-the-fly resolution changes are now supported as well.
- - in case there are multiple GPUs on the system, there are also
- per-GPU elements registered now, since different devices will
- have different capabilities.
- - nvh265enc can now support 10-bit YUV 4:4:4 encoding and 8-bit
- 4:4:4 / 10-bit 4:2:0 formats up to 8K resolution (with some
- devices). In case of HDR content HDR related SEI nals will be
- inserted automatically.
-
-- openjpeg: enable multi-threaded decoding and add support for
- sub-frame encoding (for lower latency)
-
-- rtponviftimestamp: add opt-out “drop-out-of-segment” property
-
-- spanplc: new stats property
-
-- srt: add support for IPv6 and for using hostnames instead of IP
- addresses; add streamid property, but also allow passing the id via
- the stream URI; add wait-for-connection property to srtsink
-
-- timecodestamper: this element was rewritten with an updated API
- (properties); it has gained many new properties, seeking support and
- support for linear timecode (LTC) from an audio stream.
-
-- uvch264src now comes with a device provider to advertise available
- camera sources that support this interface (mostly Logitech C920s)
-
-- wpe: Add software rendering support and support for mouse scroll
- events
-
-- x265enc: support more 8/10/12 bits 4:2:0, 4:2:2 and 4:4:4 profiles;
- add support for mastering display info and content light level
- encoding SEIs
-
-gst-libav
-
-- Add mapping for SpeedHQ video codec used by NDI
-
-- Add mapping for aptX and aptX-HD
-
-- avivf_mux: support VP9 and AV1
-
-- avvidenc: shift output buffer timestamps and output segment by 1h
- just like x264enc does, to allow for negative DTS.
-
-- avviddec: Limit default number of decoder threads on systems with
- more than 16 cores, as the number of threads used in avdec has a
- direct impact on the latency of the decoder, which is of as many
- frames as threads, so a large numbers of threads can make for
- latency levels that can be problematic in some applications.
-
-- avviddec: Add thread-type property that allows applications to
- specify the preferred multithreading method (auto, frame, slice).
- Note that thread-type=frame may introduce additional latency
- especially in live pipelines, since it introduces a decoding delay
- of number of thread frames.
+- this section will be filled in in due course
Plugin and library moves
-- There were no plugin moves or library moves in this cycle.
+- this section will be filled in in due course
-- The rpicamsrc element was moved into -good from an external
- repository on github.
+- There were no plugin moves or library moves in this cycle.
Plugin removals
The following elements or plugins have been removed:
-- The yadif video deinterlacing plugin from gst-plugins-bad, which was
- one of the few GPL licensed plugins, has been removed in favour of
- deinterlace method=yadif.
-
-- The avdec_cdgraphics CD Graphics video decoder element from
- gst-libav was never usable in GStreamer and we now have a cdgdec
- element written in Rust in gst-plugins-rs to replace it.
-
-- The VDPAU plugin has been unmaintained and unsupported for a very
- long time and does not have the feature set we expect from
- hardware-accelerated video decoders. It’s been superseded by the
- nvcodec plugin leveraging NVIDIA’s NVDEC API.
+- this section will be filled in in due course
Miscellaneous API additions
-GStreamer core
-
-- gst_task_resume(): This new API allows resuming a task if it was
- paused, while leaving it in stopped state if it was stopped or not
- started yet. This can be useful for callback-based driver workflows,
- where you basically want to pause and resume the task when buffers
- are notified while avoiding the race with a gst_task_stop() coming
- from another thread.
-
-- info: add printf extensions GST_TIMEP_FORMAT and GST_STIMEP_FORMAT
- for printing GstClockTime/GstClockTimeDiff pointers, which is much
- more convenient to use in debug log statements than the usual
- GST_TIME_FORMAT-followed-by-GST_TIME_ARGS dance. Also add an
- explicit GST_STACK_TRACE_SHOW_NONE enum value.
-
-- gst_element_get_current_clock_time() and
- gst_element_get_current_running_time(): new helper functions for
- getting an element clock’s time, and the clock time minus base time,
- respectively. Useful when adding additional input branches to
- elements such as compositor, audiomixer, flvmux, interleave or
- input-selector to determine initial pad offsets and such.
-
-- seeking: Add GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED to just skip
- B-frames during trick mode, showing both keyframes + P-frame, and
- add support for it in h264parse and h265parse.
-
-- elementfactory: add GST_ELEMENT_FACTORY_TYPE_HARDWARE to allow
- elements to advertise that they are hardware-based or interact with
- hardware. This has multiple applications:
-
- - it makes it possible to easily differentiate hardware and
- software based element implementations such as audio or video
- encoders and decoders. This is useful in order to force the use
- of software decoders for specific use cases, or to check if a
- selected decoder is actually hardware-accelerated or not.
- - elements interacting with hardware and their respective drivers
- typically don’t know the actually supported capabilities until
- the element is set into at least READY state and can open a
- device handle and probe the hardware.
-
-- gst_uri_from_string_escaped(): identical to gst_uri_from_string()
- except that the userinfo and fragment components of the URI will not
- be unescaped while parsing. This is needed for correctly parsing
- usernames or passwords with : in them .
-
-- paramspecs: new GstParamSpec flag GST_PARAM_CONDITIONALLY_AVAILABLE
- to indicate that a property might not always exist.
-
-- gst_bin_iterate_all_by_element_factory_name() finds elements in a
- bin by factory name
-
-- pad: gst_pad_get_single_internal_link() is a new convenience
- function to return the single internal link of a pad, which is
- useful e.g. to retrieve the output pad of a new multiqueue request
- pad.
-
-- datetime: Add constructors to create datetimes with timestamps in
- microseconds, gst_date_time_new_from_unix_epoch_local_time_usecs()
- and gst_date_time_new_from_unix_epoch_utc_usecs().
-
-- gst_debug_log_get_lines() gets debug log lines formatted in the same
- way the default log handler would print them
-
-- GstSystemClock: Add GST_CLOCK_TYPE_TAI as GStreamer abstraction for
- CLOCK_TAI, to support transmission offloading features where network
- packets are timestamped with the time they are deemed to be actually
- transmitted. Useful in combination with the new AVTP plugin.
-
-- miscellaneous utility functions: gst_clear_uri(),
- gst_structure_take().
-
-- harness: Added gst_harness_pull_until_eos()
-
-- GstBaseSrc:
-
- - gst_base_src_new_segment() allows subclasses to update the
- segment to be used at runtime from the ::create() function. This
- deprecates gst_base_src_new_seamless_segment()
- - gst_base_src_negotiate() allows subclasses to trigger format
- renegotiation at runtime from inside the ::create() or ::alloc()
- function
-
-- GstBaseSink: new stats property and gst_base_sink_get_stats() method
- to retrieve various statistics such as average frame rate and
- dropped/rendered buffers.
-
-- GstBaseTransform: gst_base_transform_reconfigure() is now public
- API, useful for subclasses that need to completely re-implement the
- ::submit_input_buffer() virtual method
-
-- GstAggregator:
-
- - gst_aggregator_update_segment() allows subclasses to update the
- output segment at runtime. Subclasses should use this function
- rather than push a segment event onto the source pad directly.
- - new sample selection API:
- - subclasses should now call gst_aggregator_selected_samples()
- from their ::aggregate() implementation to signal that they
- have selected the next samples they will aggregate
- - GstAggregator will then emit the samples-selected signal
- where handlers can then look up samples per pad via
- gst_aggregator_peek_next_sample().
- - This is useful for example to atomically update input pad
- properties in mixer subclasses such as compositor.
- Applications can now update properties with precise control
- of when these changes will take effect, and for which input
- buffer(s).
- - gst_aggregator_finish_buffer_list() allows subclasses to push
- out a buffer list, improving efficiency in some cases.
- - a ::negotiate() virtual method was added, for consistency with
- other base classes and to allow subclasses to completely
- override the negotiation behaviour.
- - the new ::sink_event_pre_queue() and ::sink_query_pre_queue()
- virtual methods allow subclasses to intercept or handle
- serialized events and queries before they’re queued up
- internally.
-
-GStreamer Plugins Base Libraries
-
-Audio library
-
-- audioaggregator, audiomixer: new output-buffer-duration-fraction
- property which allows use cases such as keeping the buffers output
- by compositor on one branch and audiomixer on another perfectly
- aligned, by requiring the compositor to output a n/d frame rate, and
- setting output-buffer-duration-fraction to d/n on the audiomixer.
-
-- GstAudioDecoder: new max-errors property so applications can
- configure at what point the decoder should error out, or tell it to
- just keep going
-
-- gst_audio_make_raw_caps() and gst_audio_formats_raw() are
- bindings-friendly versions of the GST_AUDIO_CAPS_MAKE() C macro.
-
-- gst_audio_info_from_caps() now handles encoded audio formats as well
-
-PbUtils library
-
-- GstEncodingProfile:
- - Do not restrict number of similar profiles in a container
- - add GstValue serialization function
-- codec utils now support more H.264/H.265 profiles/levels and have
- improved extension handling
-
-RTP library
-
-- rtpbasepayloader: Add scale-rtptime property for scaling RTP
- timestamp according to the segment rate (equivalent to RTSP speed
- parameter). This is useful for ONVIF trickmodes via RTSP.
-
-- rtpbasepayload: add experimental property for embedding twcc
- sequencenumbers for Transport-Wide Congestion Control (gated behind
- the GST_RTP_ENABLE_EXPERIMENTAL_TWCC_PROPERTY environment
- variable) - more generic API for enabling this is expected to land
- in the next development cycle.
-
-- rtcpbuffer: add RTPFB_TYPE_TWCC for Transport-Wide Congestion
- Control
-
-- rtpbuffer: add
- gst_rtp_buffer_get_extension_onebyte_header_from_bytes()``, so that one can parse theGBytes`
- returned by gst_rtp_buffer_get_extension_bytes()
-
-- rtpbasedepayload: Add max-reorder property to make the
- previously-hardcoded value when to consider a sender to have
- restarted configurable. In some scenarios it’s particularly useful
- to set max-reorder=0 to disable the behaviour that the depayloader
- will drop packets: when max-reorder is set to 0 all
- reordered/duplicate packets are considered coming from a restarted
- sender.
-
-RTSP library
-
-- add gst_rtsp_url_get_request_uri_with_control() to create request
- uri combined with control url
-
-- GstRTSPConnection: add the possibility to limit the Content-Length
- for RTSP messages via
- gst_rtsp_connection_set_content_length_limit(). The same
- functionality is also exposed in gst-rtsp-server.
-
-SDP library
-
-- add support for parsing the extmap attribute from caps and storing
- inside caps The extmap attribute allows mapping RTP extension header
- IDs to well-known RTP extension header specifications. See RFC8285
- for details.
-
-Tags library
-
-- update to latest iso-code and support more languages
-
-- add tags for acoustid id & acoustid fingerprint, plus MusicBrainz ID
- handling fixes
-
-Video library
-
-- High Dynamic Range (HDR) video information representation and
- signalling enhancements:
-
- - New APIs for HDR video information representation and
- signalling:
- - GstVideoMasteringDisplayInfo: display color volume info as
- per SMPTE ST 2086
- - GstVideoContentLightLevel: content light level specified in
- CEA-861.3, Appendix A.
- - plus functions to serialise/deserialise and add them to or
- parse them from caps
- - gst_video_color_{matrix,primaries,transfer}_{to,from}_iso():
- new utilility functions for conversion from/to ISO/IEC
- 23001-8
- - add ARIB STD-B67 transfer chracteristic function
- - add SMPTE ST 2084 support and BT 2100 colorimetry
- - define bt2020-10 transfer characteristics for clarity:
- bt707, bt2020-10, and bt2020-12 transfer characteristics are
- functionally identical but have their own unique values in
- the specification.
- - h264parse, h265parse: Parse mastering display info and content
- light level from SEIs.
- - matroskademux: parse HDR metadata
- - matroskamux: Write MasteringMetadata and Max{CLL,FALL}. Enable
- muxing with HDR meta data if upstream provided it
- - avviddec: Extract HDR information if any and map bt2020-10, PQ
- and HLG transfer functions
-
-- added bt601 transfer function (for completeness)
-
-- support for more pixel formats:
-
- - Y412 (packed 12 bits 4:4:4:4)
- - Y212 (packed 12 bits 4:2:2)
- - P012 (semi-planar 4:2:0)
- - P016_{LE,BE} (semi-planar 16 bits 4:2:0)
- - Y444_16{LE,BE} (planar 16 bits 4:4:4)
- - RGB10A2_LE (packed 10-bit RGB with 2-bit alpha channel)
- - NV12_32L32 (NV12 with 32x32 tiles in linear order)
- - NV12_4L4 (NV12 with 4x4 tiles in linear order)
-
-- GstVideoDecoder:
-
- - new max-errors property so applications can configure at what
- point the decoder should error out, or tell it to just keep
- going
-
- - new qos property to disable dropping frames because of QoS, and
- post QoS messages on the bus when dropping frames. This is
- useful for example in a scenario where the decoded video is
- tee-ed off to go into a live sink that syncs to the clock in one
- branch, and an encoding and save to file pipeline in the other
- branch. In that case one wouldn’t want QoS events from the video
- sink make the decoder drop frames because that would also leave
- gaps in the encoding branch then.
-
-- GstVideoEncoder:
-
- - gst_video_encoder_finish_subframe() is new API to push out
- subframes (e.g. slices), so encoders can split the encoding into
- subframes, which can be useful to reduce the overall end-to-end
- latency as we no longer need to wait for the full frame to be
- encoded to start decoding or sending out the data.
- - new min-force-key-unit-interval property allows configuring the
- minimum interval between force-key-unit requests and prevents a
- big bitrate increase if a lot of key-units are requested in a
- short period of time (as might happen in live streaming RTP
- pipelines when packet loss is detected).
- - various force-key-unit event handling fixes
-
-- GstVideoAggregator, compositor, glvideomixer: expose
- max-last-buffer-repeat property on pads. This can be used to have a
- compositor display either the background or a stream on a lower
- zorder after a live input stream freezes for a certain amount of
- time, for example because of network issues.
-
-- gst_video_format_info_component() is new API to find out which
- components are packed into a given plane, which is useful to prevent
- us from assuming a 1-1 mapping between planes and components.
-
-- gst_video_make_raw_caps() and gst_video_formats_raw() are
- bindings-friendly versions of the GST_VIDEO_CAPS_MAKE() C macro.
-
-- video-blend: Add support for blending on top of 16 bit per component
- formats, which makes sure we can support every currently supported
- raw video format for blending subtitles or logos on top of video.
-
-- GST_VIDEO_BUFFER_IS_TOP_FIELD() and
- GST_VIDEO_BUFFER_IS_BOTTOM_FIELD() convenience macros to check
- whether the video buffer contains only the top field or bottom field
- of an interlaced picture.
-
-- GstVideoMeta now includes an alignment field with the
- GstVideoAlignment so buffer producers can explicitly specify the
- exact geometry of the planes, allowing users to easily know the
- padded size and height of each plane. Default values will be used if
- this is not set.
-
- Use gst_video_meta_set_alignment() to set the alignment and
- gst_video_meta_get_plane_size() or gst_video_meta_get_plane_height()
- to compute the plane sizes or plane heights based on the information
- in the video meta.
-
-- gst_video_info_align_full() works like gst_video_info_align() but
- also retrieves the plane sizes.
-
-MPEG-TS library
-
-- support for SCTE-35 sections
-
-- extend support for ATSC tables:
-
- - System Time Table (STT)
- - Master Guide Table (MGT)
- - Rating Region Table (RRT)
+- this section will be filled in in due course
Miscellaneous performance, latency and memory optimisations
-As always there have been many performance and memory usage improvements
-across all components and modules. Some of them have already been
-mentioned elsewhere so won’t be repeated here.
-
-The following list is only a small snapshot of some of the more
-interesting optimisations that haven’t been mentioned in other contexts
-yet:
-
-- caps negotiation, structure and GValue performance optimizations
-
-- systemclock: clock waiting performance improvements (moved from
- GstPoll to GCond for waiting), especially on Windows.
-
-- rtpsession: add support for buffer lists on the recv path for better
- performance with higher packet rate streams.
-
-- rtpjitterbuffer: internal timer handling has been rewritten for
- better performance, see Nicolas’ talk “Revisiting RTP Jitter Buffer
- Timers” for more details.
-
-- H.264/H.265 parsers and RTP payloaders/depayloaders have been
- optimised for latency to make sure data is processed and pushed out
- as quickly as possible
-
-- video-scaler: correctness and performance improvements, esp. for
- interlaced formats and GBRA
-
-- GstVideoEncoder has gained new API to push out subframes
- (e.g. slices), so encoders can split the encoding into subframes,
- which can be useful to reduce the overall end-to-end latency as we
- no longer need to wait for the full frame to be encoded to start
- decoding or sending out the data.
-
- This is complemented by the new GST_VIDEO_BUFFER_FLAG_MARKER which
- is a video-specific buffer flag to mark the end of a video frame, so
- elements can know that they have received all data for a frame
- without waiting for the beginning of the next frame. This is similar
- to how the RTP marker flag is used in many RTP video mappings.
-
- The video encoder base class now also releases the internal stream
- lock before pushing out data, so as to not block the input side of
- things from processing more data in the meantime.
+- this section will be filled in in due course
Miscellaneous other changes and enhancements
-- it is now possible to modify the initial rank of plugin features
- without modifying the source code or writing code to do so
- programmatically via the GST_PLUGIN_FEATURE_RANK environment
- variable. Users can adjust the rank of plugin(s) by passing a
- comma-separated list of feature:rank pairs where rank can be a
- numerical value or one of NONE, MARGINAL, SECONDARY, PRIMARY, and
- MAX. Example: GST_PLUGIN_FEATURE_RANK=myh264dec:MAX,avdec_h264:NONE
- sets the rank of the myh264dec element feature to the maximum and
- that of avdec_h264 to 0 (none), thus ensuring that myh264dec is
- prefered as H264 decoder in an autoplugging context.
-
-- GstDeviceProvider now does a static probe on start as fallback for
- providers that don’t support dynamic probing to make things easier
- for users
-
-WebRTC
-
-- webrtcbin now contains initial support for renegotiation involving
- stream addition and removal. There are a number of caveats to this
- initial renegotiation support and many complex scenarios are known
- to require some work.
-
-- webrtcbin now exposes the internal ICE object for advanced
- configuration options. Using the internal ICE object, it is possible
- to toggle UDP or TCP connection usage as well as provide local
- network addresses.
-
-- Fix a number of call flows within webrtcbin’s GstPromise handling
- where a promise was never replied to. This has been fixed and now a
- promise will always receive a reply.
-
-- webrtcbin now exposes a latency property for configuring the
- internal rtpjitterbuffer latency and buffering when receiving
- streams.
-
-- webrtcbin now only synchronises the RTP part of a stream, allowing
- RTCP messages to skip synchronisation entirely.
-
-- Fixed most of the webrtcbin state properties (connection-state,
- ice-connection-state, signaling-state, but not ice-gathering-state
- as that requires newer API in libnice and will be fixed in the next
- release series) to advance through the state values correctly. Also
- implemented DTLS connection states in the DTLS elements so that
- peer-connection-state is not always new.
-
-- webrtcbin now accounts for the a=ice-lite attribute in a remote SDP
- offer and will configure the internal ICE implementation
- accordingly.
-
-- webrtcbin will now resolve .local candidate addresses using the
- system DNS resolver. .local candidate addresses are now produced by
- web browsers to help protect the privacy of users.
-
-- webrtcbin will now add candidates found in the SDP to the internal
- ICE agent. This was previously unsupported and required using the
- add-ice-candidate signal manually from the application.
-
-- webrtcbin will now correctly parse a TURN URI that contains a
- username or password with a : in it.
-
-- The GStreamer WebRTC library gained a GstWebRTCDataChannel object
- roughly matching the interface exposed by the WebRTC specification
- to allow for easier binding generation and use of data channels.
-
-OpenGL integration
-
-GStreamer OpenGL bindings/build related changes
-
-- The GStreamer OpenGL library (libgstgl) now ships pkg-config files
- for platform-specific API where libgstgl provides a public
- integration interface and a pkg-config file for a dependency on the
- detected OpenGL headers. The new list of pkg-config files in
- addition to the original gstreamer-gl-1.0 are gstreamer-gl-x11-1.0,
- gstreamer-gl-wayland-1.0, gstreamer-gl-egl-1.0, and
- gstreamer-gl-prototypes-1.0 (for OpenGL headers when including
- gst/gl/gstglfuncs.h).
-
-- GStreamer OpenGL now ships some platform-specific introspection data
- for platforms that have a public interface. This should allow for
- easier integration with bindings involving platform specific
- functionality. The new introspection data files are named
- GstGLX11-1.0, GstGLWayland-1.0, and GstGLEGL-1.0.
-
-GStreamer OpenGL Features
-
-- The iOS implementation no longer accesses UIKit objects off the main
- thread fixing a loud warning message when used in iOS applications.
-
-- Support for mouse and keyboard handling using the GstNavigation
- interface was added for the wayland implementation complementing the
- already existing support for the X11 and Windows implementations.
-
-- A new helper base class for source elements, GstGLBaseSrc is
- provided to ease writing source elements producing OpenGL video
- frames.
-
-- Support for some more 12-bit and 16-bit video formats (Y412_LE,
- Y412_BE, Y212_LE, Y212_BE, P012_LE, P012_BE, P016, NV16, NV61) was
- added to glcolorconvert.
-
-- glupload can now import dma-buf’s into external-oes textures.
-
-- A new display type for EGLDevice-based systems was added. It is
- currently opt-in by using either the GST_GL_PLATFORM=egl-device
- environment variable or manual construction
- (gst_gl_display_egl_device_new*()) due to compatibility issues with
- some platforms.
-
-- Support was added for WinRT/UWP using the ANGLE project for running
- OpenGL-based pipelines within a UWP application.
-
-- Various elements now support changing the GstGLDisplay to be used at
- runtime in simple cases. This is primarily helpful for changing or
- adding an OpenGL-based video sink that must share an OpenGL context
- with an external source to an already running pipeline.
-
-GStreamer Vulkan integration
-
-- There is now a GStreamer Vulkan library to provide integration
- points and helpers with applications and external GStreamer Vulkan
- based elements. The structure of the library is modelled similarly
- to the already existing GStreamer OpenGL library. Please note that
- the API is still unstable and may change in future releases,
- particularly around memory handling. The GStreamer Vulkan library
- contains objects for sharing the vkInstance, vkDevice, vkQueue,
- vkImage, VkMemory, etc with other elements and/or the application as
- well as some helper objects for using Vulkan in an application or
- element.
-
-- Added support for building and running on/for the Android and
- Windows systems to complement the existing XCB, Wayland, MacOS, and
- iOS implementations.
-
-- XCB gained support for mouse/keyboard events using the GstNavigation
- API.
-
-- New vulkancolorconvert element for converting between color formats.
- vulkancolorconvert can currently convert to/from all 8-bit RGBA
- formats as well as 8-bit RGBA formats to/from the YUV formats AYUV,
- NV12, and YUY2.
-
-- New vulkanviewconvert element for converting between stereo view
- layouts. vulkanviewconvert can currently convert between all of the
- single memory formats (side-by-side, top-bottom, column-interleaved,
- row-interleaved, checkerboard, left, right, mono).
-
-- New vulkanimageidentity element for a blit from the input vulkan
- image/s to a new vulkan image/s.
-
-- The vulkansink element can now scale the input image to the output
- window/surface size where that information is available.
-
-- The vulkanupload element can now configure a transfer from system
- memory to VulkanImage-based memory. Previously, this required two
- vulkanupload elements.
+- this section will be filled in in due course
Tracing framework and debugging improvements
-- gst_tracing_get_active_tracers() returns a list of active tracer
- objects. This can be used to interact with tracers at runtime using
- GObject API such as action signals. This has been implemented in the
- leaks tracer for snapshotting and retrieving leaked/active objects
- at runtime.
-
-- The leaks tracer can now be interacted with programmatically at
- runtime via GObject action signals:
-
- - get-live-object returns a list of live (allocated) traced
- objects
- - log-live-objects logs a list of live objects into the debug log.
- This is the same as sending the SIGUSR1 signal on unix systems,
- but works on all operating systems including Windows.
- - activity-start-tracking, activity-get-checkpoint,
- activity-log-checkpoint, activity-stop-tracking: add support for
- tracking and checkpointing objects, similar to what was
- previously available via SIGUSR2 on unix systems, but works on
- all operating systems including Windows.
-
-- various GStreamer gdb debug helper improvements:
-
- - new ‘gst-pipeline-tree’ command
- - more gdb helper functions: gst_element_pad(), gst_pipeline() and
- gst_bin_get()
- - support for queries and buffers
- - print more info for segment events, print event seqnums, object
- pointers and structures
- - improve gst-print command to show more pad and element
- information
+- this section will be filled in in due course
Tools
-gst-launch-1.0
-
-- now prints the pipeline position and duration if available when the
- pipeline is advancing. This is hopefully more user-friendly and
- gives visual feedback on the terminal that the pipeline is actually
- up and running. This can be disabled with the --no-position command
- line option.
-
-- the parse-launch pipeline syntax now has support for presets:
- use@preset=<preset-name>" after an element to load a preset.
-
-gst-inspect-1.0
-
-- new --color command line option to force coloured output even if not
- connected to a tty
-
-gst-tester-1.0 (new)
-
-- gst-tester-1.0 is a new tool for plugin developers to launch
- .validatetest files with TAP compatible output, meaning it can
- easily and cleanly be integrated with the meson test harness. It
- allows you to use gst-validate (from the gst-devtools module) to
- write integration tests in any GStreamer repository whilst keeping
- the tests as close as possible to the code. The tool transparently
- handles gst-validate being installed or not: if it is not installed
- those integration tests will simply be skipped.
-
-gst-play-1.0
-
-- interactive keyboard controls now also work on Windows
-
-gst-transcoder-1.0 (new)
-
-- gst-transcoder-1.0 is a new command line tool to transcode one URI
- into another URI based on the specified encoding profile using the
- new GstTranscoder API (see above).
+- this section will be filled in in due course
GStreamer RTSP server
-- Fix issue where the first few packets (i.e. keyframes) could
- sometimes be dropped if the rtsp media pipeline had a live input.
- This was a regression from GStreamer 1.14. There are more fixes
- pending for that which will hopefully land in 1.18.1.
-
-- Fix backpressure handling when sending data in TCP interleave mode
- where RTSP requests and responses and RTP/RTCP packets flow over the
- same RTSP TCP connection: The previous implementation would at some
- point stop sending data to other clients when a single client
- stopped consuming data or did not consume data fast enough. This
- obviously created problems for shared media, where the same stream
- from a single producer pipeline is sent to multiple clients. Instead
- we now manage a backlog in the server’s stream-transport component
- and remove slow clients once this backlog exceeds a maximum duration
- (which is currently hardcoded).
-
-- Onvif Streaming Specification trick modes support (see section at
- the beginning)
-
-- Scale/Speed header support: Speed will deliver the data at the
- requested speed, which means increasing the data bandwidth for
- speeds > 1.0. Scale will attempt to do the same without affecting
- the overall bandwidth requirement vis-a-vis normal playback speed
- (e.g. it might drop data for fast-forward playback).
-
-- rtspclientsink: send buffer lists in one go for better performance
+- this section will be filled in in due course
GStreamer VAAPI
-- A lot of work was done adding support for media-driver (iHD), the
- new VAAPI driver for Intel, mostly for Gen9 onwards.
-
-- Available color formats and frame sizes are now detected at run-time
- according to the context configuration.
-
-- Gallium drivers have been re-enabled in the allowed drivers list
-
-- Improved the mapping between VA formats and GStreamer formats by
- generating a mapping table at run-time since even among different
- drivers the mapping might be different, particularly for RGB with
- little endianness.
-
-- The experimental Flexible Encoding Infrastructure (FEI) elements
- have been removed since they were not really actively maintained or
- tested.
-
-- Enhanced the juggling of DMABuf buffers and VASurface metas
-
-- New vaapioverlay element: a compositor element using VA VPP blend
- capabilities to accelerate overlaying and compositing. Example
- pipeline:
-
- gst-launch-1.0 -vf videotestsrc ! vaapipostproc ! tee name=testsrc ! queue \
- ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 name=overlay ! vaapisink \
- testsrc. ! queue ! overlay.
-
-vaapipostproc
-
-- added video-orientation support, supporting frame mirroring and
- rotation
-
-- added cropping support, either via properties (crop-left,
- crop-right, crop-bottom and crop-top) or buffer meta.
-
-- new skin-tone-enhancenment-level property which is the iHD
- replacement of the i965 driver’s sink-tone-level. Both are
- incompatible with each other, so both were kept.
-
-- handle video colorimetry
-
-- support HDR10 tone mapping
-
-vaapisink
-
-- resurrected wayland backend for non-weston compositors by extracting
- the DMABuf from the VASurface and rendering it.
-
-- merged the video overlay API for wayland. Now applications can
- define the “window” to render on.
-
-- demoted the vaapisink element to secondary rank since libva
- considers rendering as a second-class feature.
-
-VAAPI Encoders
-
-- new common target-percentage property which is the desired target
- percentage of bitrate for variable rate control.
-
-- encoders now extract their caps from the driver at registration
- time.
-
-- vaapivp9enc: added support for low power mode and support for
- profile 2 (profile 0 by default)
-
-- vaapih264enc: new max-qp property that sets the maximum quantization
- value. Support for ICQ and QBVR bitrate control mode, adding a
- quality-factor property for these modes. Support baseline profile as
- constrained-baseline
-
-- vaapih265enc:
-
- - support for main-444 and main-12 encoding profiles.
- - new max-qp property that sets the maximum quantization value.
- - support for ICQ and QBVR bitrate control mode, adding a
- quality-factor property for these modes.
- - handle SCC profiles.
- - num-tile-cols and num-tile-row properties to specify the number
- of tiles to use.
- - the low-delay-b property was deprecated and is now determined
- automatically.
- - improved profile selection through caps.
-
-VAAPI Decoders
-
-- Decoder surfaces are not bound to their context any longer and can
- thus be created and used dynamically, removing the deadlock
- headache.
-
-- Reverse playback is now fluid
-
-- Forward Region-of-Interest (ROI) metas downstream
-
-- GLTextureUploadMeta uses DMABuf when GEM is not available. Now
- Gallium drivers can use this meta for rendering with EGL.
-
-- vaapivp9dec: support for 4:2:2 and 4:4:4 chroma type streams
-
-- vaapih265dec: skip all pictures prior to the first I-frame. Enable
- passing range extension flags to the driver. Handle SCC profiles.
-
-- vaapijpegdec: support for 4:0:0, 4:1:1, 4:2:2 and 4:4:4 chroma types
- pictures
-
-- vaapih264dec: handle baseline streams as constrained-baseline if
- possible and make it more tolerant when encountering unknown NALs
+- this section will be filled in in due course
GStreamer OMX
-- omxvideoenc: use new video encoder subframe API to push out slices
- as soon as they’re ready
-
-- omxh264enc, omxh265enc: negotiate subframe mode via caps. To enable
- it, force downstream caps to video/x-h264,alignment=nal or
- video/x-h265,alignment=nal.
-
-- omxh264enc: Add ref-frames property
-
-- Zynq ultrascale+ specific video encoder/decoder improvements:
-
- - GRAY8 format support
- - support for alternate fields interlacing mode
- - video encoder: look-ahead, long-term-ref, and long-term-freq
- properties
+- this section will be filled in in due course
GStreamer Editing Services and NLE
-- Added nested timelines and subproject support so that GES projects
- can be used as clips, potentially serializing nested projects in the
- main file or referencing external project files.
-
-- Implemented an OpenTimelineIO GES formatter. This means GES and
- GStreamer can now load and save projects in all the formats
- supported by otio.
-
-- Implemented a GESMarkerList object which allow setting timed
- metadata on any GES object.
-
-- Fixed audio rendering issues during clip transition by ensuring that
- a single segment is pushed into encoders.
-
-- The GESUriClipAsset API is now MT safe.
-
-- Added ges_meta_container_register_static_meta() to allow fixing a
- type for a specific metadata without actually setting a value.
-
-- The framepositioner element now handles resizing the project and
- keeps the same positioning when the aspect ratio is not changed .
-
-- Reworked the documentation, making it more comprehensive and much
- more detailed.
-
-- Added APIs to retrieve natural size and framerate of a clip (for
- example in the case of URIClip it is the framerate/size of the
- underlying file).
-
-- ges_container_edit() is now deprecated and GESTimelineElement gained
- the ges_timeline_element_edit() method so the editing API is now
- usable from any element in the timeline.
-
-- GESProject::loading was added so applications can be notified about
- when a new timeline starts loading.
-
-- Implemented the GstStream API in GESTimeline.
-
-- Added a way to add a timeoverlay inside the test source (potentially
- with timecodes).
-
-- Added APIs to convert times to frame numbers and vice versa:
-
- - ges_timeline_get_frame_time()
-
- - ges_timeline_get_frame_at()
-
- - ges_clip_asset_get_frame_time()
-
- - ges_clip_get_timeline_time_from_source_frame()
-
- Quite a few validate tests have been implemented to check the
- behavior for various demuxer/codec formats
-
-- Added ges_layer_set_active_for_tracks() which allows muting layers
- for the specified tracks
-
-- Deprecated GESImageSource and GESMultiFileSource now that we have
- imagesequencesrc which handles the imagesequence “protocol”
-
-- Stopped exposing ‘deinterlacing’ children properties for clip types
- where they do not make sense.
-
-- Added support for simple time remapping effects
+- this section will be filled in in due course
GStreamer validate
-- Introduced the concept of “Test files” allowing to implement “all
- included” test cases, meaning that inside the file the following can
- be defined:
-
- - The application arguments
- - The validate configurations
- - The validate scenario
-
- This replaces the previous big dictionary file in
- gst-validate-launcher to implement specific test cases.
-
- We set several variables inside the files (as well as inside
- scenarios and config files) to make them relocatable.
-
- The file format has been enhanced so it is easier to read and write,
- for example line ending with a coma or (curly) brackets can now be
- used as continuation marker so you do not need to add \ at the end
- of lines to write a structure on several lines.
-
-- Support the imagesequence “protocol” and added integration tests for
- it.
-
-- Added action types to allow the scenario to run the Test Clock for
- better reproducibility of tests.
-
-- Support generating tests to check that seeking is frame accurate
- (base on ssim).
-
-- Added ways to record buffers checksum (in different ways) in the
- validateflow module.
-
-- Added vp9 encoding tests.
-
-- Enhanced seeking action types implementation to allow support for
- segment seeks.
-
-- Output improvements:
-
- - Logs are now in markdown formats (and bat is used to dump them
- if available).
- - File format issues in scenarios/configs/tests files are nicely
- reported with the line numbers now.
+- this section will be filled in in due course
GStreamer Python Bindings
-- Python 2.x is no longer supported
-
-- Support mapping buffers without any memcpy:
-
- - Added a ContextManager to make the API more pythonic
-
- with buf.map(Gst.MapFlags.READ | Gst.MapFlags.WRITE) as info:
- info.data[42] = 0
-
-- Added high-level helper API for constructing pipelines:
-
- - Gst.Bin.make_and_add(factory_name, instance_name=None)
- - Gst.Element.link_many(element, ...)
+- this section will be filled in in due course
GStreamer C# Bindings
-- Bind gst_buffer_new_wrapped() manually to fix memory handling.
-
-- Fix gst_promise_new_with_change_func() where bindgen didn’t properly
- detect the func as a closure.
-
-- Declare GstVideoOverlayComposition and GstVideoOverlayRectangle as
- opaque type and subclasses of Gst.MiniObject. This changes the API
- but without this all usage will cause memory corruption or simply
- not work.
-
-- on Windows, look for gstreamer, glib and gobject DLLs using the MSVC
- naming convention (i.e. gstvideo-1.0-0.dll instead of
- libgstvideo-1.0-0.dll).
-
- The names of these DLLs have to be hardcoded in the bindings, and
- most C# users will probably be using the Microsoft toolchain anyway.
-
- This means that the MSVC compiler is now required to build the
- bindings, MingW will no longer work out of the box.
+- this section will be filled in in due course
GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings are released separately with a different
release cadence that’s tied to gtk-rs, but the latest release has
-already been updated for the new GStreamer 1.18 API, so there’s
-absolutely no excuse why your next GStreamer application can’t be
-written in Rust anymore.
+already been updated for the upcoming new GStreamer 1.20 API.
gst-plugins-rs, the module containing GStreamer plugins written in Rust,
has also seen lots of activity with many new elements and plugins.
@@ -1659,6 +119,8 @@ What follows is a list of elements and plugins available in
gst-plugins-rs, so people don’t miss out on all those potentially useful
elements that have no C equivalent.
+- FIXME: add new elements
+
Rust audio plugins
- audiornnoise: New element for audio denoising which implements the
@@ -1724,73 +186,11 @@ Generic Rust plugins
Build and Dependencies
-- The Autotools build system has finally been removed in favour of the
- Meson build system. Developers who currently use gst-uninstalled
- should move to gst-build.
-
-- API and plugin documentation are no longer built with gtk_doc. The
- gtk_doc documentation has been removed in favour of a new unified
- documentation module built with hotdoc (also see “Documentation
- improvements” section below). Distributors should use the
- documentation release tarball instead of trying to package hotdoc
- and building the documentation from scratch.
-
-- gst-plugins-bad now includes an internal copy of libusrsctp, as
- there are problems in usrsctp with global shared state, lack of API
- stability guarantees, and the absence of any kind of release
- process. We also can’t rely on distros shipping a version with the
- fixes we need. Both firefox and Chrome bundle their own copies too.
- It is still possible to build against an external copy of usrsctp if
- so desired.
-
-- nvcodec no longer needs the NVIDIA NVDEC/NVENC SDKs available at
- build time, only at runtime. This allows distributions to ship this
- plugin by default and it will just start to work when the required
- run-time SDK libraries are installed by the user, without users
- needing to build and install the plugin from source.
-
-- the gst-editing-services tarball is now named gst-editing-services
- for consistency (used to be gstreamer-editing-services).
-
-- the gst-validate tarball has been superseded by the gst-devtools
- tarball for consistency with the git module name.
+- this section will be filled in in due course
gst-build
-gst-build is a meta-module and serves primarily as our uninstalled
-development environment. It makes it easy to build most of GStreamer,
-but unlike Cerbero it only comes with a limited number of external
-dependencies that can be built as subprojects if they are not found on
-the system.
-
-gst-build is based on Meson and replaces the old autotools
-gst-uninstalled script.
-
-- The ‘uninstalled’ target has been renamed to ‘devenv’
-
-- Experimental gstreamer-full library containing all built plugins and
- their deps when building with -Ddefault_library=static. A monolithic
- library is easier to distribute, and may be required in some
- environments. GStreamer core, GLib and GObject are always included,
- but external dependencies are still dynamically linked. The
- gst-full-libraries meson option allows adding other GStreamer
- libraries to the gstreamer-full build. This is an experiment for now
- and its behaviour or API may still change in future releases.
-
-- Add glib-networking as a subproject when glib is a subproject and
- load gio modules in the devenv, tls option control whether to use
- openssl or gnutls.
-
-- git-worktree: Allow multiple worktrees for subproject branches
-
-- Guard against meson being run from inside the uninstalled devenv, as
- this might have unexpected consequences.
-
-- our ffmpeg and x264 meson ports have been updated to the latest
- stable version (you might need to update the subprojects checkout
- manually though, or just remove the checkouts so meson checks out
- the latest version again; improvements for this are pending in
- meson, but not merged yet).
+- this section will be filled in in due course
Cerbero
@@ -1800,405 +200,97 @@ Windows, Android, iOS and macOS.
General improvements
-- Recipe build steps are done in parallel wherever possible. This
- leads to massive improvements in overall build time.
-- Several recipes were ported to Meson, which improved build times
-- Moved from using both GnuTLS and OpenSSL to only OpenSSL
-- Moved from yasm to nasm for all assembly compilation
-- Support zsh when running the cerbero shell command
-- Numerous version upgrades for dependencies
-- Default to xz for tarball binary packages. bz2 can be selected with
- the --compress-method option to package.
-- Added boolean variant for controlling the optimization level:
- -v optimization
-- Ship .pc pkgconfig files for all plugins in the binary packages
-- CMake and nasm will only be built by Cerbero if the system versions
- are unusable
-- The nvcodec variant was removed and the nvcodec plugin is built by
- default now (as it no longer requires the SDK to be installed at
- build time, only at runtime)
+- this section will be filled in in due course
macOS / iOS
-- Minimum iOS SDK version bumped to 11.0
-- Minimum macOS SDK version bumped to 10.11
-- No longer need to manually add support for newer iOS SDK versions
-- Added Vulkan elements via MoltenVK
-- Build times were improved by code-signing all build tools
-- macOS framework ships all gstreamer libraries instead of an outdated
- subset
-- Ship pkg-config in the macOS framework package
-- fontconfig: Fix EXC_BAD_ACCESS crash on iOS ARM64
-- Improved App Store compatibility by setting LC_VERSION_MIN_MACOSX,
- fixing relocations, and improved bitcode support
+- this section will be filled in in due course
Windows
-- MinGW-GCC toolchain was updated to 8.2. It uses the Universal CRT
- instead of MSVCRT which eliminates cross-CRT issues in the Visual
- Studio build.
-- Require Windows 7 or newer for running binaries produced by Cerbero
-- Require Windows x86_64 for running Cerbero to build binary packages
-- Cerbero no longer uses C:/gstreamer/1.0 as a prefix when building.
- That prefix is reserved for use by the MSI installers.
-- Several recipes can now be buit with Visual Studio instead of MinGW.
- Ported to meson: opus, libsrtp, harfbuzz, cairo, openh264, libsoup,
- libusrsctp. Existing build system: libvpx, openssl.
-- Support building using Visual Studio for 32-bit x86. Previously we
- only supported building for 32-bit x86 using the MinGW toolchain.
-- Fixed annoying msgmerge popups in the middle of cerbero builds
-- Added configuration options vs_install_path and vs_install_version
- for specifying custom search locations for older Visual Studio
- versions that do not support vswhere. You can set these in
- ~/.cerbero/cerbero.cbc where ~ is the MSYS homedir, not your Windows
- homedir.
-- New Windows-specific plugins: d3d11, mediafoundation, wasapi2
-- Numerous compatibility and reliability fixes when running Cerbero on
- Windows, especially non-English locales
-- proxy-libintl now exports the same symbols as gettext, which makes
- it a drop-in replacement
-- New mapping variant for selecting the Visual Studio CRT to use:
- -v vscrt=<value>. Valid values are md, mdd, and auto (default). A
- separate prefix is used when building with either md (release) or
- mdd (debug), and the outputted package will have +debug in the
- filename. This variant is also used for selecting the correct Qt
- libraries (debug vs release) to use when building with -v qt5 on
- Windows.
-- Support cross-compile on Windows to Windows ARM64 and ARMv7
-- Support cross-compile on Windows to the Universal Windows Platform
- (UWP). Only the subset of plugins that can be built entirely with
- Visual Studio will be selected in this case. To do so, use the
- config/cross-uwp-universal.cbc configuration, which will build
- ARM64, x86, and x86_64 binaries linked to the release CRT, with
- optimizations enabled, and debugging turned on. You can combine this
- with -v vscrt=mdd to produce binaries linked to the debug CRT. You
- can turn off optimizations with the -v nooptimization variant.
+- this section will be filled in in due course
Windows MSI installer
-- Require Windows 7 or newer for running GStreamer
-- Fixed some issues with shipping of pkg-config in the Windows
- installers
-- Plugin PDB debug files are now shipped in the development package,
- not the runtime package
-- Ship installers for 32-bit binaries built with Visual Studio
-- Ship debug and release “universal” (ARM64, X86, and X86_64) tarballs
- built for the Universal Windows Platform
-- Windows MSI installers now install into separate prefixes when
- building with MSVC and MinGW. Previously both would be installed
- into C:/gstreamer/1.0/x86 or C:/gstreamer/1.0/x86_64. Now, the
- installation prefixes are:
-
- ----------------------------------------------------------------------------------------------------------------
- Target Path Build options
- --------------------------- ------------------------------------ -----------------------------------------------
- MinGW 32-bit C:/gstreamer/1.0/mingw_x86 -c config/win32.cbc
-
- MinGW 64-bit C:/gstreamer/1.0/mingw_x86_64 -c config/win64.cbc
-
- MSVC 32-bit C:/gstreamer/1.0/msvc_x86 -c config/win32.cbc -v visualstudio
-
- MSVC 64-bit C:/gstreamer/1.0/msvc_x86_64 -c config/win64.cbc -v visualstudio
-
- MSVC 32-bit (debug) C:/gstreamer/1.0/msvc-debug_x86 -c config/win32.cbc -v visualstudio,vscrt=mdd
-
- MSVC 64-bit (debug) C:/gstreamer/1.0/msvc-debug_x86_64 -c config/win64.cbc -v visualstudio,vscrt=mdd
- ----------------------------------------------------------------------------------------------------------------
-
-Note: UWP binary packages are tarballs, not MSI installers.
+- this section will be filled in in due course
Linux
-- Support creating MSI installers using WiX when cross-compiling to
- Windows
-- Support running cross-windows binaries with Wine when using the
- shell and runit cerbero commands
-- Added bash-completion support inside the cerbero shell on Linux
-- Require a system-wide installation of openssl on Linux
-- Added variant -v vaapi to build gstreamer-vaapi and the new gstva
- plugin
-- Debian packaging was disabled because it does not work. Help in
- fixing this is appreciated.
-- Trimmed the list of packages needed for bootstrap on Linux
+- this section will be filled in in due course
Android
-- Updated to NDK r21
-- Support Vulkan
-- Support Qt 5.14+ binary package layout
+- this section will be filled in in due course
Platform-specific changes and improvements
Android
-- opensles: Remove hard-coded buffer-/latency-time values and allow
- openslessink to handle 48kHz streams.
-
-- photography interface and camera source: Add additional settings
- relevant to Android such as: Exposure mode property, extra colour
- tone values (aqua, emboss, sketch, neon), extra scene modes
- (backlight, flowers, AR, HDR), and missing virtual methods for
- exposure mode, analog gain, lens focus, colour temperature, min &
- max exposure time. Add new effects and scene modes to Camera
- parameters.
+- this section will be filled in in due course
macOS and iOS
-- vtdec can now output to Vulkan-backed memory for zerocopy support
- with the Vulkan elements.
+- this section will be filled in in due course
Windows
-- d3d11videosink: new Direct3D11-based video sink with support for
- HDR10 rendering if supported.
-
-- Hardware-accelerated video decoding on Windows via DXVA2 /
- Direct3D11 using native Windows APIs rather than per-vendor SDKs
- (like MSDK for Intel or NVCODEC for NVidia). Plus modern Direct3D11
- integration rather than the almost 20-year old Direct3D9 from
- Windows XP times used in d3dvideosink. Formats supported for
- decoding are H.264, H.265, VP8, and VP9, and zero-copy operation
- should be supported in combination with the new d3d11videosink. See
- Seungha’s blog post “Windows DXVA2 (via Direct3D 11) Support in
- GStreamer 1.17” for more details.
-
-- Microsoft Media Foundation plugin for hardware-accelerated video
- encoding on Windows using native Windows APIs rather than per-vendor
- SDKs. Formats supported for encoding are H.264, H.265 and VP9. Also
- includes audio encoders for AAC and MP3. See Seungha’s blog post
- “Bringing Microsoft Media Foundation to GStreamer” for some more
- details about this.
-
-- new mfvideosrc video capture source element using the latest Windows
- APIs rather than ancient APIs used by ksvideosrc/winks. ksvideosrc
- should be considered deprecated going forward.
-
-- d3d11: add d3d11convert, a color space conversion and rescaling
- element using shaders, and introduce d3d11upload and d3d11download
- elements that work just like glupload and gldownload but for D3D11.
-
-- Universal Windows Platform (UWP) support, including official
- GStreamer binary packages for it. Check out Nirbheek’s latest blog
- post “GStreamer 1.18 supports the Universal Windows Platform” for
- more details.
-
-- systemclock correctness and reliability fixes, and also don’t start
- the system clock at 0 any longer (which shouldn’t make any
- difference to anyone, as absolute clock time values are supposed to
- be meaningless in themselves, only the rate of increase matters).
-
-- toolchain specific plugin registry: the registry cache is now named
- differently for MSVC and MinGW toolchains/packages, which should
- avoid problems when switching between binaries built with a
- different toolchain.
-
-- new wasapi2 plugin mainly to support UWP applications. The core
- logic of this plugin is almost identical to existing wasapi plugin,
- but the main target is Windows 10 and UWP. This plugin uses WinRT
- APIs, so will likely not work on Windows 8 or older. Unlike the
- existing wasapi plugin, this plugin supports automatic stream
- routing (auto fallback when device was removed) and device level
- mute/volume control. Exclusive streaming mode is not supported,
- however, and loopback features are not implemented yet. It is also
- only possible to build this plugin with MSVC and the Windows 10 SDK,
- it can’t be cross-compiled with the MingW toolchain.
-
-- new dxgiscreencapsrc element which uses the Desktop Duplication API
- to capture the desktop screen at high speed. This is only supported
- on Windows 8 or later. Compared to the existing elements
- dxgiscreencapsrc offers much better performance, works in High DPI
- environments and draws an accurate mouse cursor.
-
-- d3dvideosink was downgraded to secondary rank, d3d11videosink is
- preferred now. Support OverlayComposition for GPU overlay
- compositing of subtitles and logos.
-
-- debug log output fixes, esp. with a non-UTF8 locale/codepage
-
-- speex, jack: fixed crashes on Windows caused by cross-CRT issues
-
-- gst-play-1.0 interactive keyboard controls now also work on Windows
+- this section will be filled in in due course
Linux
-- kmssink: Add support for P010 and P016 formats
-
-- vah264dec: new experimental va plugin with an element for H.264
- decoding with VA-API. This novel approach, different from
- gstreamer-vaapi, uses the gstcodecs library for decoder state
- handling, which it is hoped will make for cleaner code because it
- uses VA-API without further layers or wrappers. Check out Víctor’s
- blog post “New VA-API H.264 decoder in gst-plugins-bad” for the full
- lowdown and the limitations of this new plugin, and how to give it a
- spin.
-
-- v4l2codecs: introduce a V4L2 CODECs Accelerator. This plugin will
- support the new CODECs uAPI in the Linux kernel, which consists of
- an accelerator interface similar to DXVA, NVDEC, VDPAU and VAAPI. So
- far H.264 and VP8 are supported. This is used on certain embedded
- systems such as i.mx8m, rk3288, rk3399, Allwinner H-series SoCs.
+- this section will be filled in in due course
Documentation improvements
-- unified documentation containing tutorials, API docs, plugin docs,
- etc. all under one roof, shipped in form of a documentation release
- tarball containing both devhelp and html documentation.
-
-- all documentation is now generated using hotdoc, gtk-doc is no
- longer used. Distributors should use the above-mentioned
- documentation release tarball instead of trying to package hotdoc
- and building the documentation from scratch.
-
-- there is now documentation for wrapper plugins like gst-libav and
- frei0r, as well as tracer plugins.
-
-- for more info, check out Thibault’s “GStreamer Documentation”
- lightning talk from the 2019 GStreamer Conference.
-
-- new API for plugins to support the documentation system:
-
- - new GParamSpecFlag GST_PARAM_DOC_SHOW_DEFAULT to make
- gst-inspect-1.0 (and the documentation) show the paramspec’s
- default value rather than the actually set value as default
- - GstPadTemplate getter and setter for “documentation caps”,
- gst_pad_template_set_documentation_caps() and
- gst_pad_template_get_documentation_caps(): This can be used in
- elements where the caps of pad templates are dynamically
- generated and/or dependent on the environment, to override the
- caps shown in the documentation (usually to advertise the full
- set of possible caps).
- - gst_type_mark_as_plugin_api() for marking types as plugin API,
- used for plugin-internal types like enums, flags, pad
- subclasses, boxed types, and such.
+- this section will be filled in in due course
Possibly Breaking Changes
-- GstVideo: the canonical list of raw video formats (for use in caps)
- has been reordered, so video elements such as videotestsrc or
- videoconvert might negotiate to a different format now than before.
- The new format might be a higher-quality format or require more
- processing overhead, which might affect pipeline performance.
-
-- mpegtsdemux used to wrongly advertise H.264 and H.265 video
- elementary streams as alignment=nal. This has now been fixed and
- changed to alignment=none, which means an h264parse or h265parse
- element is now required after tsdemux for some pipelines where there
- wasn’t one before, e.g. in transmuxing scenarios (tsdemux ! tsmux).
- Pipelines without such a parser may now fail to link or error out at
- runtime. As parsers after demuxers and before muxers have been
- generally required for a long time now it is hoped that this will
- only affect a small number of applications or pipelines.
-
-- The Android opensles audio source and sink used to have hard-coded
- buffer-/latency-time values of 20ms. This is no longer needed with
- newer Android versions and has now been removed. This means a higher
- or lower value might now be negotiated by default, which can affect
- pipeline performance and latency.
+- this section will be filled in in due course
Known Issues
-- None in particular
+- this section will be filled in in due course
+
+- There are a couple of known WebRTC-related regressions/blockers:
+
+ - webrtc: DTLS setup with Chrome is broken
+ - webrtcbin: First keyframe is usually lost
Contributors
-Aaron Boxer, Adam Duskett, Adam x Nilsson, Adrian Negreanu, Akinobu
-Mita, Alban Browaeys, Alcaro, Alexander Lapajne, Alexandru Băluț, Alex
-Ashley, Alex Hoenig, Alicia Boya García, Alistair Buxton, Ali Yousuf,
-Ambareesh “Amby” Balaji, Amr Mahdi, Andoni Morales Alastruey, Andreas
-Frisch, Andre Guedes, Andrew Branson, Andrey Sazonov, Antonio Ospite,
-aogun, Arun Raghavan, Askar Safin, AsociTon, A. Wilcox, Axel Mårtensson,
-Ayush Mittal, Bastian Bouchardon, Benjamin Otte, Bilal Elmoussaoui,
-Brady J. Garvin, Branko Subasic, Camilo Celis Guzman, Carlos Rafael
-Giani, Charlie Turner, Cheng-Chang Wu, Chris Ayoup, Chris Lord,
-Christoph Reiter, cketti, Damian Hobson-Garcia, Daniel Klamt, Daniel
-Molkentin, Danny Smith, David Bender, David Gunzinger, David Ing, David
-Svensson Fors, David Trussel, Debarshi Ray, Derek Lesho, Devarsh
-Thakkar, dhilshad, Dimitrios Katsaros, Dmitriy Purgin, Dmitry Shusharin,
-Dominique Leuenberger, Dong Il Park, Doug Nazar, dudengke, Dylan McCall,
-Dylan Yip, Ederson de Souza, Edward Hervey, Eero Nurkkala, Eike Hein,
-ekwange, Eric Marks, Fabian Greffrath, Fabian Orccon, Fabio D’Urso,
-Fabrice Bellet, Fabrice Fontaine, Fanchao L, Felix Yan, Fernando
-Herrrera, Francisco Javier Velázquez-García, Freyr, Fuwei Tang, Gaurav
-Kalra, George Kiagiadakis, Georgii Staroselskii, Georg Lippitsch, Georg
-Ottinger, gla, Göran Jönsson, Gordon Hart, Gregor Boirie, Guillaume
-Desmottes, Guillermo Rodríguez, Haakon Sporsheim, Haihao Xiang, Haihua
-Hu, Havard Graff, Håvard Graff, Heinrich Kruger, He Junyan, Henry
-Wilkes, Hosang Lee, Hou Qi, Hu Qian, Hyunjun Ko, ibauer, Ignacio Casal
-Quinteiro, Ilya Smelykh, Jake Barnes, Jakub Adam, James Cowgill, James
-Westman, Jan Alexander Steffens, Jan Schmidt, Jan Tojnar, Javier Celaya,
-Jeffy Chen, Jennifer Berringer, Jens Göpfert, Jérôme Laheurte, Jim
-Mason, Jimmy Ohn, J. Kim, Joakim Johansson, Jochen Henneberg, Johan
-Bjäreholt, Johan Sternerup, John Bassett, Jonas Holmberg, Jonas Larsson,
-Jonathan Matthew, Jordan Petridis, Jose Antonio Santos Cadenas, Josep
-Torra, Jose Quaresma, Josh Matthews, Joshua M. Doe, Juan Navarro,
-Juergen Werner, Julian Bouzas, Julien Isorce, Jun-ichi OKADA, Justin
-Chadwell, Justin Kim, Keri Henare, Kevin JOLY, Kevin King, Kevin Song,
-Knut Andre Tidemann, Kristofer Björkström, krivoguzovVlad, Kyrylo
-Polezhaiev, Lenny Jorissen, Linus Svensson, Loïc Le Page, Loïc Minier,
-Lucas Stach, Ludvig Rappe, Luka Blaskovic, luke.lin, Luke Yelavich,
-Marcin Kolny, Marc Leeman, Marco Felsch, Marcos Kintschner, Marek
-Olejnik, Mark Nauwelaerts, Markus Ebner, Martin Liska, Martin Theriault,
-Mart Raudsepp, Matej Knopp, Mathieu Duponchelle, Mats Lindestam, Matthew
-Read, Matthew Waters, Matus Gajdos, Maxim Paymushkin, Maxim P.
-Dementiev, Michael Bunk, Michael Gruner, Michael Olbrich, Miguel París
-Díaz, Mikhail Fludkov, Milian Wolff, Millan Castro, Muhammet Ilendemli,
-Nacho García, Nayana Topolsky, Nian Yan, Nicola Murino, Nicolas
-Dufresne, Nicolas Pernas Maradei, Niels De Graef, Nikita Bobkov, Niklas
-Hambüchen, Nirbheek Chauhan, Ognyan Tonchev, okuoku, Oleksandr
-Kvl,Olivier Crête, Ondřej Hruška, Pablo Marcos Oltra, Patricia Muscalu,
-Peter Seiderer, Peter Workman, Philippe Normand, Philippe Renon, Philipp
-Zabel, Pieter Willem Jordaan, Piotr Drąg, Ralf Sippl, Randy Li, Rasmus
-Thomsen, Ratchanan Srirattanamet, Raul Tambre, Ray Tiley, Richard
-Kreckel, Rico Tzschichholz, R Kh, Robert Rosengren, Robert Tiemann,
-Roman Shpuntov, Roman Sivriver, Ruben Gonzalez, Rubén Gonzalez,
-rubenrua, Ryan Huang, Sam Gigliotti, Santiago Carot-Nemesio, Saunier
-Thibault, Scott Kanowitz, Sebastian Dröge, Sebastiano Barrera, Seppo
-Yli-Olli, Sergey Nazaryev, Seungha Yang, Shinya Saito, Silvio
-Lazzeretti, Simon Arnling Bååth, Siwon Kang, sohwan.park, Song Bing,
-Soohyun Lee, Srimanta Panda, Stefano Buora, Stefan Sauer, Stéphane
-Cerveau, Stian Selnes, Sumaid Syed, Swayamjeet, Thiago Santos, Thibault
-Saunier, Thomas Bluemel, Thomas Coldrick, Thor Andreassen, Tim-Philipp
-Müller, Ting-Wei Lan, Tobias Ronge, trilene, Tulio Beloqui, U. Artie
-Eoff, VaL Doroshchuk, Varunkumar Allagadapa, Vedang Patel, Veerabadhran
-G, Víctor Manuel Jáquez Leal, Vivek R, Vivia Nikolaidou, Wangfei, Wang
-Zhanjun, Wim Taymans, Wonchul Lee, Xabier Rodriguez Calvar, Xavier
-Claessens, Xidorn Quan, Xu Guangxin, Yan Wang, Yatin Maan, Yeongjin
-Jeong, yychao, Zebediah Figura, Zeeshan Ali, Zeid Bekli, Zhiyuan Sraf,
-Zoltán Imets,
+- this section will be filled in in due course
… and many others who have contributed bug reports, translations, sent
suggestions or helped testing.
-Stable 1.18 branch
+Stable 1.20 branch
-After the 1.18.0 release there will be several 1.18.x bug-fix releases
+After the 1.20.0 release there will be several 1.20.x bug-fix releases
which will contain bug fixes which have been deemed suitable for a
stable branch, but no new features or intrusive changes will be added to
-a bug-fix release usually. The 1.18.x bug-fix releases will be made from
-the git 1.18 branch, which will be a stable branch.
+a bug-fix release usually. The 1.20.x bug-fix releases will be made from
+the git 1.20 branch, which will be a stable branch.
-1.18.0
+1.20.0
-1.18.0 was released on 7 September 2020.
+1.20.0 is scheduled to be released around July 2021.
-Schedule for 1.20
+Schedule for 1.22
-Our next major feature release will be 1.20, and 1.19 will be the
-unstable development version leading up to the stable 1.20 release. The
-development of 1.19/1.20 will happen in the git master branch.
+Our next major feature release will be 1.22, and 1.21 will be the
+unstable development version leading up to the stable 1.22 release. The
+development of 1.21/1.22 will happen in the git master branch.
-The plan for the 1.20 development cycle is yet to be confirmed, but it
-is now expected that feature freeze will take place some time in January
-2021, with the first 1.20 stable release around February/March 2021.
+The plan for the 1.22 development cycle is yet to be confirmed, but it
+is hoped that feature freeze will take place some time in December 2021.
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+1.22 will be backwards-compatible to the stable 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.
------------------------------------------------------------------------
These release notes have been prepared by Tim-Philipp Müller with
-contributions from Mathieu Duponchelle, Matthew Waters, Nirbheek
-Chauhan, Sebastian Dröge, Thibault Saunier, and Víctor Manuel Jáquez
-Leal.
+contributions from …
License: CC BY-SA 4.0
diff --git a/README b/README
index 300b39868..c95e53e28 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-GStreamer 1.18.x stable series
+GStreamer 1.19.x development series
WHAT IT IS
----------
diff --git a/RELEASE b/RELEASE
index 852a7102d..43016107f 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,18 +1,15 @@
-This is GStreamer gst-plugins-good 1.18.0.
+This is GStreamer gst-plugins-good 1.19.1.
-The GStreamer team is thrilled to announce a new major feature release
-of your favourite cross-platform multimedia framework!
+GStreamer 1.19 is the development branch leading up to the next major
+stable version which will be 1.20.
-As always, this release is again packed with new features, bug fixes and
-other improvements.
-
-The 1.18 release series adds new features on top of the 1.16 series and is
+The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
-Full release notes can be found at:
+Full release notes will one day be found at:
- https://gstreamer.freedesktop.org/releases/1.18/
+ https://gstreamer.freedesktop.org/releases/1.20/
Binaries for Android, iOS, Mac OS X and Windows will usually be provided
shortly after the release.
diff --git a/docs/gst_plugins_cache.json b/docs/gst_plugins_cache.json
index 7d79b3500..005a16f2c 100644
--- a/docs/gst_plugins_cache.json
+++ b/docs/gst_plugins_cache.json
@@ -6607,7 +6607,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer 1.19.0.1 FLV muxer",
+ "default": "GStreamer 1.19.1 FLV muxer",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -6619,7 +6619,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer 1.19.0.1 FLV muxer",
+ "default": "GStreamer 1.19.1 FLV muxer",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -20112,7 +20112,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer/1.19.0.1",
+ "default": "GStreamer/1.19.1",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -22069,7 +22069,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer souphttpsrc 1.19.0.1 ",
+ "default": "GStreamer souphttpsrc 1.19.1 ",
"mutable": "null",
"readable": true,
"type": "gchararray",
diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap
index 00966a235..ba8918ce9 100644
--- a/gst-plugins-good.doap
+++ b/gst-plugins-good.doap
@@ -34,6 +34,16 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
<release>
<Version>
+ <revision>1.19.1</revision>
+ <branch>master</branch>
+ <name></name>
+ <created>2021-06-01</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.19.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.18.0</revision>
<branch>master</branch>
<name></name>
diff --git a/meson.build b/meson.build
index 97f76a4d8..e04c71d79 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('gst-plugins-good', 'c',
- version : '1.19.0.1',
+ version : '1.19.1',
meson_version : '>= 0.54',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])