platform/upstream/gstreamer.git
3 years agomsdkh265enc: add the missing comma
Haihao Xiang [Wed, 15 Jul 2020 00:37:39 +0000 (08:37 +0800)]
msdkh265enc: add the missing comma

Otherwise main-444 and main-444-10 are concatenated

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

3 years agodoc: Updated cache file for the new pixel format
Nicolas Dufresne [Tue, 14 Jul 2020 21:06:59 +0000 (17:06 -0400)]
doc: Updated cache file for the new pixel format

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

3 years agortpsrc: Add domain name support
Nicolas Dufresne [Sat, 11 Jul 2020 19:41:51 +0000 (15:41 -0400)]
rtpsrc: Add domain name support

This add domain name resolution (similar to udpsrc does) to the rtpsrc
element.

Fixes 1352

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

3 years agoristsrc: Add support for domain name
Nicolas Dufresne [Sat, 11 Jul 2020 19:40:40 +0000 (15:40 -0400)]
ristsrc: Add support for domain name

This add domain name resolution (similar to udpsrc does) to the ristsrc
element.

Fixes 1352

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

3 years agortpsrc: Always set rtcp socket address
Nicolas Dufresne [Sat, 11 Jul 2020 19:16:53 +0000 (15:16 -0400)]
rtpsrc: Always set rtcp socket address

Regardless if it's multicast or not, set the address property to match
the element address. This is the address of the interface to listen to,
which is expected to be ANY in most cases, but should be honnored even
for RTCP non-multicast case.

This also fixes an assertion if the address is not a parsable IPv4 or
IPv6 string.

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

3 years agortpsink: Fix error handling on bad DNS
Nicolas Dufresne [Sat, 11 Jul 2020 19:21:33 +0000 (15:21 -0400)]
rtpsink: Fix error handling on bad DNS

This will properly print the DNS being attempted to resolved and avoid
trying to unref a NULL pointer.

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

3 years agoristsink: Fix error handling on bad DNS
Nicolas Dufresne [Fri, 10 Jul 2020 22:03:20 +0000 (18:03 -0400)]
ristsink: Fix error handling on bad DNS

This will properly print the DNS being attempted to resolved and avoid
trying to unref a NULL pointer.

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

3 years agomfvideosrc: Enable WinRT capture impl. for desktop target
Seungha Yang [Tue, 14 Jul 2020 10:59:09 +0000 (19:59 +0900)]
mfvideosrc: Enable WinRT capture impl. for desktop target

... if target OS version was specified as Windows 10.
When enabled, desktop application can select target capture
implementation between WinRT and Win32
via GST_USE_MF_WINRT_CAPTURE environment
(e,g., GST_USE_MF_WINRT_CAPTURE=1 for WinRT impl.).
Default is Win32 implementation in case of desktop target.

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

3 years agoh265parser: Fix possible invalid memory access
Seungha Yang [Thu, 25 Jun 2020 08:51:11 +0000 (17:51 +0900)]
h265parser: Fix possible invalid memory access

... and do more strict validation for num_tile_columns_minus1 and
num_tile_rows_minus1.

As per specification Table A.8, allowed maximum number of tile rows
and tile columns are 22 and 20, respectively. So we should adjust the size
of each array.

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

3 years agod3d11decoder: Disable zero-copy for Qualcomm devices
Seungha Yang [Sat, 11 Jul 2020 16:22:55 +0000 (01:22 +0900)]
d3d11decoder: Disable zero-copy for Qualcomm devices

Qualcomm driver looks buggy in zero-copy scenario. Even if we disable
zero-copy, device-to-device memory copy will be used with d3d11videosink
which should be fast enough.

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

3 years agomsdkh265enc: add support for screen content coding extension
Haihao Xiang [Mon, 29 Jun 2020 07:12:47 +0000 (15:12 +0800)]
msdkh265enc: add support for screen content coding extension

Because the valid input formats for screen content coding extension is
a subset of input formats for range extension, user must specify the
profile for screen content coding extension in the caps filter

Example:
gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12 ! msdkh265enc
low-power=1 ! video/x-h265,profile=screen-extended-main ! fakesink

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

3 years agomsdkh265enc: allow user to choose profile
Haihao Xiang [Tue, 23 Jun 2020 05:12:55 +0000 (13:12 +0800)]
msdkh265enc: allow user to choose profile

Example:
gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12 ! msdkh265enc !
video/x-h265,profile=main-444 ! fakesink

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

