platform/upstream/gstreamer.git
3 years agov4l2videoenc: Set default latency if the frame duration is invalid
Hou Qi [Tue, 25 May 2021 08:19:20 +0000 (16:19 +0800)]
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>

3 years agodeinterlace: Drop "field-order" field while transforming caps
Seungha Yang [Tue, 25 May 2021 15:23:56 +0000 (00:23 +0900)]
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>

3 years agodeinterlace: Drop field-order field if outputting progressive
Seungha Yang [Tue, 25 May 2021 11:10:34 +0000 (20:10 +0900)]
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>

3 years agortpssrcdemux: fix "data flow before segment event" crash
Havard Graff [Fri, 21 May 2021 12:19:29 +0000 (14:19 +0200)]
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>

3 years agortpssrcdemux: refactor destruction of GstRtpSsrcDemuxPads
Havard Graff [Fri, 21 May 2021 16:45:17 +0000 (18:45 +0200)]
rtpssrcdemux: refactor destruction of GstRtpSsrcDemuxPads

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/992>

3 years agortpssrcdemux: make naming consistent
Havard Graff [Fri, 21 May 2021 16:30:28 +0000 (18:30 +0200)]
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>

3 years agowavparse: use g_strndup() for copying text data
Tim-Philipp Müller [Sun, 23 May 2021 14:14:11 +0000 (15:14 +0100)]
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>

3 years agowavparse: clean up adtl/note/labl chunk parsing
Tim-Philipp Müller [Sun, 23 May 2021 12:29:07 +0000 (13:29 +0100)]
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>

3 years agowavparse: guard against overflow when comparing chunk sizes
Tim-Philipp Müller [Sun, 23 May 2021 12:24:21 +0000 (13:24 +0100)]
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>

3 years agodoc: update gst_plugins_cache.json
Daniel Almeida [Fri, 21 May 2021 16:31:12 +0000 (13:31 -0300)]
doc: update gst_plugins_cache.json

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/991>

3 years agomatroskademux: fix decoder glitches with H264 content
Stéphane Cerveau [Wed, 5 May 2021 11:20:04 +0000 (13:20 +0200)]
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>

3 years agoqml: don't use buffers that have invalid contents
Matthew Waters [Tue, 11 May 2021 10:41:38 +0000 (20:41 +1000)]
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>

3 years agoqml: also use the dummy texture when no buffer has been set
Matthew Waters [Tue, 11 May 2021 10:38:52 +0000 (20:38 +1000)]
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>

3 years agodoc: Update cache for RGBP format addition
Nicolas Dufresne [Tue, 11 May 2021 21:20:00 +0000 (17:20 -0400)]
doc: Update cache for RGBP format addition

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/968>

3 years agomatroskademux: Advertise codec-alpha in caps
Nicolas Dufresne [Fri, 23 Apr 2021 18:37:46 +0000 (14:37 -0400)]
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>

3 years agomatroskademux: Store alpha stream in VideoCodecAlphaMeta
Nicolas Dufresne [Mon, 22 Mar 2021 20:58:26 +0000 (16:58 -0400)]
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>

3 years agomatroska-demux: extract VP8 alpha from BlockAdditionals
Tim-Philipp Müller [Sat, 3 Dec 2016 14:27:57 +0000 (14:27 +0000)]
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>

3 years agoqt: return a different GstGLDisplay object when the first sink requests
Matthew Waters [Mon, 3 May 2021 07:39:05 +0000 (17:39 +1000)]
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>

3 years agoudpsrc: Plug leaks of saddr in error cases
Jan Alexander Steffens (heftig) [Fri, 7 May 2021 09:16:47 +0000 (11:16 +0200)]
udpsrc: Plug leaks of saddr in error cases

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/977>

3 years agoudpsrc: Whitespace
Jan Alexander Steffens (heftig) [Fri, 7 May 2021 09:16:21 +0000 (11:16 +0200)]
udpsrc: Whitespace

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/977>

3 years agodeinterlace: Plug a method subobject leak
Jan Alexander Steffens (heftig) [Thu, 6 May 2021 22:43:44 +0000 (00:43 +0200)]
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>

3 years agovp9enc: Add color range support
Nicolas Dufresne [Thu, 6 May 2021 19:04:42 +0000 (15:04 -0400)]
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>

