Commit graph

6906 commits

Author SHA1 Message Date
Matthew Waters e2d88f0569 webrtc: propagate more errors through the promise
Return errors on promises when things fail where available.

Things like parsing errors, invalid states, missing fields, unsupported
transitions, etc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1565>
2020-09-14 04:04:29 +00:00
Adam Williamson 52ef192526 opencv: set opencv_dep when option is disabled (#1406)
The examples build file checks opencv_dep, so it still needs to
be set even if the option is disabled.

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

Signed-off-by: Adam Williamson <awilliam@redhat.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1570>
2020-09-11 07:16:21 +00:00
Mathieu Duponchelle c096d30f6b openh264dec: port to new request_sync_point() API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1571>
2020-09-10 23:44:50 +02:00
Mathieu Duponchelle c58357fb66 line21enc: add remove-caption-meta property
Similar to #GstCCExtractor:remove-caption-meta

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1554>
2020-09-09 22:11:28 +02:00
Mathieu Duponchelle c07e2a89ba line21enc: heavily constrain video height
We can only determine a correct placement for the CC line
with:

* height == 525 (standard NTSC, line 21 / 22)
* height == 486 (NTSC usable lines + 6 lines for VBI, line 1 / 2)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1554>
2020-09-09 19:38:58 +02:00
Mathieu Duponchelle 1d416750d1 line21enc: add support for CDP closed caption meta
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1554>
2020-09-09 19:12:11 +02:00
Jan Alexander Steffens (heftig) 3f9a7e5c73 hlssink2: Actually release splitmuxsink's pads
It was looking at the "outer" peer of the ghost pad, not the "inner"
peer (the target).

It provided the wrong pad to gst_element_release_request_pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1551>
2020-09-09 01:06:21 +00:00
Sebastian Dröge 64039cdf84 gst: Update for gst_video_transfer_function_*() function renaming
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1557>
2020-09-07 12:14:47 +03:00
Nirbheek Chauhan 16d84a2816 webrtc: Clean up the userinfo unescaping code
Continuation from 04fd705906. This is
easier to understand and also avoids two copies.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1547>
2020-08-30 09:53:42 +00:00
Jonathan Matthew 2b024ec1b4 modplug: avoid division by zero
Under some conditions, GetMaxPosition() returns zero, which should cause
position queries to fail rather than crash.
2020-08-28 08:10:04 +10:00
trilene 04fd705906 webrtc: Unescape turnserver user and password
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1530>
2020-08-26 23:37:17 +01:00
Tim-Philipp Müller b48702e4bc sctp: usrsctp: increase DIAG_MSG_LEN to accomodate longer file path
Fixes "‘%s’ directive output truncated writing XX bytes into
a region of size NN [-Wformat-truncation=]" compiler warnings.

https://github.com/sctplab/usrsctp/pull/521

Fixes #1389

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1540>
2020-08-26 00:00:24 +01:00
Philippe Normand 2caa3e0230 wpe: skip glbasesrc decide_allocation when non-GL caps are negotiated
Checking for GL caps features in gl_start() was done too late in case the parent
class fails to setup a working GL context. The element now determines if GL
support should be enabled during the decide-allocation query handling.

Additionally, when no GL context was found, we need to handle the element
cleanup because in that situation glbasesrc won't call gl_stop.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1532>
2020-08-24 20:59:50 +00:00
Matthew Waters e15a8fcbdd webrtc/datachannel: clear the error after use
Fixes a memory leak

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1535>
2020-08-24 17:02:35 +10:00
Matthew Waters 7489addc0a webrtc/datachannel: free previous protocol/label fields
Fixes a memory leak

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1535>
2020-08-24 17:02:35 +10:00
Matthew Waters e5a2e3ac4c sctpdec: unref after retrieving the static pad template
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1535>
2020-08-24 17:02:35 +10:00
Matthew Waters 9011539940 webrtc/ice: resolve .local candidates internally
Requires the system's DNS resolver to support mdns resolution.

Fixes interoperablity with recent versions of chrome/firefox that
produce .local address in for local candidates.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1139
2020-08-20 13:01:17 +10:00
J. Kim 8e9f8c7f2c srtobject: set error when canceled waiting for a caller
To propagate error, this commit sets a reason. Otherwise, the function
caller should check if `error` is NULL when the return value is not normal.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1522>
2020-08-19 12:01:37 +00:00
J. Kim ebdb3447ce srtobject: fix typo, s/errorj/error
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1522>
2020-08-19 11:31:41 +00:00
Vivia Nikolaidou dc58065dfb fdkaacenc: Implement flush function
The internal fdk encoder always produces 1024 bytes even with no input,
so special care should be taken to not drain it twice.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1515>
2020-08-17 23:39:39 +03:00
Jan Alexander Steffens (heftig) 76c171509e fdkaacenc: Refactor layout selection code
No functional change.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1359>
2020-08-17 10:19:56 +02:00
Jan Alexander Steffens (heftig) 5e68124981 fdkaacenc: Move channel layouts to gstfdkaac.c
In preparation of sharing them with the decoder. Iteration of the
channel layouts needs to be changed to use a sentinel element.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1359>
2020-08-17 08:07:00 +00:00
Matthew Waters 2d31aba78d vulkan: docs annotation updates
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1506>
2020-08-15 02:55:30 +00:00
Philippe Normand 314a8c023f wpe: WebView and WebContext handling fixes
The WPEThreaded view is now split in 2 classes:
- WPEContextThread handles the persistent WebKit thread, where all WebKit API
calls should be handled.
- WPEView: is created from the WPEContextThread. It handles the WebView and
maintains the public interface on which wpesrc relies. This is the facade for
the WebView, basically. It takes care of dispatching API calls into the context
thread.

With these fixes it is now possible to create (and reuse) mutlple wpesrc
elements during the application lifetime.

Fixes #1372

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1484>
2020-08-14 09:41:56 +00:00
Sebastian Dröge 7ef393d5ff sctp: fix build with GST_DISABLE_GST_DEBUG
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1465>
2020-08-14 01:48:33 +01:00
Tim-Philipp Müller 80a0da9698 sctp: hook up internal copy of libusrsctp to build
Add option 'sctp-internal-usrsctp' so people can choose
to build againts the distro version instead.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1465>
2020-08-14 01:33:28 +01:00
Tim-Philipp Müller f4538e24b6 sctp: import internal copy of usrsctp library
There are problems with global shared state and no API stability
guarantees, and we can't rely on distros shipping the fixes we
need. Both firefox and Chrome bundle their own copies too.

Imported from https://github.com/sctplab/usrsctp,
commit 547d3b46c64876c0336b9eef297fda58dbe1adaf
Date: Thu Jul 23 21:49:32 2020 +0200

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1465>
2020-08-14 01:32:45 +01:00
Seungha Yang 91f9490529 cccombiner: Correct sink_query chain up and fix caps leaks
Don't chain up to src_query() from sink_query() method, and
returned caps by gst_static_pad_template_get_caps() needs to be
cleared.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1513>
2020-08-13 20:42:51 +09:00
Hosang Lee d9dda36e02 smoothstreaming: start closer to the edge in live streams
It is more appropriate to start closer to the live edge in
live streams. Some live streams maintain a large dvr window
(over few hours in some cases), so starting from the first
fragment will be too far away from the live edge.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1346>
2020-08-10 16:13:30 +09:00
Sebastian Dröge 1d1b3eb8b4 cccombiner: Update for additional info parameter to the "samples-selected" signal
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/590

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1498>
2020-08-07 17:53:14 +00:00
Mathieu Duponchelle 93a54093ec mpeg2enc: add disable-encode-retries property
MJPEG Tools may reencode pictures in a second pass to stick
closer to the target bitrate. This can result in slower than
real-time encoding for full HD content in certain situations,
as entire GOPs need reencoding when the reference picture is
reencoded.

See https://sourceforge.net/p/mjpeg/bugs/141/ for background

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1491>
2020-08-06 17:13:03 +00:00
Mathieu Duponchelle 674ad01016 mpeg2enc: report a latency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1491>
2020-08-06 17:13:03 +00:00
Mathieu Duponchelle 2dfceac9fc mpeg2enc: finalize GstVideoEncoder port
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1491>
2020-08-06 17:13:03 +00:00
Tim-Philipp Müller c9d10e2277 mpeg2enc: store video encoder instance directly in stream writer class
Instead of storing the pad and then only using it to get the
element.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1491>
2020-08-06 17:13:03 +00:00
Tim-Philipp Müller 8a745529c7 mpeg2enc: remove unused streamwriter member 'buf'
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1491>
2020-08-06 17:13:03 +00:00
Tim-Philipp Müller 0c28c406cc mpeg2enc: remove some unused code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1491>
2020-08-06 17:13:03 +00:00
Tim-Philipp Müller 7f6eb54d42 mpeg2enc: remove code paths for older mjpegtools versions
Gets rid of lots of code paths that no one has built,
used or tested for ages, and makes code more maintainable.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1491>
2020-08-06 17:13:03 +00:00
Alban Browaeys 79d90b4fd2 mpeg2enc: initial port to GstVideoEncoder base class
https://bugzilla.gnome.org/show_bug.cgi?id=685414

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1491>
2020-08-06 17:13:03 +00:00
Sebastian Dröge e70ec38000 srt: Add support for using hostnames instead of IP addresses
If an address can't be parsed as IP address, try resolving it via
GResolver instead. SRT URIs more often than not contain hostnames and
without trying to resolve them we won't be able to handle such URIs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1493>
2020-08-06 07:29:14 +00:00
Mathieu Duponchelle 1522e40397 cccombiner: update to new samples selection API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1497>
2020-08-05 18:16:32 +02:00
Jordan Petridis cee211123a opencv: compile with -Wno-format-nonliteral
opencv plugin is pulling a header which makses clang++ 10
complain a lot and blocks -werror.

```
/usr/include/opencv4/opencv2/flann/logger.h:83:36: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
        int ret = vfprintf(stream, fmt, arglist);
                                   ^~~
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1494>
2020-08-05 12:17:06 +00:00
Jordan Petridis 92f9567737 gstlv2utils.c: avoid implicit float to int conversion
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1487>
2020-08-04 11:37:52 +00:00
Jordan Petridis 5705301ed5 gstladspautils.c: avoid implicit float to int conversion
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1487>
2020-08-04 11:37:52 +00:00
Francisco Javier Velázquez-García 97b5951d25 srtobject: Add support for IPv6
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1477>
2020-08-03 21:46:04 +00:00
Francisco Javier Velázquez-García 1ba379ded0 srtobject: Reset parameters before setting URI
This makes `gst_srt_object_validate_parameters` work properly since
`localaddress` and `localport` will be missing if the URL did not
provide them.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1477>
2020-08-03 21:46:04 +00:00
Francisco Javier Velázquez-García 096c60f9c5 srtobject: Simplify gst_srt_object_set_*_value
This fixes `gst_srt_object_set_string_value` in particular because the
value might not be a static string.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1477>
2020-08-03 21:46:04 +00:00
Francisco Javier Velázquez-García 1a8e2cf981 srtobject: Store passphrase like other parameters
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1477>
2020-08-03 21:46:04 +00:00
Nirbheek Chauhan d4ca8820e7 webrtc, rtmp2: Warn if the user or password aren't escaped
If the user/pass aren't escaped, the userinfo will be ambiguous and we
won't know where to split. We will accidentally get it right if the :
belongs in the password.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1481>
2020-08-03 18:12:50 +00:00
Nirbheek Chauhan 827afa206d webrtc, rtmp2: Fix parsing of userinfo in URI strings
While parsing the string, `gst_uri_from_string()` also unescapes the
userinfo. This is bad if your username contains a `:` character, since
we will then split the userinfo at the wrong location when parsing it.

To fix this, we can use the new `gst_uri_from_string_escaped()` API
that was added in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/583

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1481>
2020-08-03 18:12:50 +00:00
Sebastian Dröge 6e412d42c7 hlssink2: Don't assert if we don't have a current location when receiving the fragment-closed message
This can happen if the application did not provide an output stream for
the fragment and didn't handle the error message before splitmuxsink
decided to consider the fragment closed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1469>
2020-08-03 11:23:36 +00:00