3 years agomsdkenc: support tune property in msdkh264enc and msdkh265enc
Haihao Xiang [Thu, 9 Jul 2020 06:46:58 +0000 (14:46 +0800)]
msdkenc: support tune property in msdkh264enc and msdkh265enc

Introduce a new property for encoding mode selection, the default value
for this new property allows the SDK to decide what to do. In addition,
low-power is marked as deprecated since this fix

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

3 years agoRevert "msdkh265enc: let MSDK select the encoding mode by default"
Haihao Xiang [Thu, 9 Jul 2020 01:01:23 +0000 (09:01 +0800)]
Revert "msdkh265enc: let MSDK select the encoding mode by default"

This reverts commit 9e977832c1761e3ad002fdfe14a9c3881a60bd45.

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

3 years agoavtp: rename tstamp-mode to timestamp-mode
Tim-Philipp Müller [Wed, 1 Jul 2020 17:42:18 +0000 (18:42 +0100)]
avtp: rename tstamp-mode to timestamp-mode

I thnk w cn spre the xtra lttrs.

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

3 years agobasetsmux: make use of gst_aggregator_finish_buffer_list
Mathieu Duponchelle [Fri, 10 Jul 2020 15:13:47 +0000 (17:13 +0200)]
basetsmux: make use of gst_aggregator_finish_buffer_list

Fixes #1276

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

3 years agodocs: fix element names in section headers
Tim-Philipp Müller [Fri, 10 Jul 2020 14:26:27 +0000 (15:26 +0100)]
docs: fix element names in section headers

Hopefully that'll make hotdoc pick up the docs for these elements.

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

3 years agoopencv: suppress warnings about non-existent include dirs
Tim-Philipp Müller [Fri, 10 Jul 2020 13:56:50 +0000 (14:56 +0100)]
opencv: suppress warnings about non-existent include dirs

Looks like opencv4 ships with a broken .pc file.

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

3 years agodocs: fix up for errorignore convert-error signal removal
Tim-Philipp Müller [Wed, 8 Jul 2020 18:56:13 +0000 (19:56 +0100)]
docs: fix up for errorignore convert-error signal removal

The commit that added that was reverted. Need to remove this
from docs cache manually.

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

3 years agod3d11: Disable D3D11Debug and DXGIDebug layer for UWP build
Seungha Yang [Wed, 8 Jul 2020 15:13:03 +0000 (00:13 +0900)]
d3d11: Disable D3D11Debug and DXGIDebug layer for UWP build

WACK (Windows App Certification Kit) doesn't seem to be happy with
the DXGIGetDebugInterface1 symbol.

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

3 years agomeson: set release date from .doap file for releases
Tim-Philipp Müller [Wed, 8 Jul 2020 16:16:46 +0000 (17:16 +0100)]
meson: set release date from .doap file for releases

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

3 years agocccombiner: Update segment according to video sink pad
Vivia Nikolaidou [Wed, 8 Jul 2020 15:24:06 +0000 (18:24 +0300)]
cccombiner: Update segment according to video sink pad

Otherwise the following pipeline would preroll after 1000 hours:
gst-launch-1.0 videotestsrc ! x264enc ! cccombiner ! fakesink silent=0 sync=1 -v

Fixes #1355

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

3 years agompegtsmux: Don't assume English for ISO-639 language descriptor
Andreas Frisch [Tue, 30 Jun 2020 11:40:28 +0000 (13:40 +0200)]
mpegtsmux: Don't assume English for ISO-639 language descriptor

Previously, "en" (should have actually been "eng") was assumed
for the ISO-639 language descriptor if no language was explicitely given.
Neither ETSI EN 300 468 nor ATSC A/52 mandate for a language descriptor,
so we should simply not set it, if it's unknown.

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

3 years agompegtsmux: Fix handling of MPEG-2 AAC
Jan Schmidt [Wed, 17 Jun 2020 18:03:59 +0000 (04:03 +1000)]
mpegtsmux: Fix handling of MPEG-2 AAC

The audio/mpeg,mpegversion=2 caps in GStreamer refer to
MPEG-2 AAC (ISO 13818-7), not to the extended MP3 (ISO 13818-3),
which is audio/mpeg,mpegversion=1,mpegaudioversion=2/3

Fix the caps, and add handling for MPEG-2 AAC in both ADTS and raw
form, adding ADTS headers for the latter.

3 years agomeson: Fix up update-orc-dist target for the case where there are no orc targets
Tim-Philipp Müller [Wed, 8 Jul 2020 10:39:58 +0000 (11:39 +0100)]
meson: Fix up update-orc-dist target for the case where there are no orc targets