3 years agovp9enc: Move colorspace configuration in VP9 enc
Nicolas Dufresne [Thu, 6 May 2021 18:51:31 +0000 (14:51 -0400)]
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>

3 years agovpxdenc: Add a GstVideoCodecState to configure_encoder virtual
Nicolas Dufresne [Thu, 6 May 2021 18:48:36 +0000 (14:48 -0400)]
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>

3 years agogtk: Remove coordinates double-translation
Bastien Nocera [Wed, 5 May 2021 14:48:10 +0000 (16:48 +0200)]
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>

3 years agogtk: Translate navigation events coordinates
Bastien Nocera [Wed, 5 May 2021 12:28:15 +0000 (14:28 +0200)]
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>

3 years agogtk: Export _display_size_to_stream_size()
Bastien Nocera [Wed, 5 May 2021 12:24:31 +0000 (14:24 +0200)]
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>

3 years agomatroska-mux: Change accepted caps width and height from [16, MAX] to [1, MAX]
David Fernandez [Mon, 26 Feb 2018 16:26:41 +0000 (17:26 +0100)]
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>

3 years agoUse gst_element_request_pad_simple
François Laignel [Tue, 20 Apr 2021 20:08:23 +0000 (22:08 +0200)]
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>

3 years agoqtmux: Make sure to write 64-bit STCO table when needed.
Jan Schmidt [Thu, 29 Apr 2021 22:12:47 +0000 (08:12 +1000)]
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>

3 years agov4l2object: Add interlace-mode back to caps for camera
Hou Qi [Thu, 22 Apr 2021 07:01:32 +0000 (15:01 +0800)]
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>

3 years agortpopuspay: set MARKER flag
Guillaume Desmottes [Fri, 2 Apr 2021 16:41:28 +0000 (18:41 +0200)]
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>

3 years agortpopuspay: add DTX support
Guillaume Desmottes [Wed, 31 Mar 2021 09:18:30 +0000 (11:18 +0200)]
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>

3 years agotaglib: Update createFrame() to non-deprecated version.
Doug Nazar [Sat, 24 Apr 2021 15:15:50 +0000 (11:15 -0400)]
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>

3 years agortpjitterbuffer: fix divide-by-zero
Havard Graff [Sun, 25 Apr 2021 00:16:45 +0000 (02:16 +0200)]
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>

3 years agortpjitterbuffer: clean up and improve missing packets handling
Havard Graff [Tue, 2 Jun 2020 17:38:33 +0000 (19:38 +0200)]
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>

3 years agolevel: make properties thread-safe
Guillaume Desmottes [Fri, 23 Apr 2021 10:07:52 +0000 (12:07 +0200)]
level: make properties thread-safe

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/962>

3 years agolevel: disable passthrough when audio-level-meta is enabled
Guillaume Desmottes [Thu, 22 Apr 2021 12:11:09 +0000 (14:11 +0200)]
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>

3 years agomatroskamux: Don't pass a non-GObject pointer to GST_DEBUG_OBJECT and similar
Sebastian Dröge [Fri, 23 Apr 2021 05:28:06 +0000 (08:28 +0300)]
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>

3 years agortpjitterbuffer: Avoid generation of invalid timestamps
Edward Hervey [Thu, 22 Apr 2021 06:57:23 +0000 (08:57 +0200)]
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>

3 years agov4l2: Fix glib warning emitted when attribute query fails
Philippe Normand [Wed, 21 Apr 2021 17:41:08 +0000 (18:41 +0100)]
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>

3 years agoqmloverlay: Use first found GstGLVideoItem as widget property
VaL Doroshchuk [Thu, 25 Mar 2021 12:20:38 +0000 (13:20 +0100)]
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>

3 years agov4l2: fix debug category initialisation again
Tim-Philipp Müller [Mon, 19 Apr 2021 15:39:03 +0000 (16:39 +0100)]
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>

3 years agortspsrc: Fix race saving seek event seqnum.
Doug Nazar [Mon, 19 Apr 2021 05:29:33 +0000 (01:29 -0400)]
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>

3 years agoqmlglsink: allow to set force-aspect-ratio property
Marco Felsch [Wed, 31 Mar 2021 08:52:14 +0000 (10:52 +0200)]
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>

