platform/upstream/gstreamer.git
3 years agocheck: Fix test dash_mpdparser_xlink_period
Doug Nazar [Tue, 13 Apr 2021 09:54:37 +0000 (05:54 -0400)]
check: Fix test dash_mpdparser_xlink_period

Test used http://404/ERROR/XML.period as an invalid url. Curl now
interprets that as an 32bit int and tries an actual connect which
timesout. Use .invalid as an IANA reserved domain for invalid DNS.

curl -v http://404/ERROR/XML.period
*   Trying 0.0.1.148:80...

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

3 years agova: allocator: Fix an unmap typo in _va_copy.
He Junyan [Tue, 13 Apr 2021 07:42:09 +0000 (15:42 +0800)]
va: allocator: Fix an unmap typo in _va_copy.

No need to unmap the the src memory when failing to allocate the
dst mem. It has not been mapped yet.

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

3 years agomsdk: don't fall back to the default device
Haihao Xiang [Tue, 6 Apr 2021 04:03:32 +0000 (12:03 +0800)]
msdk: don't fall back to the default device

Ohterwise when user set a wrong device, the warning message doesn't get
printed if user doesn't set a right debug level in the environment, this
behavior might mislead user that the wrong device is being used.

This fixed https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1567

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

3 years agowebrtcbin: Simplify answer_caps intersection code a little
Olivier Crête [Mon, 12 Apr 2021 21:54:31 +0000 (17:54 -0400)]
webrtcbin: Simplify answer_caps intersection code a little

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

3 years agowebrtcbin test: Wait for set-local-desc & set-remote-desc to continue
Olivier Crête [Mon, 12 Apr 2021 19:35:41 +0000 (15:35 -0400)]
webrtcbin test: Wait for set-local-desc & set-remote-desc to continue

To avoid racing betwen the SDPs being set and the next step of the
test, let's wait for setting the SDP both locally and remotely to succeed.
of the test

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

3 years agowebrtcbin: Move GstPromise reply to operation framework
Olivier Crête [Thu, 1 Apr 2021 18:51:30 +0000 (14:51 -0400)]
webrtcbin: Move GstPromise reply to operation framework

This makes it possible to reply to all promises in a consistent way
without having to do a unlock/relock that is always risky.

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

3 years agowebrtcbin: Make sure PC_LOCK is release when replying to promise
Olivier Crête [Thu, 1 Apr 2021 18:41:11 +0000 (14:41 -0400)]
webrtcbin: Make sure PC_LOCK is release when replying to promise

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

3 years agowebrtcbin: Take PC lock around all entry points
Olivier Crête [Wed, 31 Mar 2021 15:56:10 +0000 (11:56 -0400)]
webrtcbin: Take PC lock around all entry points

All of those action signals change the internal state, so
protect it by using the PC_LOCK

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

3 years agowebrtcbin: Take PC_LOCK when requesting new pad
Olivier Crête [Wed, 31 Mar 2021 15:49:36 +0000 (11:49 -0400)]
webrtcbin: Take PC_LOCK when requesting new pad

This is needed to avoid having the state change under us.

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

3 years agowebrtcbin test: Add for the case where a second m-line is renegotiated
Olivier Crête [Wed, 31 Mar 2021 15:41:45 +0000 (11:41 -0400)]
webrtcbin test: Add for the case where a second m-line is renegotiated

This is for the case where there answerer forces a specific media type
for a m-line, but he origin offer only has the other media type. In this
case, we will create a second transceiver on receiving the offer and add
the desired media type using renegotiation.

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

3 years agowebrtcbin: Ensure that query caps method returns valid caps
Olivier Crête [Wed, 31 Mar 2021 15:40:28 +0000 (11:40 -0400)]
webrtcbin: Ensure that query caps method returns valid caps

This means rejecting any caps that aren't fixed. Also, use a filter
that will create unfixed caps if the other side just returns ANY.

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

3 years agowebrtcbin: Associate the stream with a new transceiver
Olivier Crête [Wed, 31 Mar 2021 15:33:21 +0000 (11:33 -0400)]
webrtcbin: Associate the stream with a new transceiver

Otherwise, this newly created transceiver has no stream and it
aborts later when it tries to connect the input pad.

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

3 years agowebrtcbin: Match unassociated transceiver by kind too
Olivier Crête [Wed, 31 Mar 2021 15:30:16 +0000 (11:30 -0400)]
webrtcbin: Match unassociated transceiver by kind too

When a new m-line comes in that doesn't have a transceiver, only match
existing transceivers of the same kind.

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

3 years agowebrtcbin: Fix typoe in name of error GstStructure
Olivier Crête [Tue, 30 Mar 2021 22:01:56 +0000 (18:01 -0400)]
webrtcbin: Fix typoe in name of error GstStructure

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