All those plugins might have been disabled, in which case meson
would complain about alias_target() needing at least two arguments.

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

3 years agopkgconfig: fix meson warning about waylandlib not being in the config data
Tim-Philipp Müller [Wed, 8 Jul 2020 09:54:49 +0000 (10:54 +0100)]
pkgconfig: fix meson warning about waylandlib not being in the config data

meson.build:58: WARNING: The variable(s) 'waylandlibdir' in the input file 'subprojects/gst-plugins-bad/pkgconfig/gstreamer-plugins-bad-uninstalled.pc.in' are not present in the given configuration data.

We don't provide a .pc file for this lib nor install its headers,
so no need for this path to be in the uninstalled .pc file really.

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

3 years agortmp, transcodebin: fix i18n header includes
Tim-Philipp Müller [Tue, 7 Jul 2020 18:55:00 +0000 (19:55 +0100)]
rtmp, transcodebin: fix i18n header includes

Fixes #1351

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

3 years agorist: Use g_signal_connect_object()
Nicolas Dufresne [Tue, 7 Jul 2020 14:03:42 +0000 (10:03 -0400)]
rist: Use g_signal_connect_object()

rtpbin can still emit signals when it is being disposed, and while
rtpbin is inside ristsrc/ristsink it can still live longer.

So we either have disconnect all signals at some point, or let GObject
take care of that automatically.

Related to !1412

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

3 years agoscenechange: use orc to compute score
Josep Torra [Tue, 4 Feb 2020 17:23:03 +0000 (09:23 -0800)]
scenechange: use orc to compute score

Add an orc implementation for SAD operation.

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

3 years agortpsrc/sink: Use g_signal_connect_object()
Sebastian Dröge [Tue, 7 Jul 2020 11:43:50 +0000 (14:43 +0300)]
rtpsrc/sink: Use g_signal_connect_object()

rtpbin can still emit signals when it is being disposed, and while
rtpbin is inside rtpsrc/rtpsink it can still live longer.

So we either have disconnect all signals at some point, or let GObject
take care of that automatically.

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

3 years agotests: mpegtsmux: Test we don't crash releasing unused pad
Jan Alexander Steffens (heftig) [Tue, 7 Jul 2020 12:02:06 +0000 (14:02 +0200)]
tests: mpegtsmux: Test we don't crash releasing unused pad

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

3 years agotests: mpegtsmux: Avoid use-after-unref
Jan Alexander Steffens (heftig) [Tue, 7 Jul 2020 12:01:31 +0000 (14:01 +0200)]
tests: mpegtsmux: Avoid use-after-unref

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

3 years agompegtsmux: Avoid crash releasing pad with NULL prog
Jan Alexander Steffens (heftig) [Tue, 7 Jul 2020 11:33:53 +0000 (13:33 +0200)]
mpegtsmux: Avoid crash releasing pad with NULL prog

If we release a pad while the muxer is running which has never been used
for aggregation (thus it does not have an assigned program), `prog` is
NULL.

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

3 years agomsdkh265enc: let MSDK select the encoding mode by default
Haihao Xiang [Wed, 1 Jul 2020 02:18:24 +0000 (10:18 +0800)]
msdkh265enc: let MSDK select the encoding mode by default

MSDK may support lowpower and non-lowpower modes, some features are
available only under one of the two modes, which is hard to know for
user, so let MSDK select the mode by default.

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

3 years agobuild: remove obsolete 'bad-transcoder' pc file
Matthew Waters [Mon, 6 Jul 2020 05:05:07 +0000 (15:05 +1000)]
build: remove obsolete 'bad-transcoder' pc file

Replaced by 'transcoder' pc files.

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

3 years agomeson: add update-orc-dist target
Tim-Philipp Müller [Sat, 4 Jul 2020 11:10:23 +0000 (12:10 +0100)]
meson: add update-orc-dist target

Add target to update backup orc -dist.[ch] files.

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

3 years agovideoparseutils: Only add a single closed caption meta
Vivia Nikolaidou [Wed, 1 Jul 2020 17:27:14 +0000 (20:27 +0300)]
videoparseutils: Only add a single closed caption meta

Otherwise, having a stream go through a parser multiple times would
result in duplicate closed caption meta.

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

3 years agodecklinkvideosink: write the cdp timecode data correctly
Matthew Waters [Fri, 3 Jul 2020 03:02:33 +0000 (13:02 +1000)]
decklinkvideosink: write the cdp timecode data correctly

We were mixing up the tens part with the unit parts all over the place.

e.g. 12 seconds would be encoded as 0x21 instead of the correct 0x12