3 years agov4l2src: fix spurious SOURCE_CHANGED error-level log messages
Tim-Philipp Müller [Mon, 19 Apr 2021 10:14:00 +0000 (11:14 +0100)]
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>

3 years agortpsbcpay: remove use of packed struct for payload
Doug Nazar [Wed, 14 Apr 2021 20:32:06 +0000 (16:32 -0400)]
rtpsbcpay: remove use of packed struct for payload

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/950>

3 years agodtmf: convert to bit accessors
Doug Nazar [Wed, 14 Apr 2021 15:13:45 +0000 (11:13 -0400)]
dtmf: convert to bit accessors

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/949>

3 years agortspsrc: Remove some dead code
Nirbheek Chauhan [Tue, 13 Apr 2021 03:53:12 +0000 (09:23 +0530)]
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>

3 years agortspsrc: Do not overwrite the known duration after a seek
Nirbheek Chauhan [Fri, 9 Apr 2021 21:23:51 +0000 (02:53 +0530)]
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>

3 years agortspsrc: Just assign the segment instead of memcpy
Nirbheek Chauhan [Fri, 9 Apr 2021 23:10:46 +0000 (04:40 +0530)]
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>

3 years agortpjitterbuffer: Check srcresult before waiting on the condition variable too
Sebastian Dröge [Tue, 13 Apr 2021 08:30:51 +0000 (11:30 +0300)]
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>

3 years agortp: fix test_twcc_header_and_run to support big endian.
Doug Nazar [Tue, 13 Apr 2021 03:15:17 +0000 (23:15 -0400)]
rtp: fix test_twcc_header_and_run to support big endian.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/942>

3 years agortp: fix rtptwcc to support big endian.
Doug Nazar [Tue, 13 Apr 2021 03:13:15 +0000 (23:13 -0400)]
rtp: fix rtptwcc to support big endian.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/942>

3 years agortp: fix rtphdrextrfc6464 to support big endian.
Doug Nazar [Tue, 13 Apr 2021 01:59:45 +0000 (21:59 -0400)]
rtp: fix rtphdrextrfc6464 to support big endian.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/942>

3 years agotests: Fix alpha test on big endian machines.
Doug Nazar [Tue, 13 Apr 2021 01:36:58 +0000 (21:36 -0400)]
tests: Fix alpha test on big endian machines.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/943>

3 years agoqtmux: Protect against writing absurd sample durations
Jan Schmidt [Thu, 18 Mar 2021 15:51:20 +0000 (02:51 +1100)]
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>

3 years agortspsrc: De-dup seek event seqnums to avoid multiple seeks
Nirbheek Chauhan [Fri, 9 Apr 2021 21:39:44 +0000 (03:09 +0530)]
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>

3 years agortspsrc: Using multicast UDP has no relation to seekability
Nirbheek Chauhan [Fri, 9 Apr 2021 20:25:28 +0000 (01:55 +0530)]
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>

3 years agortspsrc: Add more logging for range parsing and seekable
Nirbheek Chauhan [Fri, 9 Apr 2021 20:24:48 +0000 (01:54 +0530)]
rtspsrc: Add more logging for range parsing and seekable

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/939>

3 years agovideocrop: Update documentation cache
Sebastian Dröge [Sat, 10 Apr 2021 11:47:23 +0000 (14:47 +0300)]
videocrop: Update documentation cache

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/515>

3 years agovideocrop: Add support for GBR* video formats
Markus Ebner [Wed, 7 Apr 2021 19:57:11 +0000 (21:57 +0200)]
videocrop: Add support for GBR* video formats

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/515>

3 years agovideocrop: Added support for planar pixel formats > 8bits
Markus Ebner [Wed, 7 Apr 2021 16:54:49 +0000 (18:54 +0200)]
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>

3 years agovideocrop: Move supported format list into private header
Markus Ebner [Wed, 7 Apr 2021 15:52:34 +0000 (17:52 +0200)]
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>

3 years agortpjitterbuffer: More logging when calculating rfc7273 timestamps
Nirbheek Chauhan [Tue, 6 Apr 2021 11:32:34 +0000 (17:02 +0530)]
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>

