Olivier Crête
a46c6e3a97
webrtcstats: Remove receiver side when sending
...
Those are just invalid and just reflect what we sent. We'd need to parse the
RTCP XR packets from the other side to know more about those.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766 >
2020-11-24 04:27:52 +00:00
Olivier Crête
ba0dfa52d2
webrtcstats: Extract statistics from the rtpjitterbuffer
...
And expose them as standardised webrtc statistics
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766 >
2020-11-24 04:27:52 +00:00
Olivier Crête
fc0f6db856
webrtcbin: Store the rtpjitterbuffer instances to extract stats from them
...
Store them as web refs to avoid having to worry about freeing later and because
the new-jitterbuffer is on a different thread
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766 >
2020-11-24 04:27:52 +00:00
Olivier Crête
d9d7814182
webrtcstats: Document all RTP missing fields according to the latest spec
...
Just document all the missing fields and document which ones will never
be implemented because they depend on the codec or depayloader
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766 >
2020-11-24 04:27:52 +00:00
Olivier Crête
895ea210c2
webrtcstats: RTCP computed RTT is only available at sender
...
The receiver doesn't have the information to compute it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766 >
2020-11-24 04:27:52 +00:00
Olivier Crête
a5c3331197
webrtcstats: Remove redundant lines
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1766 >
2020-11-24 04:27:52 +00:00
Olivier Crête
5d5417f271
webrtc: Remove non rtcp-mux code
...
RTCP mux is now always required by the WebRTC spec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1765 >
2020-11-24 01:59:55 +00:00
Tim-Philipp Müller
470c79be61
qroverlay: unset executable flag on source files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1824 >
2020-11-20 13:24:24 +00:00
Tim-Philipp Müller
53947cad29
qroverlay: fix auto detection of json-glib for plugin
...
Only want to check for json-glib when libqrencode was found,
but also it shouldn't be required but depend on the option.
Fixes #1465
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1824 >
2020-11-20 13:22:48 +00:00
Olivier Crête
03d710bd40
openh264dec: Accept constrained-high and progressive-high profiles
...
They're just subsets of the high profile.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1634 >
2020-11-18 15:47:36 -05:00
Jan Schmidt
92472ef088
wpe: Don't crash when running on X11.
...
Don't assume the available EGL display is a wayland display -
instead, check the the GStreamer GL context is EGL, and then
use gst_gl_display_egl_from_gl_display to create a
GstGLDisplayEGL from that, which also adds refcounting
around the underlying EGLDisplay.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1385
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1752 >
2020-11-15 15:27:08 +00:00
Aaron Boxer
330b2c6b7c
openjpegenc: store stripe offset when encoding image
...
The decoder can simply read this offset after decoding
to know where to blit the stripe to the full frame
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1800 >
2020-11-12 13:53:47 +00:00
Aaron Boxer
af87da86e2
openjpegenc: take subsampling into account when calculating stripe height
...
We calculate minimum of (stripe height * sub sampling) across all components
to ensure that all component dimensions are consistent with sub-sampling.
The last stripe for each component is simply the remaining height.
limit wavelet resolutions for "thin" stripes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1800 >
2020-11-12 13:53:47 +00:00
Stéphane Cerveau
4f6b609558
openjpegenc: fix memory leak from mstream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1800 >
2020-11-12 13:53:47 +00:00
Aaron Boxer
7463e1090c
openjpegenc: fail negotation in handle_frame if alignment mismatch
...
If encoder is in stripe mode, then downstream must also support stripe
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1800 >
2020-11-12 13:53:47 +00:00
Edward Hervey
dd425fe0fd
adaptivedemux: Store QoS values on the element
...
Storing it per-stream requires taking the manifest lock which can apparenly be
hold for aeons. And since the QoS event comes from the video rendering thread
we *really* do not want to do that.
Storing it as-is in the element is fine, the important part is knowing the
earliest time downstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1021 >
2020-11-11 20:18:11 +00:00
Edward Hervey
a4b20ed276
hlsdemux: Don't double-free variant streams on errors
...
If an error happened switching to a new variant, we switch back to the previous
one ... except it will be unreffed when settin git.
In order to avoid such issues, keep a reference to the old variant until we're
sure we don't need it anymore
Fixes cases of double-free on variants and its contents
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1799 >
2020-11-11 19:19:28 +00:00
Sanchayan Maity
a576814553
ext: Add LDAC encoder
...
LDAC is an audio coding technology developed by Sony that enables the
transmission of High-Resolution (Hi-Res) audio contents over Bluetooth.
Currently Adaptive Bit Rate (ABR) as supported by libldac encoder is not
implemented.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1621 >
2020-11-11 22:16:43 +05:30
Raul Tambre
6d300ce785
webrtc: Update libnice version requirement to 0.1.17
...
Since !1366 nice_agent_get_sockets() is used, which requires 0.1.17.
Update the version requirement accordingly.
Fixes #1459 .
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1792 >
2020-11-11 13:41:59 +02:00
Edward Hervey
1246b448ee
hlsdemux: Re-use streams if possible
...
When switching variants, try to re-use existing streams/pads instead of creating
new ones. When dealing with urisourcebin and decodebin3 this is not only the
expected way but also avoids a lot of buffering/hang issues.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1757 >
2020-11-11 04:06:05 +00:00
Edward Hervey
f1fdbfc5bd
m3u8: Make a debug function usable elsewhere
...
The rest of the code might want to use this
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1757 >
2020-11-11 04:06:05 +00:00
Thibault Saunier
3a554f6d62
qroverlay: Generate documentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
e7ec9986ca
qroverlay: Add a qroverlay element that allows overlaying any data
...
This moves `gstqroverlay.c` to `gstdebugqroverlay.c` and implements
a simple `gstqroverlay` element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
7d9f125ab1
qroverlay: Rename qroverlay to debugqroverlay
...
The element is specially focus on debugging purposes and not a generique QR overlay
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
964c8aa5e0
qroverlay: Factor out qroverlay logic to a base class
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
4afa2d2c3d
qroverlay: Factor out qroverlay logic to a base class
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
e6881aefa9
qroverlay: Make subclassable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
c307f1418d
qroverlay: Port to VideoFilter
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
4a259e8f28
qroverlay: Make default pizel-size 3
...
Otherwise zbar isn't able to read the produced qrcodes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
dc88d3ece9
qroverlay: Cleanup the way we build the json using json-glib
...
And reindent the .h file removing tabs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
bf811616e0
qroverlay: Fix copyright
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
3db26e3f96
qroverlay: Fix some warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
c743d5db23
qroverlay: Minor renaming and documentation fixes
...
Matching usual namings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Thibault Saunier
af054f7015
qroverlay: Import from gst-qroverlay
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730 >
2020-11-11 00:18:32 +00:00
Olivier Crête
da2bd55177
webrtc: Add properties to change the socket buffer sizes to ice object
...
libnice doesn't touch the kernel buffer sizes. When dealing with RTP data,
it's generally advisable to increase them to avoid dropping packets locally.
This is especially important when running multiple higher bitrate streams at
the same time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1366 >
2020-11-03 22:07:53 +00:00
Jan Schmidt
5f9897745b
vkdeviceprovider: Avoid deadlock on physical device
...
Don't hold the object lock on the vk physical device while
constructing a GstVulkanDevice around it, as
GstVulkanDevice can make calls on the physical device that
require the object lock.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1754 >
2020-11-03 04:28:00 +00:00
Randy Li
4e4c26af4b
wlvideoformat: fix DMA format convertor
...
In the most of case, this typo would work. But for
ARGB8888 and XRGB8888, which shm format is not based on fourcc,
which would never appear in format enumeration.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1751 >
2020-11-02 12:39:38 +00:00
Jan Schmidt
dbeb576531
sctp: Do downward state change logic after chaining up.
...
Call the parent state_change function first when changing state
downward, to make sure that the element has stopped before cleaning
it up.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1741 >
2020-10-31 01:47:06 +00:00
Jan Schmidt
760592a29c
dtls: Avoid bio_buffer assertion on shutdown.
...
On shutdown, a previous iteration of dtsl_connection_process()
might be incomplete and leave a partial bio_buffer behind.
If the DTLS connection is already marked closed, drop out
of dtls_connection_process early without asserting.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1741 >
2020-10-31 01:47:06 +00:00
Jan Schmidt
af90778314
webrtc: Fix a race on shutdown.
...
The main context can disappear in gst_webrtc_bin_enqueue_task()
between checking the is_closed flag and enqueueing a source on the
main context. Protect the main context with the object lock instead
of the PC lock, and hold a ref briefly to make sure it stays alive.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1741 >
2020-10-31 01:47:06 +00:00
Olivier Crête
80a56c25a6
webrtc: Set the DSCP markings based on the priority
...
This matches how the WebRTC javascript API works and the Chrome implementation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707 >
2020-10-30 16:24:40 -04:00
Olivier Crête
0fbbdc5734
rtptransceiver: Store the SSRC of the current stream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707 >
2020-10-30 16:23:10 -04:00
Olivier Crête
7be09a5f22
webrtc: Save the media kind in the transceiver
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707 >
2020-10-30 16:23:10 -04:00
Olivier Crête
e172ca5be1
webrtcbin: Remove unused function
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707 >
2020-10-30 16:23:10 -04:00
Chris Bass
d25be0d16e
ttmlparse: Handle whitespace before XML declaration
...
When ttmlparse is in, e.g., an MPEG-DASH pipeline, there may be
whitespace between successive TTML documents in ttmlparse's accumulated
input. As libxml2 will fail to parse documents that have whitespace
before the opening XML declaration, ensure that any preceding whitespace
is not passed to libxml2.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1539 >
2020-10-30 07:01:52 +00:00
Chris Bass
8df2314c23
ttmlparse: Ensure only single TTML doc parsed
...
The parser handles only one TTML file at a time, therefore if there are
multiple TTML documets in the input, parse only the first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1539 >
2020-10-30 07:01:52 +00:00
Guillaume Desmottes
bfb9071081
isac: add iSAC plugin
...
Wrapper on the iSAC reference encoder and decoder from webrtc,
see https://en.wikipedia.org/wiki/Internet_Speech_Audio_Codec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1124 >
2020-10-29 16:59:18 +01:00
Randy Li
6d8133e41e
waylandsink: release frame callback when destroyed
...
We would use a frame callback from the surface to indicate
that last buffer is rendered, but when we destroy the surface
and that callback is not back yet, it may cause the wayland event
queue crash.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1729 >
2020-10-29 12:09:01 +00:00
Nicola Murino
77f28ee3e7
opencv: allow compilation against 4.5.x
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1709 >
2020-10-27 10:53:27 +00:00
Philippe Normand
37b7809d18
wpe: Convert launch lines to markdown and move since tag
...
Seems like the examples don't appear in the generated docs because the Since tag
was badly positioned in the doc blurb.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1706 >
2020-10-18 15:17:25 +00:00
Tim-Philipp Müller
3f8d33abed
hlssink2: fix and flesh out docs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1699 >
2020-10-16 13:37:18 +00:00
Stéphane Cerveau
cbd61e28b2
meson: update glib minimum version to 2.56
...
In order to support the symbol g_enum_to_string in various
project using GStreamer ( gst-validate etc.), the glib minimum
version should be 2.56.0.
Remove compat code as glib requirement
is now > 2.56
Version used by Ubuntu 18.04 LTS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1695 >
2020-10-16 09:16:34 +00:00
Vivia Nikolaidou
94e1623434
cameracalibrate: Improve gst-inspect documentation
...
Thanks to @kazz_naka on Twitter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1691 >
2020-10-13 17:21:59 +03:00
Matthew Waters
2f29a4cde6
wpesrc: add some debug logging around WPEView creation/destruction
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1663 >
2020-10-13 08:48:05 +00:00
Matthew Waters
da18a8d93d
wpesrc: fix a memory leak of the bytes
...
free the previous GBytes if load-bytes is called multiple times
before view creation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1663 >
2020-10-13 08:48:05 +00:00
Matthew Waters
356fee4dd6
wpesrc: only create webview if not already created
...
e.g. _decide_allocation() can be called multiple times throughout the
element's lifetime and we only want to create the view once rather than
overwriting.
Fixes a leak of the WPEView under certain circumstances.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1663 >
2020-10-13 08:48:05 +00:00
Matthew Waters
b84c8821de
wpe: free a previous pending image/shm buffer
...
Don't blindly overwrite a possibly previously set buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1663 >
2020-10-13 08:48:05 +00:00
Jan Alexander Steffens (heftig)
4eeff95f92
srtsrc: Prevent delay
from being negative
...
`delay` should be a GstClockTimeDiff since SRT time is int64_t.
All values are in local time so we should never see a srctime that's in
the future. If we do, clamp the delay to 0 and warn about it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1674 >
2020-10-12 12:58:22 +00:00
Jan Alexander Steffens (heftig)
ec11ad9d55
srtsrc: Don't calculate a delay if the srctime is 0
...
A zero srctime is a missing srctime. Apparently this can happen when
["the connection is not between SRT peers or if Timestamp-Based Packet
Delivery mode (TSBPDMODE) is not enabled"][1] so it may not apply to us,
but it's best to be defensive.
[1]: https://github.com/Haivision/srt/blob/v1.4.2/docs/API.md#sending-and-receiving
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1674 >
2020-10-12 12:58:22 +00:00
Jan Alexander Steffens (heftig)
6b2fcb52e5
srtsrc: Defend against missing clock
...
If we don't have a clock, stop the source instead of asserting in
gst_clock_get_time. This can happen when the element is removed from the
pipeline while it's playing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1674 >
2020-10-12 12:58:22 +00:00
Olivier Crête
8a0d1d85cf
dtlsconnection: Ignore OpenSSL system call errors
...
OpenSSL shouldn't be making real system calls, so we can safely
ignore syscall errors. System interactions should happen through
our BIO. So especially don't look at the system's errno, as it
should be meaningless.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1656 >
2020-10-10 15:34:21 +00:00
Jan Alexander Steffens (heftig)
c6eeead1e4
srt: Consume the error from gst_srt_object_write
...
Instead of leaking it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1668 >
2020-10-09 07:47:47 +00:00
Jan Alexander Steffens (heftig)
2a7fa67693
srt: Check socket state before retrieving payload size
...
The connection might be broken, which we should detect instead of just
aborting the write.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1669 >
2020-10-09 07:12:04 +00:00
Jakub Adam
6f2f15b5fb
x265enc: fix deadlock on reconfig
...
Don't attempt to obtain encoder lock that is already held by
gst_x265_enc_encode_frame().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1671 >
2020-10-09 06:39:36 +00:00
Edward Hervey
dd11e91c3b
srtsrc: Fix timestamping
...
SRT provides the original timestamp of a packet (with drift/skew corrected for
local clock), which is what should be used for timestamping the outgoing
buffers. This ensures that we output the packets with the same timestamp (and by
extension rate) as the original feed.
Also detect if packets were dropped (by checking the sequence number) and
properly set DISCONT flag on the outgoing buffer.
Finally answer the latency queries
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1658 >
2020-10-08 21:12:17 +00:00
Sebastian Dröge
cc7e98816f
Revert "webrtc: Save the media kind in the transceiver"
...
This reverts commit f54d8e9945
.
It breaks the CI until the C# bindings are fixed.
2020-10-08 18:53:12 +03:00
Sebastian Dröge
849839ba97
Revert "rtptransceiver: Store the SSRC of the current stream"
...
This reverts commit d1da271f25
.
It breaks the CI until the C# bindings are fixed.
2020-10-08 18:53:07 +03:00
Sebastian Dröge
e65a8cbcf1
Revert "webrtcbin: Remove unused function"
...
This reverts commit 39723dbe93
.
It breaks the CI until the C# bindings are fixed.
2020-10-08 18:53:04 +03:00
Sebastian Dröge
b565a7ef66
Revert "webrtc: Set the DSCP markings based on the priority"
...
This reverts commit 8ba08598bb
.
It breaks the CI until the C# bindings are fixed.
2020-10-08 18:53:00 +03:00
Olivier Crête
8ba08598bb
webrtc: Set the DSCP markings based on the priority
...
This matches how the WebRTC javascript API works and the Chrome implementation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425 >
2020-10-06 16:49:08 -04:00
Olivier Crête
39723dbe93
webrtcbin: Remove unused function
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425 >
2020-10-06 16:49:08 -04:00
Olivier Crête
d1da271f25
rtptransceiver: Store the SSRC of the current stream
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425 >
2020-10-06 16:49:08 -04:00
Olivier Crête
f54d8e9945
webrtc: Save the media kind in the transceiver
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1425 >
2020-10-06 16:49:08 -04:00
Jan Alexander Steffens (heftig)
92dc2f4192
srt: Remove unused sa_family tracking
...
Now that SRT no longer needs the family when creating the socket, this
code has become useless.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659 >
2020-10-06 13:56:32 +02:00
Niklas Hambüchen
13c8bda531
srt: Move off deprecated srt_socket()
.
...
See 73ee1e1a3e/docs/API-functions.md (srt_socket)
`srt_create_socket()` was added in
4b897ba92d
and srt `v1.3.0` is the first release that has it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659 >
2020-10-06 13:56:32 +02:00
Jan Alexander Steffens (heftig)
4e26b447f6
srt: Register a log handler
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659 >
2020-10-06 12:39:04 +02:00
Jan Alexander Steffens (heftig)
936f422764
srt: Avoid removing invalid sockets from the polls
...
This would provoke error messages from SRT.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659 >
2020-10-06 12:39:00 +02:00
Jan Alexander Steffens (heftig)
fda4cfd15e
srt: Fix use of srt_startup
...
`srt_startup` can also return 1 if it was successful. Avoid warning in
this case.
Avoid a race when checking whether we need to call it at all.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659 >
2020-10-06 12:38:57 +02:00
Jan Alexander Steffens (heftig)
6b8c4a5f34
srt: Fix parameter types used for socket options
...
The [SRT documentation][1] specifies exact types for the socket options.
Make sure we match these.
This reverts the linger workaround in commit 84f8dbd932
and extends srt_constant_params to support other types than int.
[1]: https://github.com/Haivision/srt/blob/master/docs/APISocketOptions.md
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659 >
2020-10-06 12:36:40 +02:00
Lars Lundqvist
9ded00bcf0
curlbasesink: Add curl seek callback
...
Adding functionality to handle SEEK_SET enables rewinding of sent data.
In the HTTP case, this happens after an HTTP 401 has been received from
the other end. This will result in the sent data being resent.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1616 >
2020-10-01 10:40:14 +00:00
Matthew Waters
b003387526
wpesrc: fix some caps leaks using the non-GL output
...
Always chain up to the parent _stop() implementation as it unrefs some
caps (among other things).
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1409
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1618 >
2020-09-30 12:10:44 +00:00
Hosang Lee
f7a8ece5ef
smoothstreaming: clear live adapter on seek
...
In live streaming, buffers sent by souphttpsrc are pushed to the live
adapter. The buffers in the adapter are sent out of mssdemux when it
is greater than 4096 bytes.
Occasionally, when seeking in live streams, if seek occurs just
after the last data chunk was received, and if this data chunk is
smaller than 4096 bytes, it will be kept in the live adapter.
This remaining data in the live adapter will be erroneously prepended
to the new data that is downloaded after seek and pushed out.
When qtdemux receives this data, since it does not start with
a moof box, it is impossible to demux the fragment, and bogus
size error will occur.
Clear out the live adapter on seek so that no unnecessary remaining
data is pushed out together with the new fragment after seeking.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1345 >
2020-09-30 11:48:02 +00:00
Ederson de Souza
8335039ecd
tests/avtp: Fix coverity issues
...
Fixes sign extension issues, unchecked return values and some constant
expression results.
CID: 1465073, 1465074, 1465075, 1465076, 1465077
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1398 >
2020-09-28 18:40:43 +00:00
Ederson de Souza
38d3360edb
avtp: Change "%lu" for G_GUINT64_FORMAT
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1398 >
2020-09-28 18:40:43 +00:00
raghavendra
84f8dbd932
srtobject: typecast SRTO_LINGER to linger
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1615 >
2020-09-25 22:00:26 +05:30
Philippe Normand
2e8927ce93
wpe: Plug event leak
...
Handled events don't go through the default pad event handler, so they need to
be unreffed in this case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1568 >
2020-09-21 16:39:57 +00:00
Jan Schmidt
6fc7455881
wpesrc: Don't crash if WPE doesn't generate a buffer.
...
On creating a 2nd wpesrc in a new pipeline in an app that already
has a runnig wpesrc, WPE sometimes doesn't return a buffer on request,
leading to a crash. This commit fixes the crash, but not the underlying
failure - a 2nd wpesrc can still error out instead.
Partially fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1386
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1568 >
2020-09-21 16:39:57 +00:00
Philippe Normand
c3659cd611
wpe: Plug SHM buffer leaks
...
Fixes #1409
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1568 >
2020-09-21 16:39:57 +00:00
Philippe Normand
8ef30a9ce5
wpe: Move webview load waiting to WPEView
...
As waiting for the load to be finished is specific to the WebView, it should be
done from our WPEView, not from the WPEContextThread. This fixes issues where
multiple wpesrc elements are created in sequence. Without this patch the first
view might receive erroneous buffer notifications.
Fixes #1386
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1568 >
2020-09-21 16:39:57 +00:00
Philippe Normand
b707454a5a
wpe: Use proper callback for TLS errors signal handling
...
The load-failed and load-failed-with-tls-errors signals expect distinct callback
signatures.
Fixes #1388
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1566 >
2020-09-21 14:11:15 +00:00
Olivier Crête
825a79f01f
webrtcbin: Accept end-of-candidate pass it to libnice
...
libnice now supports the concept of end-of-candidate, so use the API
for it. This also means that if you don't do that, the webrtcbin will
never declared the connection as failed.
This requires bumping the dependency to libnice 0.1.16
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1139 >
2020-09-18 18:40:58 -04:00
Olivier Crête
63f06d16db
webrtcbin: Merge the RTX SSRCs from all transceivers when bundling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1545 >
2020-09-18 14:20:03 +00:00
Marian Cichy
c145798876
avtp: avtpaafdepay: fix crash when building caps
...
gst_caps_new_simple gets wrong types for rate and channel which
may lead to a crash.
As 64-bit values for rate, depth, format, channels does not
make much sense and since any other functionality in gstreamer
expects G_TYPE_INT for channels and rate, we should stick to that
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1576 >
2020-09-17 08:32:07 +00:00
Emmanuel Gil Peyrot
f97b718b4c
waylandsink: Use memfd_create() when available
...
This (so-far) Linux- and FreeBSD-only API lets users create file
descriptors purely in memory, without any backing file on the filesystem
and the race condition which could ensue when unlink()ing it.
It also allows seals to be placed on the file, ensuring to every other
process that we won’t be allowed to shrink the contents, potentially
causing a SIGBUS when they try reading it.
This patch is best viewed with the -w option of git log -p.
It is an almost exact copy of Wayland commit
6908c8c85a2e33e5654f64a55cd4f847bf385cae, see
https://gitlab.freedesktop.org/wayland/wayland/merge_requests/4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1577 >
2020-09-15 19:17:12 +00:00
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
Nicola Murino
8544f3928e
opencv: allow compilation against 4.4.x
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1482 >
2020-08-01 17:38:42 +00:00
Mathieu Duponchelle
265128e7f7
cccombiner: implement samples selection API
...
Call gst_aggregator_selected_samples() after identifying the
caption buffers that will be added as a meta on the next video
buffer.
Implement GstAggregator.peek_next_sample.
Add an example that demonstrates usage of the new API in
combination with the existing buffer-consumed signal.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1390 >
2020-07-30 23:10:33 +00:00
Mathieu Duponchelle
480ede1aa7
wpesrc: timestamp buffers when working with SHM buffers
...
GLBaseSrc::fill() will take care of that when dealing with
images, but as we don't chain up when dealing with SHM buffers
this needs to be done in order for GLBaseSrc::get_times() to
work appropriately.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1476 >
2020-07-30 08:09:47 +00:00
Mathieu Duponchelle
ad57b8040f
wpe: fix ready signalling
...
Receiving the WEBKIT_LOAD_COMMITTED event doesn't actually
mean we have committed an SHM buffer / image yet.
As this is the condition we are interested in, check it
instead.
Also wrap g_cond_wait in a loop for extra correctness points.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1476 >
2020-07-30 08:09:47 +00:00
Damian Hobson-Garcia
deefedd002
waylandsink: Update stale GstBuffer references in wayland buffer cache
...
"waylandsink: use GstMemory instead of GstBuffer for cache lookup"
changes the cache key to GstMemory, but the cached data still needs
a pointer to the GstBuffer to control the buffer lifecycle.
If the GstMemory used as the cache key moves from one GstBuffer to
another, the pointer in the cached data will be out-of-date.
Update the current GstBuffer pointer for each frame so that it always
represents the currently in use (from attach to release) GstBuffer
for each wl_buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1473 >
2020-07-28 11:35:53 +00:00
Tim-Philipp Müller
798249dc9f
directfb: suppress compiler warning from directfb headers
...
On debian sid, directfb 1.7.7
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1467 >
2020-07-25 19:47:43 +01:00
Thibault Saunier
7db147e9aa
iqa: Add a 'mode' property
...
This property currently only supports a 'strict' that checks that
all the input streams have the exact same number of frames.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1424 >
2020-07-23 17:14:08 +00:00
Thibault Saunier
0349f032bf
iqa: Implement child proxy
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1424 >
2020-07-23 17:14:08 +00:00
Matthew Waters
597c1b4ec6
webrtc: remove private properties/signals from the now public ice object
...
We don't want to expose all of the webrtcbin internals to the world.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1444 >
2020-07-20 15:56:20 +10:00
Ederson de Souza
51d5aee94d
avtp: Update documentation
...
- Mention that a new capability is required by "avtpsink" element;
- Use "clockselect" element to change pipeline clock, instead of a
gst-launch option that never saw the light of day.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1443 >
2020-07-16 13:32:56 -07:00
Damian Hobson-Garcia
e6944da134
waylandsink: use GstMemory instead of GstBuffer for cache lookup
...
The GstMemory objects contained in a GstBuffer could be replaced
by an upstream element, which would break the association beteen
the GstBuffer and the wayland wl_buffer, make the cache lookup
results incorrect.
This patch changes the cache lookup to use the first GstMemory
in a buffer instead. For multi-plane buffers, this assumes that
all of the GstMemory(s) will always be moved together as a set,
and that the same (first) GstMemory isn't used with different
combinations of other GstMemory(s).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1401 >
2020-07-15 14:35:06 +00:00
Damian Hobson-Garcia
ff5f264045
waylandsink: Keep per display wayland buffer caches
...
Instead of attaching a single wayland wl_buffer to each GStBuffer as qdata,
keep a separate cache for each display.
A unique wl_buffer and associated metadata is created for each display.
This allows for sharing of GstBuffer objects between multiple
displays, such as when using tee elements.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1401 >
2020-07-15 14:35:06 +00:00
Tim-Philipp Müller
395ecb3d2f
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 >
2020-07-11 00:14:44 +01:00
Tim-Philipp Müller
92456967d0
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 >
2020-07-10 14:57:44 +01:00
Vivia Nikolaidou
bf38898af8
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 >
2020-07-08 17:11:38 +00:00
Tim-Philipp Müller
f3fdd76683
rtmp, transcodebin: fix i18n header includes
...
Fixes #1351
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1416 >
2020-07-07 19:55:00 +01:00
Matthew Waters
ebd1b2c929
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 >
2020-07-03 06:54:46 +00:00
Matthew Waters
327a79e982
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 >
2020-07-03 06:54:46 +00:00
Matthew Waters
6fa4a8c3c3
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 >
2020-07-03 06:54:46 +00:00
Ederson de Souza
f8bf84307f
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 >
2020-07-03 04:04:39 +00:00
Mathieu Duponchelle
b33f10e7e2
docs: remove gst prefix from plugin titles
2020-07-02 18:10:21 +02:00
Philippe Normand
db0ab58e14
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 >
2020-07-01 20:31:42 +00:00
Matthew Waters
c6c4d42c4a
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 >
2020-07-01 19:33:56 +00:00
Matthew Waters
4f334234c8
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 >
2020-07-01 19:33:56 +00:00
Tim-Philipp Müller
c229127b43
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.
2020-07-01 18:41:25 +01:00
Olivier Crête
cceca1ffe8
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 >
2020-06-29 22:45:31 -04:00
Michael Olbrich
76411205c8
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 >
2020-06-28 18:55:02 +02:00
Sebastian Dröge
3864c9f97f
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 >
2020-06-26 10:20:04 +03:00
Miguel Paris
3dd2bbf23c
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 >
2020-06-26 10:19:28 +03:00
Sebastian Dröge
ed3417219a
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 >
2020-06-25 08:18:37 +00:00
Sebastian Dröge
f694956511
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 >
2020-06-25 08:18:37 +00:00
Mathieu Duponchelle
ad49ae42f7
docs: mark more types as plugin API
2020-06-23 12:10:19 -04:00
Mathieu Duponchelle
6baffc2931
docs: mark more types as plugin API
2020-06-23 12:10:17 -04:00
Sebastian Dröge
aa01e6ba22
webrtcbin: Don't call gst_ghost_pad_construct() anymore
...
It's deprecated, unneeded and doesn't do anything anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1360 >
2020-06-22 17:01:34 +00:00
Matthew Waters
0f41c0f000
webrtc: fix ice control mode when we offer initially
...
An initial offer means we have a local description not a remote
description.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1332
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1358 >
2020-06-22 12:17:09 +00:00
Vivia Nikolaidou
41950f2aba
fdkaacenc: Add missing SURROUND mappings
...
SURROUND is more to spec according to the FIXME comments, so add this.
Also add SIDE for 5 and 5.1 because of ffmpeg compatibility, because the
following pipeline downmixes to mono otherwise:
gst-launch-1.0 audiotestsrc num-buffers=1 ! audio/x-raw, channels=6 !
avenc_ac3 ! avdec_ac3 ! audioconvert ! fdkaacenc ! fakesink -v
Fixes #1327
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1352 >
2020-06-22 07:14:20 +00:00
Tim-Philipp Müller
a8ce8db982
srt: add "empty" subclasses for deprecated srt{client,server}{src,sink}
...
The doc system gets confused when we register the exact same
class as multiple elements, so make a subclass for each.
Also wrap registration of deprecated elements with #ifndef GST_REMOVE_DEPRECATED.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1354 >
2020-06-19 17:20:02 +01:00
Tim-Philipp Müller
8e93ae65e8
x265: ignore tune property when diffing generated docs
...
Unfortunately it means those tune enums don't show up in
the docs then, but if that's how it's gotta be..
(Problem at hand is that on Tim's machine x265enc gets an
tune=animation and on the CI machine this doesn't show up.)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1354 >
2020-06-19 15:41:51 +01:00
Tim-Philipp Müller
29026b1c27
Mark more plugin GTypes as plugin API
...
To appease the CI gods.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1354 >
2020-06-19 13:05:38 +01:00
Hosang Lee
e04be18c49
mssdemux: ignore unrecognized stream
...
Only create pads for steams with caps that can be recognized
from the fourcc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1348 >
2020-06-17 06:48:18 +00:00
Matthew Waters
3cf0abddbb
vulkan/shaders: add explicit license headers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1338 >
2020-06-12 15:52:44 +10:00
Matthew Waters
1f44cb0519
vulkan/shaders: manually indent bin2array
...
Looks much nicer with some semblance of code formatting
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1338 >
2020-06-12 15:52:44 +10:00
Haihua Hu
d77de13ca6
waylandsink: add wl_registry.global_remove listener
...
when hotplug display, wayland client will call this listener
to notify client do clean up. Temporarily set a dummy function
here to avoid app abort
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1327 >
2020-06-09 19:54:24 +00:00
Thibault Saunier
ebababae03
srt: doc: Add missing gst_type_mark_as_plugin_api
2020-06-09 12:28:13 -04:00
Thibault Saunier
af26b95c29
docs: Mark lv2 runtime generated enums as plugins API types
2020-06-09 12:28:13 -04:00
Thibault Saunier
60fba5f380
docs: Add some more plugin API types
...
And allow creating vulkan device object without specifying an instance
so it can be introspected.
2020-06-09 12:28:13 -04:00
Thibault Saunier
3a98a37375
docs: Update plugins cache
2020-06-09 12:28:13 -04:00
Mathieu Duponchelle
a048ce81d4
plugins: uddate gst_type_mark_as_plugin_api() calls
2020-06-06 00:40:42 +02:00
cketti
2408fbe92d
curlsmtpsink: Use correct email date format
...
See https://www.rfc-editor.org/rfc/rfc5322.html#section-3.3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1317 >
2020-06-05 08:22:34 +00:00
Matthew Waters
8396e16f85
ccconverter: signal cea608 padding as invalid
...
Outputting a valid but null cea608 byte pair may cause some issues with
some checksum packets.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1318 >
2020-06-05 07:36:22 +00:00
Matthew Waters
bfd03537f0
ccconverter: also copy buffer metadata when draining
...
Fixes buffers without PTS/DTS/meta/etc when receiving an EOS with data
still stored in the internal scratch buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1318 >
2020-06-05 07:36:22 +00:00
Matthew Waters
00bbaff371
ccconverter: Output the limit hit in debug lines
...
Fix two case of the input triplet limit not applying in cea608 -> cdp
conversion.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1318 >
2020-06-05 07:36:22 +00:00
Thibault Saunier
d9ffa3b3b2
doc: Fix spelling of GstWebRTCICE
2020-06-04 13:33:16 -04:00
Sebastian Dröge
74f2f733be
plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types
2020-06-04 13:33:16 -04:00
Peter Workman
b98712c44a
srtobject: continue polling or report error on failed receive
...
fixes #1277
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1260 >
2020-06-03 09:31:42 +00:00
Jan Alexander Steffens (heftig)
a1bc9d4319
srt: Make logging regarding callers more useful
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1273 >
2020-06-03 04:23:14 +00:00
Sebastian Dröge
b25d153c34
webrtc: Add GstWebRTCDataChannel to the library API
...
This makes it more discoverable for bindings and allows bindings to
generate static API for the signals and functions.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1168
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1313 >
2020-06-02 21:04:37 +00:00
Ederson de Souza
bafdade207
avtp: Ensure that the avtp plugin is only built on Linux
...
It uses some Linux only features. This also prevents gst-build trying to
get libavtp on non-Linux environments.
2020-06-01 11:37:16 -07:00
Tim-Philipp Müller
00caf46e3f
vulkan: fix use of assert() with older meson versions
...
Follow-up to !1307
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1308 >
2020-05-28 22:50:00 +01:00
Tim-Philipp Müller
b75ad03313
vulkan: don't run tests or build lib if plugin isn't actually built
...
The unit tests only checked for vulkan_dep.found(), which can
be true if the libs are there but glslc was not found, in which
case the plugin wouldn't be built and the unit tests would fail
because of missing vulkan plugins.
Doesn't really make much sense to build the vulkan integration lib
either if we're not going to build the vulkan plugin, so just disable
both for now if glslc is not available.
Fixes #1301
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1307 >
2020-05-28 19:07:32 +01:00
Matthew Waters
67ae885d4c
webrtc: handle an ice-lite remote offer
...
When the remote peer offers an ice-lite SDP, we need to configure our
ICE negotiation to be in controlling mode as the peer will not be.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1304 >
2020-05-28 19:57:45 +10:00
Jan Schmidt
918ed75944
srt: Don't leak the connection_poll_id on close()
...
Attempting to reach an inactive SRT peer in caller mode
was leaking an fd every few seconds in the gst_srt_object_close()/open()
loop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1293 >
2020-05-24 10:47:59 +00:00
Thibault Saunier
5a2c358a2b
pitch: Remove useless restriction on number of channel
...
It handles any number of channels just fine
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1292 >
2020-05-22 18:18:28 -04:00
Stéphane Cerveau
3f16353d64
meson: add libopenjp2 fallback for openjpeg
...
As a wrap is now available in gst-build, the fallback
can be used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1270 >
2020-05-21 08:36:59 +00:00
Ederson de Souza
a754c67c05
avtp: Add libavtp fallback dependence
...
So that libavtp can be found if added as subproject on gst-build.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1271 >
2020-05-21 00:14:08 +00:00
Mats Lindestam
bf004227ec
gstcurlhttpsink: Set 'Expect: 100-continue'-header
...
In the upgrade of libcurl from 7.64.1 to 7.69.1 the
EXPECT_100_THRESHOLD has been increased from 1 Kb to 1 Mb
(see https://curl.haxx.se/mail/lib-2020-01/0050.html ).
This caused the gstcurlhttpsink to not being able to rewind
and resend in the case, e.g. response '401 Unauthorized'.
Now the 'Expect: 100-continue'-header is explicitly set in
the gstcurlhttpsink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1276 >
2020-05-18 13:46:24 +02:00
J. Kim
4ccaa1ebbb
srtobject: add streamid property
...
The stream id starts with '#!::' according to SRT Access Control[1],
but GstURI requires URI encoded string.This commit introduces additional
property to set the id by normal string.
[1] https://github.com/Haivision/srt/blob/master/docs/AccessControl.md
2020-05-13 14:13:48 +00:00
Nirbheek Chauhan
e3d5849225
meson: Pass native: false to add_languages()
...
This is needed for cross-compiling without a build machine compiler
available. The option was added in 0.54, but we only need this in
Cerbero and it doesn't affect older versions so it should be ok.
Will only cause a spurious warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1266 >
2020-05-13 13:59:36 +05:30
Matthew Waters
6dae95d60f
ccconverter: check fraction multiply for overflow
...
It should not happen and if it does, something went very wrong earlier
CID 1463350
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1262 >
2020-05-12 16:06:32 +10:00
Matthew Waters
09cbe4cd03
ccconverter: tighten up a couple of NULL checks
...
CID 1463347
CID 1463346
CID 1463345
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1262 >
2020-05-12 16:06:32 +10:00
Matthew Waters
ebc19d19bb
ccconverter: fix unintialized read of mapped output info in error case
...
We only need to gst_buffer_unmap() if we have gst_buffer_map()ed. In
most cases we can shorten the lenght of time we need to map the output
buffer. Fix similar occurences elsewhere.
CID 1463349
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1262 >
2020-05-12 16:06:32 +10:00
Matthew Waters
f077189809
ccconverter: fix uninitialized read in error case
...
CID 1463351
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1262 >
2020-05-12 16:06:32 +10:00
Matthew Waters
12edc0d9b8
ccconverter: implement discont handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
ba1558a7ab
ccconverter: use a better padding byte sequence for writing cdp
...
0xf8 can be interpreted as cea608 data at the beginning of a cdp packet
as the cc_valid bit is not checked when cc_valid in (0b00 or 0b01).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
7ed0bc539f
ccconverter: split temporary storage into 3
...
Instead of storing the raw cc_data, store the 2 cea608 fields individually
as well as the ccp data.
Simply copying the input cc_data to the output cc_data violates a number of
requirements in the cea708 specification. The most prominent being, that
cea608 triples must be placed at the beginning of each cdp.
We also need to comply with the framerate-dpendent limits for both the
cea608 and the ccp data which may involve splitting or merging some
cea608 data but not ccp data or vice versa.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
3417a1709c
ccconvert: compact input cc_data where possible
...
Skip over padding cc_data triples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
7d028af675
ccconverter: implement support for CDP framerate conversions
...
- Any format involving CDP is supported.
- Time codes (if present) are scaled as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
75503017c2
ccconverter: introduce define for max cdp packet length
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
44c874fd9e
ccconverter: don't rely on external state in *_internal()
...
This allows using the _internal() variants for simply converting some
caption data without relying on any external state.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
31a0bf367d
ccconverter: cc_count limits are per framerate
...
Enforce this and add a test for cdp input being too large.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
b25d75f201
ccconverter: refactor cdp id, fps, max_cc_count into a table
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
afc120fa74
ccconverter: pivot to implementing generate_output
...
Will make a n-n buffer element much easier to implement.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Chris Ayoup
9937101e51
webrtc: move filtering properties to webrtcice
...
We want webrtcbin to only expose properties that are defined in JSEP, so
these additional properties should be moved out. In order to access
them, the webrtcice instance is exposed from webrtcbin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1223 >
2020-05-11 05:30:59 +00:00
Chris Ayoup
ca754245e9
webrtc: allow setting local IP addresses
...
If a local IP address is specified, ICE gathering can be much faster
in environments where there are multiple IP addreses but only some are
usable (for example, if you are running docker on the machine).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1223 >
2020-05-11 05:30:59 +00:00
Chris Ayoup
3fc8818824
webrtc: Allow toggling TCP and UDP candidates
...
Add some properties to allow TCP and UDP candidates to be toggled. This
is useful in cases where someone is using this element in an environment
where it is known in advance whether a given transport will work or not
and will prevent wasting time generating and checking candidate pairs
that will not succeed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1223 >
2020-05-11 05:30:59 +00:00
Sebastian Dröge
d6f6c51f3c
spanplc: Don't segfault when retrieving the stats property without a spanplc context
...
For example when trying to get the property value in NULL state.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1258 >
2020-05-10 08:44:09 +00:00
Sebastian Dröge
77784c7aba
musepackdec: Don't fail all queries if no sample rate is known yet
...
The sample rate is only needed for the POSITION/DURATION queries and we
would otherwise fail important queries like the CAPS query.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/498
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1248 >
2020-05-06 08:51:38 +00:00
Luka Blaskovic
4cf362e2df
opencv: allow compilation against 4.3.x
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1235 >
2020-05-06 06:49:08 +00:00
Matthew Waters
02c8e66ff1
webrtc: fix an off-by-one calculating low-threshold
...
We were not signalling low-threshold when the previous amount was at
exactly the low-threshold mark.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1247 >
2020-05-06 15:49:58 +10:00
Matthew Waters
18de5f8f04
webrtc: remove debugging leftover
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1247 >
2020-05-06 15:49:58 +10:00
Matthew Waters
50644f5718
webrtc: always reply to a promise
...
Otherwise, we defeat the purpose of a promise.
We were not replying when the state was closed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1240 >
2020-05-06 02:53:27 +00:00
Matthew Waters
1f395e3ddb
webrtc: name threads based on the element name
...
Makes debugging a busy loop possibly easier
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1240 >
2020-05-06 02:53:27 +00:00
Matthew Waters
d552c6556c
webrtc: correctly use the pad template
...
GstHarness uses this for releasing request pads correctly. Fixes
numerous leaks in the webrtc unit tests.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1240 >
2020-05-06 02:53:27 +00:00
Matthew Waters
46176fbcc7
webrtc: Fix a couple of renegotiation races
...
When negotiating the SDP we should only connect the streams that are
actually mentioned in the SDP. All other streams are not relevant at
this time and would likely be part of a future SDP update. Fixes a
couple of the renegotiation webrtc unit tests.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1240 >
2020-05-06 02:53:27 +00:00
Edward Hervey
75289d83a1
iqa: Fix all leaks in error path
...
CID #1456049
CID #1456080
CID #1456083
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1244 >
2020-05-05 17:33:20 +00:00
Matthew Waters
3baf0d5dc4
sctp: enable usrsctp debug when supported
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1234 >
2020-05-05 03:38:06 +00:00
Ederson de Souza
b68e47968b
avtpsink: Log that AVTPDU transmission failure is due lateness
...
As ENOBUFS is not really clear about what is going on, let's check
socket error queue to see if packets are being dropped due being late.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1004 >
2020-05-02 17:42:15 +00:00
Ederson de Souza
32281ddd33
avtpsink: Accept buffers that fall out of segment
...
Proper calculate running time for buffers that are out of current
segment and try to honor them.
A typical case is for AVTP packets coming from avtpcvfpay element, as
those may have DTS that falls out of segment (which is about PTS).
By using gst_segment_to_running_time_full(), avtpsink can properly
calculate when to transmit those buffers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1004 >
2020-05-02 17:42:15 +00:00
Ederson de Souza
7edaeb3fae
avtpcvfpay: Warn about timestamp issues on non-flushing seek
...
Seek events will cause new segments to be sent to avtpcvfpay, and for
flushing seeks, a pipeline running time reset. This running time
reset, which effectively changes pipeline base time, will cause
avtpcvfpay element to generate incorrect DTS for the initial set of
buffers sent after FLUSH_STOP.
This happens due the fact that base time change happens only when the
sink gets the first buffer after the FLUSH_STOP - so avtpcvfpay used
the wrong base time to do its calculations.
However, if the pipeline is paused before the seek, sink will update
base time when pipeline state goes to PLAYING again, before avtpcvfpay
gets the first buffers after the flush. Then avtpcvfpay element will be
able to normally calculate DTS for the outgoing packets.
This patch simply adds a warning message in case a flushing seek is
performed on a playing pipeline.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1004 >
2020-05-02 17:42:15 +00:00
Ederson de Souza
12838af353
avtpcvfpay: Ensure NAL fragments are transmitted following stream specs
...
TSN streams are expected to send packets to the network in a well
defined "pace", which is arbitrarily defined for each stream. This pace
is defined by the "measurement interval" property of a stream.
When the AVTP CVF payloader element - avtpcvfpay - fragments a video
frame that is too big to be sent to the network, it currently defines
that all fragments should be transmitted at the same time (via DTS
property of GstBuffers generated, as sink will use those to time the
transmission of the AVTPDU). This doesn't comply with stream definition,
which also has a limit on how many packets can be sent on a given
measurement interval.
This patch solves that by spreading in time the DTS of the GstBuffers
containing the AVTPDUs. Two new properties, "measurement-interval" and
"max-interval-frames", added to avptcvfpay element so that it knows
stream measurement interval and how many AVTPDUs it can send on any of
them. More details on the method used to proper spread DTS/PTS according
to measurement interval can be found in a code commentary inside this patch.
Tests also added for the new property and behaviour.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1004 >
2020-05-02 17:42:15 +00:00
Matthew Waters
b266652043
webrtcbin: also mark data channel transports as active
...
Fixes negotiation of a bundled sdp with only a data channel.
Without marking the transport as active, we would never unblock the
transportreceivebin and thus no data would ever reach us.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1231 >
2020-05-01 03:13:46 +00:00
Matthew Waters
ce9b41f5d4
webrtcbin: fix bundle none case with remote offer bundling
...
If the remote is bundling, but we are not and remote is offering.
we cannot put the remote media sections into a bundled transport as that
is not how we are going to respond.
This specific failure case was that the remote ICE credentials were
never set on the ice stream and so ice connectivity would fail.
Technically, this whole bunde-policy=none handling should be removed
eventually when we implement bundle-policy=balanced. Until such time,
we have this workaround.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1231 >
2020-05-01 03:13:46 +00:00
Vedang Patel
e47fa2006f
avtp: Introduce the CRF Check element
...
This commit introduces the AVTP Clock Reference Format (CRF) Checker
element. This element re-uses the GstAvtpCrfBase class introduced along
with the CRF Synchronizer element.
This element will typically be used along with the avtpsrc element to
ensure that the AVTP timestamp (and H264 timestamp in case of CVF-H264
packets) is "aligned" with the incoming CRF stream. Here, "aligned" means
that the timestamp value should be within 25% of the period of the media
clock recovered from the CRF stream.
The user can also set an option (drop-invalid) in order to drop any packet
whose timestamp is not within the thresholds of the incoming CRF stream.
2020-04-30 23:31:25 +00:00
Vedang Patel
12ad2a4bcd
avtp: Introduce the CRF Sync Element
...
This commit introduces the AVTP Clock Reference Format (CRF) Synchronizer
element. This element implements the AVTP CRF Listener as described in IEEE
1722-2016 Section 10.
CRF is useful in synchronizing events within different systems by
distributing a common clock. This is useful in a scenario where there are
multiple talkers who are sending data to a single listener which is
processing that data. E.g. CCTV cameras on a network sending AVTP video
streams to a base station to display on the same screen.
It is assumed that all the systems are already time-synchronized with each
other. So, the AVTP Talker essentially adjusts the AVTP Presentation Time
so it's phase-locked with the reference clock provided by the CRF stream.
There are 2 different roles of systems which participate in CRF data
exchange. A system can either be a CRF Talker, which samples it's own
clock and generates a stream of timestamps to transmit over the network, or
a CRF Listener, the system which receives the generated timestamps and
recovers the media clock from the timestamps. It then adjusts it's own
clock to align with recovered media clock. The timestamps generated by the
talker may not be continuous and the listener might have to interpolate
some timestamps to recover the media clock. The number of timestamps to
interpolate is mentioned in the CRF stream AVTPDU (Refer IEEE 1722-2016
Section 10.4 for AVTPDU structure). Only CRF Listener has been implemented
in this commit.
The CRF Sync element will create a separate thread to listen for the CRF
stream. This thread will calculate and store the average period of the
recovered media clock. The pipeline thread will use this stored period
along with the first timestamp of the latest CRF AVTPDU received to
calculate adjustment for timestamps in the audio/video streams. In case of
CRF AVTPDUs with single timestamp, two consecutive CRF AVTPDUs will be used
to figure out the average period of the recovered media clock.
In case of H264 streams, both AVTP timestamp and H264 timestamp will be
adjusted.
In the future commits, another "CRF Checker" element will be introduced
which will validate the timestamps on the AVTP Listener side. Which is why
a lot of code has been implemented as part of the gstcrfbase class.
2020-04-30 23:31:25 +00:00
krivoguzovVlad
b769af0c4f
Update gstsrtobject.c
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/999 >
2020-04-30 18:57:13 +00:00
Matthew Waters
80ede09193
webrtcbin: only start gathering on local descriptions
...
If we are in a state where we are answering, we would start gathering
when the offer is set which is incorrect for at least two reasons.
1. Sending ICE candidates before sending an answer is a hard error in
all of the major browsers and will fail the negotiation.
2. If libnice ever adds the username fragment to the candidate for
ice-restart hardening, the ice username and fragment would be
incorrect.
JSEP also hints that the right call flow is to only start gathering when
a local description is set in 4.1.9 setLocalDescription
"This API indirectly controls the candidate gathering process."
as well as hints throughout other sections.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1226 >
2020-04-30 14:47:55 +00:00