platform/upstream/gstreamer.git
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>

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

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

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

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

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

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

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

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

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

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

3 years agoflv: allow per feature registration
Stéphane Cerveau [Mon, 15 Feb 2021 16:37:09 +0000 (17:37 +0100)]
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>

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

3 years agoeffectv: allow per feature registration
Stéphane Cerveau [Mon, 15 Feb 2021 14:37:52 +0000 (15:37 +0100)]
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>

3 years agodtmf: allow per feature registration
Stéphane Cerveau [Mon, 15 Feb 2021 14:03:10 +0000 (15:03 +0100)]
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>

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

3 years agoavi: allow per feature registration
Stéphane Cerveau [Mon, 15 Feb 2021 12:38:21 +0000 (13:38 +0100)]
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>

3 years agoautodetect: allow per feature registration
Stéphane Cerveau [Mon, 15 Feb 2021 12:02:59 +0000 (13:02 +0100)]
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>

3 years agoaudioparsers: allow per feature registration
Stéphane Cerveau [Mon, 15 Feb 2021 12:00:38 +0000 (13:00 +0100)]
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>

3 years agoapetag: allow per feature registration
Stéphane Cerveau [Mon, 15 Feb 2021 11:44:31 +0000 (12:44 +0100)]
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>

3 years agovpx: allow per feature registration
Stéphane Cerveau [Mon, 15 Feb 2021 10:00:46 +0000 (11:00 +0100)]
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>

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

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

3 years agospeex: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 15:09:53 +0000 (16:09 +0100)]
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>

3 years agosoup: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 15:04:16 +0000 (16:04 +0100)]
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>

3 years agoraw1394: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 14:53:19 +0000 (15:53 +0100)]
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>

3 years agowavpack: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 14:47:46 +0000 (15:47 +0100)]
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>

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

3 years agoaudiofx: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 14:27:31 +0000 (15:27 +0100)]
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>

3 years agortp: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 12:16:28 +0000 (13:16 +0100)]
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>

3 years agopulse: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 10:12:34 +0000 (11:12 +0100)]
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>

3 years agompeg123: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 09:41:29 +0000 (10:41 +0100)]
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>

3 years agolibpng: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 09:33:50 +0000 (10:33 +0100)]
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>

3 years agolame: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 09:27:18 +0000 (10:27 +0100)]
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>

3 years agolibcaca: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 09:26:26 +0000 (10:26 +0100)]
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>

3 years agojpeg: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 09:09:46 +0000 (10:09 +0100)]
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>

3 years agojack: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 08:56:36 +0000 (09:56 +0100)]
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>

3 years agogdk_pixbuf: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 07:57:55 +0000 (08:57 +0100)]
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>

3 years agogtk: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 07:48:21 +0000 (08:48 +0100)]
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>

3 years agoflac: allow per feature registration
Stéphane Cerveau [Thu, 11 Feb 2021 18:53:30 +0000 (19:53 +0100)]
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>

3 years agodv: allow per feature registration
Stéphane Cerveau [Thu, 11 Feb 2021 17:57:03 +0000 (18:57 +0100)]
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>

3 years agoaalib: allow per feature registration
Julian Bouzas [Fri, 14 Aug 2020 19:27:31 +0000 (15:27 -0400)]
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>

3 years agovideocrop: handle non raw caps features
Víctor Manuel Jáquez Leal [Fri, 19 Mar 2021 16:19:43 +0000 (17:19 +0100)]
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>

3 years agortpbin: Don't special-case G_SIGNAL_RUN_CLEANUP stage in signal accumulators
Sebastian Dröge [Fri, 19 Mar 2021 08:35:09 +0000 (10:35 +0200)]
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>

3 years agoshout2: Don't register signal without class handler with G_SIGNAL_RUN_CLEANUP
Sebastian Dröge [Fri, 19 Mar 2021 08:34:33 +0000 (10:34 +0200)]
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>

3 years agov4l2object: Avoid colorimetry mismatch for streams with invalid colorimetry
Hou Qi [Tue, 23 Mar 2021 08:59:28 +0000 (16:59 +0800)]
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>

3 years agov4l2object: Add support for hdr10 stream playback
Hou Qi [Fri, 19 Mar 2021 02:52:26 +0000 (10:52 +0800)]
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>

3 years agoshapewipe: fix broken link in docs
Sid Sethupathi [Sat, 20 Mar 2021 15:41:29 +0000 (10:41 -0500)]
shapewipe: fix broken link in docs

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

3 years agortspsrc: Fix more signals
Alba Mendez [Thu, 18 Mar 2021 17:42:02 +0000 (17:42 +0000)]
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>

3 years agogst: don't use volatile to mean atomic
Matthew Waters [Thu, 18 Mar 2021 08:52:53 +0000 (19:52 +1100)]
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>

3 years agoUpdate docs cache and fix before-send signal doc syntax
Nirbheek Chauhan [Wed, 17 Mar 2021 10:24:59 +0000 (15:54 +0530)]
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>

3 years agortspsrc: Fix accumulation of before-send signal return values
Nirbheek Chauhan [Wed, 17 Mar 2021 07:48:34 +0000 (13:18 +0530)]
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>

3 years agoRevert unusable workaround for PAUSE being sent when going NULL
Nirbheek Chauhan [Wed, 17 Mar 2021 06:02:08 +0000 (11:32 +0530)]
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>

3 years agortpjitterbuffer: Fix parsing of the mediaclk:direct= field
Sebastian Dröge [Tue, 16 Mar 2021 17:25:36 +0000 (19:25 +0200)]
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>

3 years agortspsrc: Fix state changes from PAUSED to PLAYING
Nirbheek Chauhan [Mon, 15 Mar 2021 18:38:43 +0000 (00:08 +0530)]
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>

3 years agomatroskademux: Fix extraction of multichannel WavPack
Sebastian Dröge [Thu, 4 Mar 2021 11:05:19 +0000 (13:05 +0200)]
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>

3 years agomatroskademux: Initialize track context out parameter to NULL before parsing
Sebastian Dröge [Wed, 3 Mar 2021 09:31:52 +0000 (11:31 +0200)]
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>