3 years agortp: missing debug init after element splitting
Stéphane Cerveau [Thu, 8 Apr 2021 11:29:10 +0000 (13:29 +0200)]
rtp: missing debug init after element splitting

- h264depay
- h265depay
- sv3vdepay

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/936>

3 years agortp: rename gst_rtp_sbc_pay_flush_buffers()
Michal Dzik [Mon, 30 Mar 2020 07:29:07 +0000 (09:29 +0200)]
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>

3 years agortp: fix adapter flushing in sbc payloader
Michal Dzik [Tue, 24 Mar 2020 12:31:00 +0000 (13:31 +0100)]
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>

3 years agovpxenc: add colorspace information into VP9 bitstream
Jakub Adam [Tue, 18 Aug 2020 18:16:06 +0000 (20:16 +0200)]
vpxenc: add colorspace information into VP9 bitstream

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/871>

3 years agov4l2object: Use default colorimetry if that in caps is unknown
Hou Qi [Fri, 26 Mar 2021 08:26:22 +0000 (16:26 +0800)]
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>

3 years agomatroskademux: Take segment stop into account when need_segment
Vivia Nikolaidou [Wed, 31 Mar 2021 13:37:56 +0000 (16:37 +0300)]
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>

3 years agogstqtoverlay: Add initialization and finalization to qml-scene prop
Val Doroshchuk [Mon, 29 Mar 2021 14:45:26 +0000 (16:45 +0200)]
gstqtoverlay: Add initialization and finalization to qml-scene prop

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/924>

3 years agoqt: fix build warning with clang and c-linkage of user defined type
Matthew Waters [Tue, 30 Mar 2021 23:21:59 +0000 (10:21 +1100)]
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>

3 years agoqt: hotfix: allow per feature registration
Stéphane Cerveau [Tue, 30 Mar 2021 07:45:45 +0000 (09:45 +0200)]
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>

3 years agotwolame: allow per feature registration
Stéphane Cerveau [Wed, 17 Feb 2021 07:52:40 +0000 (08:52 +0100)]
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>

3 years agoshout2: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:49:03 +0000 (17:49 +0100)]
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>

3 years agocairo: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:38:46 +0000 (17:38 +0100)]
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>

3 years agoy4m: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:34:34 +0000 (17:34 +0100)]
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>

3 years agowavparse: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:32:26 +0000 (17:32 +0100)]
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>

3 years agowavenc: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:29:40 +0000 (17:29 +0100)]
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>

3 years agospectrum: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:27:24 +0000 (17:27 +0100)]
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>

3 years agomonoscope: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:27:12 +0000 (17:27 +0100)]
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>

3 years agoimagefreeze: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:22:47 +0000 (17:22 +0100)]
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>

3 years agoid3demux: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:19:52 +0000 (17:19 +0100)]
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>

3 years agoicydemux: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:16:33 +0000 (17:16 +0100)]
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>

3 years agogoom2k1: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:14:26 +0000 (17:14 +0100)]
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>

3 years agocutter: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:11:26 +0000 (17:11 +0100)]
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>

3 years agogoom: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:11:14 +0000 (17:11 +0100)]
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>

3 years agodeinterlace: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 16:10:33 +0000 (17:10 +0100)]
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>

3 years agooss4: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 15:34:48 +0000 (16:34 +0100)]
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>

3 years agooss: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 15:11:36 +0000 (16:11 +0100)]
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>

3 years agoauparse: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 14:56:35 +0000 (15:56 +0100)]
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>

3 years agov4l2: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 14:29:06 +0000 (15:29 +0100)]
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>

3 years agovideofilter: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 14:05:43 +0000 (15:05 +0100)]
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>

3 years agovideocrop: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 13:58:57 +0000 (14:58 +0100)]
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>

3 years agovideobox: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 13:54:15 +0000 (14:54 +0100)]
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>

3 years agoudp: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 13:49:56 +0000 (14:49 +0100)]
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>

3 years agosmpte: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 13:43:32 +0000 (14:43 +0100)]
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>

3 years agoshapewipe: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 13:38:37 +0000 (14:38 +0100)]
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>

3 years agortsp: allow per feature registration
Stéphane Cerveau [Tue, 16 Feb 2021 13:35:51 +0000 (14:35 +0100)]
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>