Aligns the code with the same change applied to ccconverter.

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

3 years agoccconverter: write the cdp timecode data correctly
Matthew Waters [Thu, 2 Jul 2020 14:47:09 +0000 (00:47 +1000)]
ccconverter: write the cdp timecode data correctly

We were mixing up the tens part with the unit parts all over the place.

e.g. 12 seconds would be encoded as 0x21 instead of the correct 0x12

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

3 years agoccconverter: output warning log if parsing a cdp packet fails
Matthew Waters [Thu, 2 Jul 2020 02:47:27 +0000 (12:47 +1000)]
ccconverter: output warning log if parsing a cdp packet fails

Simplifies figuring out why there may be no output from ccconverter with
a cdp input.

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

3 years agoccconverter: fix cdp timecode parsing
Matthew Waters [Thu, 2 Jul 2020 02:45:44 +0000 (12:45 +1000)]
ccconverter: fix cdp timecode parsing

The first reserved bits are in the most significant bit.

i.e. 0xc0 vs 0x0c

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

3 years agoavtp: Use g_strerror instead of strerror
Ederson de Souza [Thu, 2 Jul 2020 23:17:01 +0000 (16:17 -0700)]
avtp: Use g_strerror instead of strerror

It should avoid some implicit declaration errors (and be utf-8 friendly).

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

3 years agoBack to development
Tim-Philipp Müller [Fri, 3 Jul 2020 01:03:56 +0000 (02:03 +0100)]
Back to development

3 years agoRelease 1.17.2
Tim-Philipp Müller [Thu, 2 Jul 2020 23:31:17 +0000 (00:31 +0100)]
Release 1.17.2

3 years agowpe: Update plugin's doc cache
Philippe Normand [Thu, 2 Jul 2020 11:37:47 +0000 (12:37 +0100)]
wpe: Update plugin's doc cache

This was forgotten in !1392.

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

3 years agov4l2decoder: Track pending request
Nicolas Dufresne [Wed, 1 Jul 2020 16:28:05 +0000 (12:28 -0400)]
v4l2decoder: Track pending request

With the asynchronous slice decoding, we only queue up to 2 slices
per frames. That side effect is that now we are dequeuing bitstream
buffers in both decoding and presentation order. This would lead to
a bitstream buffer from a previous frame being dequeued instead of
the expected last slice buffer and lead to us trying to queue an
already queued bitstream buffer.

We now fix this by tracking pending requests. As request are executed
in decoding order, we marking a request done, we can effectively
dequeue bitstream buffer from all previous request, as they have been
executed already.

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

3 years agov4l2decoder: Improve debug tracing
Nicolas Dufresne [Wed, 1 Jul 2020 16:26:36 +0000 (12:26 -0400)]
v4l2decoder: Improve debug tracing

Add some missing traces and move per-slice operation to TRACE level to
reduce the noise level.

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

3 years agov4l2decoder: Convert request pool to GstQueueArray
Nicolas Dufresne [Wed, 1 Jul 2020 16:23:49 +0000 (12:23 -0400)]
v4l2decoder: Convert request pool to GstQueueArray

The decoder is not being access from multiple threads, instead it is
always protected by the streaming lock. For this reason, a
GstAtomicQueue for the request pool is overkill and may even introduce
unneeded overhead. Use a GstQueueArray in replacement, the
GstQueueArray is a good fit since the number of item is predictable and
unlikely to vary at run-time.

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

3 years agov4l2slh264dec: Wait on previous pending request in slice mode
Nicolas Dufresne [Mon, 29 Jun 2020 17:27:32 +0000 (13:27 -0400)]
v4l2slh264dec: Wait on previous pending request in slice mode

In slice mode, we'll do one request per slice. In order to recycle
bitstream buffer, and not run-out, wait for the last pending
request to complete and mark it done.

We only wait after having queued the current slice in order to reduce
that potential driver starvation and maintain performance (using dual
buffering).

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

3 years agov4l2slh264dec: Renew bitstream buffer after submitting slice
Nicolas Dufresne [Mon, 29 Jun 2020 17:25:39 +0000 (13:25 -0400)]
v4l2slh264dec: Renew bitstream buffer after submitting slice

Submitting a slice actually clears the bitstream buffer. Ensure we
have a newly allocated bitstream buffer for the next slice.

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

3 years agov4l2slh264dec: Factor out bitstream allocation
Nicolas Dufresne [Mon, 29 Jun 2020 17:23:12 +0000 (13:23 -0400)]
v4l2slh264dec: Factor out bitstream allocation

No functional changes.

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

