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