3 years agowebrtc test: Verify that forcing different kinds on peers fails
Olivier Crête [Tue, 30 Mar 2021 20:16:50 +0000 (16:16 -0400)]
webrtc test: Verify that forcing different kinds on peers fails

If the offer contains an audio kind and a video kind, forcing them both
at m-line zero will fail.

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

3 years agowebrtc tests: Verify that create-offer is rejected when needed
Olivier Crête [Tue, 30 Mar 2021 20:04:33 +0000 (16:04 -0400)]
webrtc tests: Verify that create-offer is rejected when needed

Verify that it gets rejected if a m-line at index 1 is requested but
there is no m-line 0.

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

3 years agowebrtcbin test: Add test for various cases where get_request_pad is meant to fail
Olivier Crête [Mon, 29 Mar 2021 23:47:21 +0000 (19:47 -0400)]
webrtcbin test: Add test for various cases where get_request_pad is meant to fail

This should ensure that the recently added code works.

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

3 years agowebrtcbin: Enforce direction on request sink pad with a specific name
Olivier Crête [Sat, 27 Mar 2021 01:09:04 +0000 (21:09 -0400)]
webrtcbin: Enforce direction on request sink pad with a specific name

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

3 years agowebrtcbin: Try to match an existing transceiver on pad request
Olivier Crête [Sat, 27 Mar 2021 00:55:36 +0000 (20:55 -0400)]
webrtcbin: Try to match an existing transceiver on pad request

This should avoid creating extra transceivers that are duplicated.

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

3 years agowebrtcbin: Validate locked m-lines in set*Description
Olivier Crête [Sat, 27 Mar 2021 00:02:13 +0000 (20:02 -0400)]
webrtcbin: Validate locked m-lines in set*Description

Verify that the remote description match the locked m-lines, otherwise
just reject the SDP.

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

3 years agowebrtcbin: Remove unused session_mid_map
Olivier Crête [Fri, 26 Mar 2021 23:38:57 +0000 (19:38 -0400)]
webrtcbin: Remove unused session_mid_map

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

3 years agowebrtcbin: Enforce m-line restrictions when creating offer
Olivier Crête [Fri, 26 Mar 2021 22:15:50 +0000 (18:15 -0400)]
webrtcbin: Enforce m-line restrictions when creating offer

First fail the offer creation if the mid of an existing offer doesn't
match a forced m-mline.

Then, for all newly added mlines, first look for a transceiver that
forces this m-line, then add a "floating" one, then the data channel.
And repeat this until we're out of transceivers.

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

3 years agowebrtcbin: Remember if a transceiver had a forced m-line
Olivier Crête [Fri, 26 Mar 2021 19:57:15 +0000 (15:57 -0400)]
webrtcbin: Remember if a transceiver had a forced m-line

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

3 years agowebrtcbin: Enforce same-kind on request sink pad with a specific name
Olivier Crête [Fri, 26 Mar 2021 19:54:35 +0000 (15:54 -0400)]
webrtcbin: Enforce same-kind on request sink pad with a specific name

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

3 years agowebrtcbin: Enforce compatible caps on pad request
Olivier Crête [Fri, 26 Mar 2021 19:23:34 +0000 (15:23 -0400)]
webrtcbin: Enforce compatible caps on pad request

If a pad is requested with certain caps and there is already a
transceiver, reject the pad request if the caps don't match.

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

3 years agowebrtcbin: Reject pad request for a specific m-line if it already exists
Olivier Crête [Fri, 26 Mar 2021 19:19:09 +0000 (15:19 -0400)]
webrtcbin: Reject pad request for a specific m-line if it already exists

This way, the app developer is in control.

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

3 years agowebrtcbin: Make request-pad validation an early return
Olivier Crête [Fri, 26 Mar 2021 19:02:50 +0000 (15:02 -0400)]
webrtcbin: Make request-pad validation an early return

This reduces the indendation.

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

3 years agowebrtcbin: Add document for webrtcbin itself to generated doc
Olivier Crête [Fri, 26 Mar 2021 18:48:58 +0000 (14:48 -0400)]
webrtcbin: Add document for webrtcbin itself to generated doc

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

3 years agowebrtcbin test: Test adding a stream to a stream+datachannel
Olivier Crête [Wed, 24 Mar 2021 00:18:24 +0000 (20:18 -0400)]
webrtcbin test: Test adding a stream to a stream+datachannel

This use-case was previously broken by the expectation of having
a 1-1 match between the pad id and the m-line index

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

3 years agowebrtc: Reset received_caps when releasing pad
Olivier Crête [Tue, 23 Mar 2021 23:51:00 +0000 (19:51 -0400)]
webrtc: Reset received_caps when releasing pad

This is to work around a race where the pad is accessed in the
webrtc main thread while being released.

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