3 years agov4l2slh264dec: Add a helper to ensure output buffer
Nicolas Dufresne [Mon, 29 Jun 2020 17:04:56 +0000 (13:04 -0400)]
v4l2slh264dec: Add a helper to ensure output buffer

In preparation of multi-slice decoding, we will decode multiple
slices into the same buffer. This will ensure we have a buffer to
decode to, queued into the driver.

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

3 years agov4l2slh264dec: Factor out request wait
Nicolas Dufresne [Mon, 29 Jun 2020 16:39:08 +0000 (12:39 -0400)]
v4l2slh264dec: Factor out request wait

This will be reused to wait for previous slices to be complete
when dealing with following slices (in slice decoding mode).

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

3 years agov4l2slh264dec: Remove double return in submit_bitstream()
Nicolas Dufresne [Mon, 29 Jun 2020 16:14:36 +0000 (12:14 -0400)]
v4l2slh264dec: Remove double return in submit_bitstream()

This is code cleanup, no functional changes.

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

3 years agov4l2slh264dec: Fix typo in debug trace
Nicolas Dufresne [Mon, 29 Jun 2020 16:06:34 +0000 (12:06 -0400)]
v4l2slh264dec: Fix typo in debug trace

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

3 years agodocs: remove gst prefix from plugin titles
Mathieu Duponchelle [Thu, 2 Jul 2020 16:10:21 +0000 (18:10 +0200)]
docs: remove gst prefix from plugin titles

3 years agodocs: Update plugin cache for Windows plugins
Seungha Yang [Sun, 28 Jun 2020 15:54:50 +0000 (00:54 +0900)]
docs: Update plugin cache for Windows plugins

3 years agoplugins: Update for documentation of Windows plugins
Seungha Yang [Mon, 8 Jun 2020 15:20:08 +0000 (00:20 +0900)]
plugins: Update for documentation of Windows plugins

* Add Since marks
* Make use of GST_PARAM_CONDITIONALLY_AVAILABLE flag

3 years agonvcodec: Update for documentation
Seungha Yang [Mon, 8 Jun 2020 16:30:39 +0000 (01:30 +0900)]
nvcodec: Update for documentation

* Add Since marks
* Make use of GST_PARAM_CONDITIONALLY_AVAILABLE flag
* Add documentation template caps

3 years agowpe: Set documentation caps
Philippe Normand [Wed, 1 Jul 2020 08:00:41 +0000 (09:00 +0100)]
wpe: Set documentation caps

As the caps template can vary depending on the WPEBackend-FDO version
found at build time, set a fixed template for the generate documentation.

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

3 years agovideoparsers: Fix parsing ATSC bar data
Jan Alexander Steffens (heftig) [Wed, 1 Jul 2020 15:54:01 +0000 (17:54 +0200)]
videoparsers: Fix parsing ATSC bar data

It rejected the case of all bars being disabled.

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

3 years agovideoparsers: Fix parsing of ATSC AFD data
Jan Alexander Steffens (heftig) [Wed, 1 Jul 2020 15:52:39 +0000 (17:52 +0200)]
videoparsers: Fix parsing of ATSC AFD data

The test for 0x40 being set is repeated by
gst_video_parse_utils_parse_afd, which also extracts the low nibble
again, so we must not clear it here.

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

3 years agovideoparsers: Give gstvideoparseutils.c a debug category
Jan Alexander Steffens (heftig) [Wed, 1 Jul 2020 15:51:36 +0000 (17:51 +0200)]
videoparsers: Give gstvideoparseutils.c a debug category

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

3 years agoccconverter: fail negotiation when framerate conversion is not possible
Matthew Waters [Wed, 1 Jul 2020 10:28:01 +0000 (20:28 +1000)]
ccconverter: fail negotiation when framerate conversion is not possible

Converting between anything but cdp will fail at converting
framerates and negotiation should reflect that.

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

3 years agoccconverter: fix missing output framerate on the caps
Matthew Waters [Wed, 1 Jul 2020 09:41:33 +0000 (19:41 +1000)]
ccconverter: fix missing output framerate on the caps

A pipeline like this:

closedcaption/x-cea-708,format=cdp,framerate=30000/1001 ! ccconverter ! closedcaption/x-cea-708,format=cc_data

would produce a critical/assert:

GStreamer-CRITICAL **: 14:21:11.509: gst_util_fraction_multiply: assertion 'a_d != 0' failed

because there would be no framerate field on ccconverter's output.

Fixed by always fixating a framerate if the input has a framerate.

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