3 years agowebrtcbin: Split pad name from mline
Olivier Crête [Tue, 23 Mar 2021 21:51:16 +0000 (17:51 -0400)]
webrtcbin: Split pad name from mline

The simple case where this breaks is if you add a
datachannel and want to add a new pad (a new media) after). Another
case where this is broken is if the order of the media is forced to
something different by the peer.

It's more simple to just split both things completely. In practice, the
pads will be named in the order in which they are allocated, so it
shouldn't change the current behaviour, just enable new ones.

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

3 years agoswitchbin: When collecting srcpad caps, don't intersect with path caps.
Jan Schmidt [Wed, 24 Feb 2021 18:04:00 +0000 (05:04 +1100)]
switchbin: When collecting srcpad caps, don't intersect with path caps.

The path caps describe the input caps that will select each path, don't
intersect those with the srcpad caps, which could be completely
different. Instead, when querying allowed caps for the srcpad, just
construct the union of all possible output caps from all path srcpads.

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

3 years agoswitchbin: Don't report sink pad caps for src pad queries.
Jan Schmidt [Tue, 16 Feb 2021 04:00:07 +0000 (15:00 +1100)]
switchbin: Don't report sink pad caps for src pad queries.

When handling a caps query on the src pad, don't return the union
of input caps. Even when not active, a path element can be queried
for srcpad template caps, or for dropping paths the allowed downstream
caps is anything - as data will be dropped anyway.

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

3 years agogst-plugins: allow per feature registration
Stéphane Cerveau [Thu, 25 Feb 2021 14:22:15 +0000 (15:22 +0100)]
gst-plugins: 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-bad/-/merge_requests/2110>

3 years agoallow NetStream.Play.PublishNotify Message
Helmut Januschka [Sat, 10 Apr 2021 18:34:26 +0000 (20:34 +0200)]
allow NetStream.Play.PublishNotify Message

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

3 years agoplugins-sys: allow per feature registration
Stéphane Cerveau [Fri, 26 Mar 2021 10:00:50 +0000 (11:00 +0100)]
plugins-sys: 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-bad/-/merge_requests/2116>

3 years agocodecs: vp9decoder: Update docs
Seungha Yang [Thu, 8 Apr 2021 16:54:50 +0000 (01:54 +0900)]
codecs: vp9decoder: Update docs

* Remove "FIXME 1.20": All the bits are addressed already by using
  vp9parse element
* Fix copy & paste errors: Some comments were copied from h264decoder
  blindly.

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

3 years agocodecs: vp9decoder: Make duplicate_picture() vfunc optional
Seungha Yang [Fri, 9 Apr 2021 03:45:46 +0000 (12:45 +0900)]
codecs: vp9decoder: Make duplicate_picture() vfunc optional

The default implementation was required when superframe parsing
was handled by vp9decoder. For instance, if a superframe consists
of multiple frames with show_existing_frame header, it was vague
that which GstVp9Picture should consume GstVideoCodecFrame.

After 1.18 release, we introduced vp9parse element and
superframe should be handled by upstream vp9parse elemenet now.
So, we don't need to care about the superframe at vp9decoder class
level anymore. Simply, a frame corresponding to show_existing_frame
can be dropped if subclass doesn't implement duplicate_picture().

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

3 years agodebugutils: Add fakeaudiosink element
Philippe Normand [Tue, 30 Mar 2021 13:40:53 +0000 (14:40 +0100)]
debugutils: Add fakeaudiosink element

This element can be useful for CI purposes on machines not running any system
audio daemon. The element implements the GstStreamVolume interface.

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

3 years agov4l2codecs: allocator: Keep dmabuf mapped
Nicolas Dufresne [Thu, 8 Apr 2021 18:53:52 +0000 (14:53 -0400)]
v4l2codecs: allocator: Keep dmabuf mapped

DMABuf allocator already implements DMABuf Sync, meaning that doing
mmap/munmap (unless the mode have changed) is not required. In fact, on
systems with IOMMU it makes the kernel redo the mmu table which is visible
in the CPU usage.

This change reduces CPU usage when decoding
bbb_sunflower_2160p_60fps_normal.mp4 on RK3399 SoC from over 30% to
around 15%.

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

3 years agova: allocator: Implement mem_copy for VA memory.
Víctor Manuel Jáquez Leal [Sat, 3 Apr 2021 12:16:22 +0000 (14:16 +0200)]
va: allocator: Implement mem_copy for VA memory.

Implementation of mem_copy() virtual method for GstVaAllocator.

It's a deep copy where a new VA memory is popped out from the pool or,
if pool is empty, a new memory is allocated. The original memory is
mapped to read, and if its VAImage is not derived and size to copy is
the whole surface, the mapped VAImage of the original memory is put in
the new memory. Otherwise a slow memcpy is done between both memories.

Fixes: #1568
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2136>

3 years agosrtobject: fix optlen of srt_getsockflag
Zhao Zhili [Thu, 8 Apr 2021 12:29:29 +0000 (20:29 +0800)]
srtobject: fix optlen of srt_getsockflag

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

3 years agojpeg2000parse: fix critical log when play one gray colorspace video
Haihua Hu [Thu, 14 Jan 2021 06:24:06 +0000 (14:24 +0800)]
jpeg2000parse: fix critical log when play one gray colorspace video

Need guess color space based on number of components when cannot
got it from sink caps

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

3 years agoldacenc: Emit message on errors
Olivier Crête [Fri, 11 Dec 2020 21:33:39 +0000 (16:33 -0500)]
ldacenc: Emit message on errors

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

3 years agosbc: Return hard error on allocation or mapping error
Olivier Crête [Fri, 11 Dec 2020 21:26:00 +0000 (16:26 -0500)]
sbc: Return hard error on allocation or mapping error

Also post a message on the bus in these cases.wpe: Emit load-progress messages

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

3 years agoTell programmers that set_volume uses linear scale (fixes https://gitlab.freedesktop...
Matthieu De Beule [Sun, 25 Oct 2020 16:39:48 +0000 (16:39 +0000)]
Tell programmers that set_volume uses linear scale (fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1439)

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

3 years agosbc/ldac: Don't use GST_CAPS_NONE to mean NULL
Olivier Crête [Fri, 11 Dec 2020 19:52:20 +0000 (14:52 -0500)]
sbc/ldac: Don't use GST_CAPS_NONE to mean NULL

The GST_CAPS_NONE macro actually returns a instance of
a empty caps.

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

3 years agocodecs: vp9decoder: Allow decoding start with intra-only frame
Seungha Yang [Tue, 30 Mar 2021 08:24:38 +0000 (17:24 +0900)]
codecs: vp9decoder: Allow decoding start with intra-only frame

As per spec "7.2 Uncompressed header semantics" and
"8.2 Frame order constraints", decoding can start with intra-only
frame. This commit is for fixing vp90-2-16-intra-only.webm
bitstream test failure.

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

3 years agocodecs: vp9decoder: Pass GstVideoCodecFrame to duplicate_picture()
Seungha Yang [Sun, 28 Mar 2021 17:11:22 +0000 (02:11 +0900)]
codecs: vp9decoder: Pass GstVideoCodecFrame to duplicate_picture()

... and fix picture duplication logic for vavp9dec

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

3 years agocodecs: vp9decoder: Port to GstVp9StatefulParser
Seungha Yang [Tue, 30 Mar 2021 02:49:43 +0000 (11:49 +0900)]
codecs: vp9decoder: Port to GstVp9StatefulParser

Use newly implemented VP9 parser. Since new GstVp9FrameHeader
struct holds all the information of the stream, baseclass will not
pass parser object to new_sequence() method anymore.

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

3 years agocodecparsers: Reimplement VP9 parser
Seungha Yang [Sat, 27 Mar 2021 06:32:59 +0000 (15:32 +0900)]
codecparsers: Reimplement VP9 parser

Existing VP9 parser implementation doesn't provide information
required by other stateless decoding APIs (i.e., DXVA and NVDEC),
specifically loop filter and segmentation parameters might not exist
current frame. So parser needs to fill the information by using previously
parsed information.
We can update the gstvp9parser implementation so that it can provide
all information required by stateless decoding APIs with a huge API break,
or adding more ugly struct in it.
Instead doing as such, this commit introduce a new VP9 parser implementation.

What is different from existing one?
* All variables will follow the specification as much as possible:
  VP9 Bitstream & Decoding Process Specification - v0.6 31st March 2016
* Parser will fill all the required information for decoding frame
  to GstVp9FrameHeader struct. In case of old VP9 parser,
  user needs to read additional data from parser's member variables.
* GstVp9StatefulParser object struct is completely completely opaque

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

3 years agocodecs: vp9decoder: Don't check codec change with show_existing_frame
Seungha Yang [Sun, 28 Mar 2021 07:11:23 +0000 (16:11 +0900)]
codecs: vp9decoder: Don't check codec change with show_existing_frame

Show existing frame will zero frame_type value but it doesn't mean
it's keyframe.

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

3 years agov4l2codecs: Fix holding of reference picture buffer
Nicolas Dufresne [Tue, 6 Apr 2021 20:24:39 +0000 (16:24 -0400)]
v4l2codecs: Fix holding of reference picture buffer

The picture buffer (V4L2 CAPTURE buffer) was being released immediatly
when the request was done. This was problematic since even after the
request is done, the picture buffer might still be used as a reference
and should not be reused for further decoding yet.

This change effectively bind the picture buffer lifetime to the request.
So that if the picture is never showned (decode only frame) or the request
queue is full before the buffer is displayed, the picture buffer will
remain alive.

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

3 years agortmp2: Use correct size of write macro for param2.
Doug Nazar [Wed, 7 Apr 2021 11:48:57 +0000 (07:48 -0400)]
rtmp2: Use correct size of write macro for param2.

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

3 years agova: filter: remove unsupported formats because driver's bugs
Víctor Manuel Jáquez Leal [Thu, 1 Apr 2021 05:59:45 +0000 (07:59 +0200)]
va: filter: remove unsupported formats because driver's bugs

Add a way to filter out video formats from caps because of unresolved
bugs in drivers. In this case for media-driver (iHD) where some RGB32
formats are not handled correctly.

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

3 years agova: videoformats: Map more color formats.
Víctor Manuel Jáquez Leal [Wed, 31 Mar 2021 07:59:21 +0000 (09:59 +0200)]
va: videoformats: Map more color formats.

Added Y212_LE, Y412_LE, P012_LE, Y444, RGB16, RGB and BGR10A2_LE in
the static map betwen VA and GStreamer color formats. This synchronize
the map used in gstremaer-vaapi and this plugin.

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

3 years agova: videoformats: Fix RGB32 mapping between VA and GStreamer.
Víctor Manuel Jáquez Leal [Wed, 31 Mar 2021 07:50:46 +0000 (09:50 +0200)]
va: videoformats: Fix RGB32 mapping between VA and GStreamer.

Different VA drives might have different definitions for RGB32 color
formats because different bit interpretation. Sadly the specification
doesn't clarify these interpretations. So VA users have to figure out
what's the correct mapping with it's rendering color format
definition.

This patch aims to fix the static map structure after the
VAImageFormats are queried. There is another static map with the
different interpretations of the RGB32 formats, and compare them with
the given VAImageFormat, then with the GStreamer color format, update
the mapping table.

Finally, some RGB32 color formats were added.

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

3 years agoavtp: Fix log format macros
Doug Nazar [Wed, 7 Apr 2021 05:03:15 +0000 (01:03 -0400)]
avtp: Fix log format macros

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

3 years agov4l2codecs: gstv4l2decoder.c: Add missing include
Daniel Almeida [Tue, 6 Apr 2021 16:07:52 +0000 (13:07 -0300)]
v4l2codecs: gstv4l2decoder.c: Add missing include

Add missing include for sys/ioctl.h so that these warnings dissapear
when compiling:
../subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2decoder.c:179:9:
warning: implicit declaration of function ‘ioctl’
[-Wimplicit-function-declaration]

Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2140>

3 years agocurlsftpsink: Don't run GST_DEBUG_OBJECT() on a class struct
Sebastian Dröge [Tue, 6 Apr 2021 16:18:45 +0000 (19:18 +0300)]
curlsftpsink: Don't run GST_DEBUG_OBJECT() on a class struct

It's supposed to be a GObject.

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

3 years agomsdkh265enc: add support for RGB 10bit format
Yinhang Liu [Mon, 29 Mar 2021 07:29:30 +0000 (15:29 +0800)]
msdkh265enc: add support for RGB 10bit format

The SDK can support A2RGB10 format [1], A2RGB10 format corresponds
to BGR10A2_LE format in gstreamer. A2RGB10 format only supports
low-power mode.

Example:
gst-launch-1.0 videotestsrc ! video/x-raw,format=BGR10A2_LE \
! msdkh265enc low-power=1 ! fakesink

[1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxframedata

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

3 years agovulkan: provide a custom VK_DEFINE_NON_DISPATCHABLE_HANDLE
Wim Taymans [Wed, 31 Mar 2021 14:18:04 +0000 (16:18 +0200)]
vulkan: provide a custom VK_DEFINE_NON_DISPATCHABLE_HANDLE

If the application did not define one yet, define our own
VK_DEFINE_NON_DISPATCHABLE_HANDLE that is independent of the
architecture.

Vulkan, by default, provides a define that depends on the architecture,
which causes the symbol type to be different. This causes an
architecture dependent .gir file, which then causes multilib
installation problems because the .gir files can't be shared.

Make it possible to override the format specifier and provide
a default one that is compatible with the default non dispatchable
handle.

Return VK_NULL_HANDLE from functions that return a non-dispatchable
handle.

Fixes #1566

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

3 years agova: postproc, filter: add disable-passthrough property
Víctor Manuel Jáquez Leal [Fri, 26 Mar 2021 16:48:09 +0000 (17:48 +0100)]
va: postproc, filter: add disable-passthrough property

vapostproc tries to be in passthrough mode as much as possible. But
they might be situations where the user might force to process the
frames. For example, when upstream sets the crop meta and the user
wants VA do that cropping, rather than downstream.

For those situations this property will disable the passthrough mode,
if it's enabled.

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

3 years agova: postproc: enable cropping by crop meta
Víctor Manuel Jáquez Leal [Tue, 23 Feb 2021 08:01:10 +0000 (09:01 +0100)]
va: postproc: enable cropping by crop meta

If incoming buffers have crop meta it's done by vapostproc, iif
vapostproc is not in passthrough mode and downstream doesn't handle
it.

This patch announces the crop meta API in proposed bufferpool, while
it stops filtering meta APIs, since it was only filter crop api.

Also if downstream supports crop and video metas, vapostporoc
announces both meta APIs in upstream bufferpool.

Finally, the meta is removed from the buffer if the crop is enabled.

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

3 years agova: filter: add gst_va_filter_enable_cropping ()
Víctor Manuel Jáquez Leal [Thu, 4 Mar 2021 14:19:25 +0000 (15:19 +0100)]
va: filter: add gst_va_filter_enable_cropping ()

This will toggle the cropping operation in the filter

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

3 years agova: filter, vpp: add and use GstVaSample struct
Víctor Manuel Jáquez Leal [Sat, 23 Jan 2021 11:53:25 +0000 (12:53 +0100)]
va: filter, vpp: add and use GstVaSample struct

This new struct describes the input and output GstBuffers to
post-process, including VA flags. It also contains the VASurfaceID and
VARectangle, but those are private, completed inside GstVaFilter.

It is used for pass arguments to gst_va_filter_convert_surface() function.

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

3 years agova: postproc: Use allocation caps when creating sink pool.
Víctor Manuel Jáquez Leal [Sun, 28 Feb 2021 07:38:36 +0000 (08:38 +0100)]
va: postproc: Use allocation caps when creating sink pool.

When an input buffer needs to be copied into a VA memory, it's
required to create a buffer pool. This patch uses the
propose_allocation() caps to instantiate the allocator and pool,
instead of the negotiated caps, which rather represents the resolution
to display.

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

3 years agoline21dec: relax caps requirements
Mathieu Duponchelle [Fri, 22 Jan 2021 22:54:50 +0000 (23:54 +0100)]
line21dec: relax caps requirements

Instead of requiring interlaced video, simply skip CC detection
when the input is progressive.

This allows placing line21decoder unconditionally in pipelines,
without having to worry about whether the input stream will be
interlaced, or even worse interlacing just in case!

+ update doc cache

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

3 years agoline21dec: expose mode property
Mathieu Duponchelle [Wed, 16 Dec 2020 00:02:53 +0000 (01:02 +0100)]
line21dec: expose mode property

That new property can be used to control whether and how
detected CC meta should be inserted in the list of existing
CC meta on the input frame (if there was any).

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

3 years agoline21dec: expose ntsc-only property
Mathieu Duponchelle [Tue, 15 Dec 2020 21:01:33 +0000 (22:01 +0100)]
line21dec: expose ntsc-only property

When this is set, the element only tries to detect CC when the
height is 525 or 486 (NTSC resolutions). The height is already
checked.

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

3 years agova: allocator: Use derived images only if not mapped for reading.
Víctor Manuel Jáquez Leal [Wed, 31 Mar 2021 09:52:07 +0000 (11:52 +0200)]
va: allocator: Use derived images only if not mapped for reading.

Derived images are direct maps to surfaces bits, but in Intel Gen7 to
Gen9, that memory is not cachable, thus reading can be very slow (it
might produce timeout is tests such as fluster).

This patch tries first to define if derived images are possible, and
later use them only if mapping is not for reading.

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

3 years agova: caps: Add image formats in raw caps only for non-iHD.
Víctor Manuel Jáquez Leal [Wed, 31 Mar 2021 09:13:52 +0000 (11:13 +0200)]
va: caps: Add image formats in raw caps only for non-iHD.

This plugin, for decoders more concretely, assumes that a VA config
can do certain color conversions when mapping frames onto CPU's
memory.

This assumption was valid for i965 and Gallium drivers which generates
valid outputs in bitstreams testers (v.gr. fluster). Nonetheless, iHD,
even when it generates acceptable rendered frames, output's MD5 of
tests weren't valid.

This patch append the image formats, for color conversion when mapping
to memory, for non-iHD drivers.

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

3 years agod3d11: Fix for UYVY/VYUY format rendering
Seungha Yang [Thu, 1 Apr 2021 06:09:45 +0000 (15:09 +0900)]
d3d11: Fix for UYVY/VYUY format rendering

Don't assume that non-native DXGI formats support RTV and/or SRV.
We are mapping UYVY and VYUY formats to DXGI_FORMAT_R8G8_B8G8_UNORM
which doesn't support render target view

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

3 years agompegtsmux: Respect the start-time-selection property.
Jan Schmidt [Wed, 24 Mar 2021 16:16:05 +0000 (03:16 +1100)]
mpegtsmux: Respect the start-time-selection property.

Use the start time provided by the aggregator base class for output
times.

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

3 years agomsdkh265enc: add dblk-idc property
Yinhang Liu [Mon, 29 Mar 2021 07:24:38 +0000 (15:24 +0800)]
msdkh265enc: add dblk-idc property

The SDK can support deblocking reference structure [1], so add a new
property to enable this feature.

[1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption2

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

3 years agomsdkh264enc: add dblk-idc property
Yinhang Liu [Mon, 29 Mar 2021 07:18:13 +0000 (15:18 +0800)]
msdkh264enc: add dblk-idc property

The SDK can support deblocking reference structure [1], so add a new
property to enable this feature.

[1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption2

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

3 years agoflite: allow per feature registration
Stéphane Cerveau [Tue, 30 Mar 2021 09:34:54 +0000 (11:34 +0200)]
flite: 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

<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038>

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

3 years agodtls: hotfix: allow per feature registration
Stéphane Cerveau [Tue, 30 Mar 2021 09:27:11 +0000 (11:27 +0200)]
dtls: hotfix: allow per feature registration

Use of GST_ELEMENT_REGISTER in plugin.c

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

3 years agogs: remove clang formatting
Stéphane Cerveau [Fri, 26 Mar 2021 18:47:06 +0000 (19:47 +0100)]
gs: remove clang formatting

remove clang formatting during
the build.

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

3 years agogs: allow per feature registration
Stéphane Cerveau [Fri, 26 Mar 2021 10:41:50 +0000 (11:41 +0100)]
gs: 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-bad/-/merge_requests/2115>

3 years agoavwait: Don't reset time tracking when receiving the same segment again
Sebastian Dröge [Mon, 29 Mar 2021 09:15:18 +0000 (12:15 +0300)]
avwait: Don't reset time tracking when receiving the same segment again

This causes avwait to go back into "dropping" mode until audio and video
are synced again, which is unnecessary when the segment didn't actually
change.

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

3 years agonvcodec: nvsldec: Refactor graphics api resource handling
Seungha Yang [Wed, 17 Mar 2021 05:30:09 +0000 (14:30 +0900)]
nvcodec: nvsldec: Refactor graphics api resource handling

* Move GL context object to GstNVDecoder object, and remove
  duplicated handling of each codec decoder element
* Don't create GL context too early. We can create it only if
  we need to negotiate with downstream gl element.

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

3 years agomsdkenc{h264,h265}: add intra-refresh-type property
Haihao Xiang [Wed, 17 Mar 2021 06:38:40 +0000 (14:38 +0800)]
msdkenc{h264,h265}: add intra-refresh-type property

The SDK allows user to specify the intra refresh type which can improve
error resilience without significant impact on encoded bitstream size
caused by I frames [1]

[1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption2

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

3 years agoAdd @ prefix to enum-variant references in documentation
Marijn Suijten [Sun, 28 Mar 2021 10:03:09 +0000 (12:03 +0200)]
Add @ prefix to enum-variant references in documentation

Found while working on GStreamer-rs documentation, some enums had this
bit of text pasted verbatim in the enum documentation rather than
attached to the enum-variant.  Fortunately it seems these in WebRTC and
D3D11 are the only ones matching the non-@-prefixed pattern:

    ^ \* GST_\w+:\s*\w+

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

3 years agortmp2/connection: Separate inner from outer cancelling
Jan Alexander Steffens (heftig) [Fri, 26 Mar 2021 11:20:07 +0000 (12:20 +0100)]
rtmp2/connection: Separate inner from outer cancelling

The connection cancels itself when it is closed. To avoid the
cancellable passed to `gst_rtmp_connection_new` from being unexpectedly
cancelled, separate inner from outer cancellation by holding two
cancellables.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1558

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

3 years agod3d11vp9dec: Remove debug dump functions
Seungha Yang [Sun, 28 Mar 2021 03:06:24 +0000 (12:06 +0900)]
d3d11vp9dec: Remove debug dump functions

Existing debug messages are not quite useful

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

3 years agod3d11decoder: Move zero-copy decision logic into decoder object
Seungha Yang [Sun, 28 Mar 2021 07:06:55 +0000 (16:06 +0900)]
d3d11decoder: Move zero-copy decision logic into decoder object

Get rid of all duplicated code for zero-copy decision and output buffer
allocation

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

3 years agod3d11vp9dec: Ignore show_frame flag in output_picture()
Seungha Yang [Fri, 26 Mar 2021 13:40:34 +0000 (22:40 +0900)]
d3d11vp9dec: Ignore show_frame flag in output_picture()

baseclass will not call output_picture() if it shouldn't be ouputted.
Note that the show_frame flag can be zero when show_existing_frame is set

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

3 years agocodecs: vp9decoder: Fix to output frame when show_existing_frame flag is set
Seungha Yang [Fri, 26 Mar 2021 13:27:38 +0000 (22:27 +0900)]
codecs: vp9decoder: Fix to output frame when show_existing_frame flag is set

When show_existing_frame flag is set, show_frame flag is zero
but we should output previously decoded frame as specified in frame header.

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

3 years agod3d11decoder: Do not hardcode the limit minimum resolution to 64
Seungha Yang [Fri, 26 Mar 2021 12:06:59 +0000 (21:06 +0900)]
d3d11decoder: Do not hardcode the limit minimum resolution to 64

Decoder should be able to support lower resolution than 64x64

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

3 years agod3d11videosink: Remove DirectWrite related dead code
Seungha Yang [Thu, 25 Mar 2021 12:17:07 +0000 (21:17 +0900)]
d3d11videosink: Remove DirectWrite related dead code

It's now not enabled since we moved core part to gst-libs

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

3 years agomfvideoenc: Don't pass 0/1 framerate to MFT
Seungha Yang [Wed, 24 Mar 2021 18:24:11 +0000 (03:24 +0900)]
mfvideoenc: Don't pass 0/1 framerate to MFT

Some MFT implementations do not accept 0/1 framerate and it will
result in encoder open failure. If framerate is unknown,
we will use arbitrary 25/1 framerate value.

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

3 years agod3d11decoder: Resurrect zero-copy for fixed-size DPB pool
Seungha Yang [Tue, 23 Mar 2021 04:48:09 +0000 (13:48 +0900)]
d3d11decoder: Resurrect zero-copy for fixed-size DPB pool

Enable zero-copy if downstream proposed pool and therefore decoder
can know the amount of buffer required by downstream.
Otherwise decoder will copy when our DPB pool has no sufficient
buffers for later decoding operation.

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

3 years agod3d11decoder: Implement array-of-texture DPB again
Seungha Yang [Sat, 20 Mar 2021 10:52:16 +0000 (19:52 +0900)]
d3d11decoder: Implement array-of-texture DPB again

Re-implementation of array-of-texture based on d3d11 memory pool.

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

3 years agod3d11: Implement memory pool
Seungha Yang [Thu, 18 Mar 2021 13:31:55 +0000 (22:31 +0900)]
d3d11: Implement memory pool

Major changes:
* GstD3D11Allocator: This allocator is now device-independent object
  which can allocate GstD3D11Memory object for any GstD3D11Device.
  User can get this object via gst_allocator_find(GST_D3D11_MEMORY_NAME)
* GstD3D11PoolAllocator: A new allocator implementation for texture pool.
  From now on GstD3D11BufferPool will make use of this memory pool allocator
  to avoid frequent texture reallocation. That usually happens because
  of buffer copy (gst_buffer_make_writable for example)

In addition to that, GstD3D11BufferPool will provide GstBuffer with
GstVideoMeta, because CPU access to a GstD3D11Memory without GstVideoMeta
is almost impossible since GPU drivers needs padding for stride alignment.

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

3 years agod3d11decoder: Temporarily remove zero-copy related code
Seungha Yang [Sat, 20 Mar 2021 13:11:49 +0000 (22:11 +0900)]
d3d11decoder: Temporarily remove zero-copy related code

We will re-implement it based on memory pool

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

3 years agova: postproc: Set one buffer in pools as minimum.
Víctor Manuel Jáquez Leal [Tue, 23 Mar 2021 08:33:49 +0000 (09:33 +0100)]
va: postproc: Set one buffer in pools as minimum.

Because some elements, such as videorate check that minimum are
different of maximum number of buffers in the proposed pool, since
they might hold one or more buffers.

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

3 years agoh2645parser: Catch overflows in AVC/HEVC NAL unit length calculations
Sebastian Dröge [Tue, 23 Mar 2021 17:19:14 +0000 (19:19 +0200)]
h2645parser: Catch overflows in AVC/HEVC NAL unit length calculations

Offset and size are stored as 32 bit guint and might overflow when
adding the nal_length_size, so let's avoid that.

For the size this would happen if the AVC/HEVC NAL unit size happens to
be stored in 4 bytes and is 4294967292 or higher, which is likely
corrupted data anyway.

For the offset this is something for the caller of these functions to
take care of but is unlikely to happen as it would require parsing on a
>4GB buffer.

Allowing these overflows causes all kinds of follow-up bugs in the
h2645parse elements, ranging from infinite loops and memory leaks to
potential memory corruptions.

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

3 years agozxing: allow per feature registration
Stéphane Cerveau [Thu, 25 Feb 2021 08:59:50 +0000 (09:59 +0100)]
zxing: 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-bad/-/merge_requests/2038>

3 years agozbar: allow per feature registration
Stéphane Cerveau [Thu, 25 Feb 2021 08:57:00 +0000 (09:57 +0100)]
zbar: 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-bad/-/merge_requests/2038>