3 years agortmp2: Set connect args like libavformat does
Jan Alexander Steffens (heftig) [Mon, 29 Jun 2020 18:25:27 +0000 (20:25 +0200)]
rtmp2: Set connect args like libavformat does

To improve our compatibility. Critically, a server might elide data for
codecs we don't advertise.

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

3 years agortmp2: Add support for AGGREGATE messages
Jan Alexander Steffens (heftig) [Mon, 29 Jun 2020 17:47:16 +0000 (19:47 +0200)]
rtmp2: Add support for AGGREGATE messages

They're multiple frames (tags) of FLV data wrapped into a message.

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

3 years agortmp2: Move FLV tag header parsing into rtmputils.c
Jan Alexander Steffens (heftig) [Mon, 29 Jun 2020 17:46:53 +0000 (19:46 +0200)]
rtmp2: Move FLV tag header parsing into rtmputils.c

To be shared with the AGGREGATE handling.

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

3 years agortmp2: Mark our memory singleton as leakable
Jan Alexander Steffens (heftig) [Mon, 29 Jun 2020 18:57:06 +0000 (20:57 +0200)]
rtmp2: Mark our memory singleton as leakable

So it doesn't appear in the leaks tracer.

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

3 years agortmp2: Remove GST_ERROR from rtmputils.c
Jan Alexander Steffens (heftig) [Mon, 29 Jun 2020 17:46:06 +0000 (19:46 +0200)]
rtmp2: Remove GST_ERROR from rtmputils.c

This file does not have debug logging set up.

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

3 years agoavtp: documentation fixes
Tim-Philipp Müller [Wed, 1 Jul 2020 11:35:32 +0000 (12:35 +0100)]
avtp: documentation fixes

Unclear why hotdoc wants 'gstavtp' as the plugin name here,
that's just wrong.

Add since marker and mark private subclasses as plugin API
so hotdoc knows they belong to the plugin and aren't external.

Fix GstAvtpAafTstampMode get_type() function.

3 years agodocs: update plugin cache with avtp plugin
Tim-Philipp Müller [Wed, 1 Jul 2020 10:17:08 +0000 (11:17 +0100)]
docs: update plugin cache with avtp plugin

CI picks this up now because the wrap was re-added in gst-build.

3 years agocodecs: h264decoder: Fix for DPB size calculation
Seungha Yang [Mon, 29 Jun 2020 21:23:07 +0000 (06:23 +0900)]
codecs: h264decoder: Fix for DPB size calculation

Some bitstreams might require more DPB size than that of what we've
calculated.

This change should've been part of initial commit of h264 stateless
codec implementation but it was missed.

See also https://chromium-review.googlesource.com/c/chromium/src/+/760276/

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

3 years agompegtsmux: Correctly set ISO-639 language descriptor
Andreas Frisch [Thu, 25 Jun 2020 14:38:30 +0000 (16:38 +0200)]
mpegtsmux: Correctly set ISO-639 language descriptor

fixes #1340
Only 2 of the necessary 3 letters were copied because the teminating '\0'
needs to be counted, too - cf.
https://developer.gnome.org/glib/stable/glib-String-Utility-Functions.html#g-strlcat

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

3 years agowebrtcbin: Expose "latency" property
Olivier Crête [Tue, 23 Jun 2020 19:35:06 +0000 (15:35 -0400)]
webrtcbin: Expose "latency" property

This property sets the latency both on the rtpbin/rtpjittbuffer, but
also on the RTPStorage elements currently used by the FEC decoder.

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

3 years agodxgiscreencapsrc: Add missing debug category init
Seungha Yang [Mon, 29 Jun 2020 17:48:50 +0000 (02:48 +0900)]
dxgiscreencapsrc: Add missing debug category init

This should've been addressed in the commit 90420620722d4490ecfb4ade046b95d214f993d9
but I was missed it.

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

3 years agocodecs: h264picture: use g_array_remove_index_fast()
Víctor Manuel Jáquez Leal [Sun, 14 Jun 2020 18:47:46 +0000 (20:47 +0200)]
codecs: h264picture: use g_array_remove_index_fast()

This algorithm is faster than the normal one. The problem is it
disorders the elements in the dpb, but it does not seem to mess
decoders.

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

3 years agowlvideoformat: fix typo in the format list
Michael Olbrich [Sun, 28 Jun 2020 16:54:54 +0000 (18:54 +0200)]
wlvideoformat: fix typo in the format list

DRM_FORMAT_ARGB8888 was actually used twice in the list for different SHM /
Gstreamer formats. In this case DRM_FORMAT_ABGR8888 is the correct format.

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

3 years agova: VA-API H.264 decoder and infrastructure
Víctor Manuel Jáquez Leal [Sun, 22 Mar 2020 18:00:50 +0000 (19:00 +0100)]
va: VA-API H.264 decoder and infrastructure

New plugin with an element for H.264 decoding with VA-API. This novel
approach, different from gstreamer-vaapi, uses gstcodecs library for
state handling.

The code is expected to looks cleaner because it uses VA-API without
further layers or wrappers.

* It uses the first supported DRM device as default VA display (other
  displays will be supported through user's GstContext)
* Requires libva >= 1.6
* No multiview/stereo profiles neither interlaced streams because
  gstcodecs doesn't handle them yet
* It is incompatible with gstreamer-vaapi
* Even if memory:VAMemory is exposed, it is not handled yet by any
  other element
* Caps templates are generated dynamically querying VAAPI, but YV12
  and I420 are added for system memory caps because they seem to be
  supported for all the drivers when downloading frames onto main
  memory, as they are used by xvimagesink and others, avoiding color
  conversion.
* Surfaces aren't bounded to context, so they can grow beyond the DBP
  size, allowing smooth reverse playback.
* There isn't yet error handling and recovery.
* 10-bit H.264 streams aren't supported by libva.

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

3 years agocodecs: h264decoder: update max_dpb_frames only if VUI is present
Víctor Manuel Jáquez Leal [Sat, 27 Jun 2020 11:18:34 +0000 (13:18 +0200)]
codecs: h264decoder: update max_dpb_frames only if VUI is present

There are some streams, with HRD, where the the calculated
max_dpb_frames is zero (max_dpb_mbs is less than size mb). In order to
get the dbp size it is required to rely on the VUI parameters if they
are present.

According to the spec Annex E.2.1

**max_dec_frame_buffering** specifies the required size of the HRD
decoded picture buffer (DPB) in units of frame buffers.  It is a
requirement of bitstream conformance that the coded video sequence
shall not require a decoded picture buffer with size of more than
Max(1, max_dec_frame_buffering) frame buffers to enable the output of
decoded pictures at the output times specified by dpb_output_delay of
the picture timing SEI messages. The value of max_dec_frame_buffering
shall be greater than or equal to max_num_ref_frames. An upper bound
for the value of max_dec_frame_buffering is specified by the level
limits in clauses A.3.1, A.3.2, G.10.2.1, and H.10.2.

When the max_dec_frame_buffering syntax element is not present, the
value of max_dec_frame_buffering shall be inferred as follows:

– If profile_idc is equal to 44, 86, 100, 110, 122, or 244 and
constraint_set3_flag is equal to 1, the value of
max_dec_frame_buffering shall be inferred to be equal to 0.

– Otherwise (profile_idc is not equal to 44, 86, 100, 110, 122, or 244
or constraint_set3_flag is equal to 0), the value of
max_dec_frame_buffering shall be inferred to be equal to MaxDpbFrames.

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

4 years agogstdtlsconnection: Propagate errors from key export to the caller
Sebastian Dröge [Fri, 26 Jun 2020 07:20:04 +0000 (10:20 +0300)]
gstdtlsconnection: Propagate errors from key export to the caller

Otherwise the DTLS connection silently does nothing instead of reporting
an error via the elements.

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

4 years agodtlsconnection: do not set keys_exported flag if actually not exported
Miguel Paris [Wed, 1 Apr 2020 16:08:45 +0000 (18:08 +0200)]
dtlsconnection: do not set keys_exported flag if actually not exported

keys_exported flag should be set only if keys are actually exported.
For that the next conditions are needed:
  1 - SSL_export_keying_material on success
  2 - SSL_get_selected_srtp_profile returns a valid profile
  3 - The profile ID is SRTP_AES128_CM_SHA1_80 or SRTP_AES128_CM_SHA1_32

Also don't crash if NULL is returned as profile.

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

4 years agod3d11h265dec: Fix possible invalid memory access
Seungha Yang [Thu, 25 Jun 2020 10:41:52 +0000 (19:41 +0900)]
d3d11h265dec: Fix possible invalid memory access

The number of element to copy should be num_tile_columns_minus1
and num_tile_rows_minus1.

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

4 years agonvh265sldec: Fix possible invalid memory access
Seungha Yang [Thu, 25 Jun 2020 10:26:45 +0000 (19:26 +0900)]
nvh265sldec: Fix possible invalid memory access

Fix Coverity issues.

CID 1464959, 1464960, 1464961, 1464962

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

4 years agointerlace: Make caps writable before modifying them
Vivia Nikolaidou [Thu, 25 Jun 2020 13:05:39 +0000 (16:05 +0300)]
interlace: Make caps writable before modifying them

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

4 years agoccextractor: Push a GAP event if we have a caption pad but a video buffer did not...
Sebastian Dröge [Wed, 24 Jun 2020 13:34:20 +0000 (16:34 +0300)]
ccextractor: Push a GAP event if we have a caption pad but a video buffer did not contain any captions

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

4 years agoccextractor: Add property to remove caption meta from the outgoing video buffers
Sebastian Dröge [Wed, 24 Jun 2020 10:33:39 +0000 (13:33 +0300)]
ccextractor: Add property to remove caption meta from the outgoing video buffers

This is disabled by default to keep backwards compatibility.

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

4 years agod3d11videosink: Disable d3d11videosink depending on supported feature level
Seungha Yang [Mon, 15 Jun 2020 19:41:14 +0000 (04:41 +0900)]
d3d11videosink: Disable d3d11videosink depending on supported feature level

Current shader code is not compatible with HLSL profile "ps_4_0_level_9_3"
or lower. So d3dcompiler cannot compile our shader code in that case.
Note that VirtualBox is one known driver which doesn't support currently
implemented shader code.

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

4 years agomxfvanc: document new sink pad template
Mathieu Duponchelle [Wed, 24 Jun 2020 19:18:15 +0000 (19:18 +0000)]
mxfvanc: document new sink pad template

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

4 years agomxfdemux/mux: Add support for CEA-708 CDP from S436 essence tracks
Sebastian Dröge [Tue, 23 Jun 2020 20:40:38 +0000 (23:40 +0300)]
mxfdemux/mux: Add support for CEA-708 CDP from S436 essence tracks

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

4 years agoavfvideosrc: wait for permissions request dialog callback
Kevin King [Tue, 23 Jun 2020 22:31:51 +0000 (15:31 -0700)]
avfvideosrc: wait for permissions request dialog callback

otherwise gstreamer gives up on transitioning the pipeline before the
user has accepted

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

4 years agointerlace: Switch field-pattern on the fly
Vivia Nikolaidou [Fri, 19 Jun 2020 11:30:04 +0000 (14:30 +0300)]
interlace: Switch field-pattern on the fly

The frame rate interlace uses changes when we change field-pattern, so
we need to issue a reconfigure event.

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

4 years agonvh264sldec: Remove useless double space
Seungha Yang [Mon, 22 Jun 2020 11:15:13 +0000 (20:15 +0900)]
nvh264sldec: Remove useless double space

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

4 years agonvcodec: Add H265 stateless codec implementation
Seungha Yang [Fri, 19 Jun 2020 20:57:59 +0000 (05:57 +0900)]
nvcodec: Add H265 stateless codec implementation

Add a new GstCodecs based H265 decoder element

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

4 years agonvcodec: Move common methods to nvdecoder
Seungha Yang [Thu, 18 Jun 2020 19:50:26 +0000 (04:50 +0900)]
nvcodec: Move common methods to nvdecoder

... and remove all #ifdef from nvh264sldec implementation.
New helper methods will take care of OpenGL specific ones.

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

4 years agonvh264sldec: Declare OpenGL related objects unconditionally
Seungha Yang [Thu, 18 Jun 2020 19:36:15 +0000 (04:36 +0900)]
nvh264sldec: Declare OpenGL related objects unconditionally

GstGLDisplay and GstGLContext are subclass of GstObject so we can
remove #ifdef for such object. This is prework for nvh265sldec.

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

4 years agonvh264sldec: Fix for possible wrong device selction
Seungha Yang [Thu, 18 Jun 2020 19:10:48 +0000 (04:10 +0900)]
nvh264sldec: Fix for possible wrong device selction

decoder should select assigned CUDA device id

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

4 years agomeson: Add missing pc file for gstphotography
Nirbheek Chauhan [Tue, 23 Jun 2020 14:01:42 +0000 (19:31 +0530)]
meson: Add missing pc file for gstphotography

This is supposed to be used by apps like Cheese, and is a public
library.

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

4 years agomeson: Add missing pkgconfig files for gsttranscoder
Nirbheek Chauhan [Tue, 23 Jun 2020 13:33:12 +0000 (19:03 +0530)]
meson: Add missing pkgconfig files for gsttranscoder

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

4 years agointerlace: Re-indentation
Vivia Nikolaidou [Fri, 19 Jun 2020 07:50:12 +0000 (10:50 +0300)]
interlace: Re-indentation

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