Olivier Crête
a931e31141
webrtc lib: Make the datachannel struct private
...
This will prevent any unsafe access.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241 >
2021-06-21 20:53:09 +00:00
Olivier Crête
a0813c5bd2
webrtc lib: Make the icetransport struct private
...
This will prevent any unsafe access.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241 >
2021-06-21 20:53:09 +00:00
Olivier Crête
a6593753a5
webrtc lib: Make the rtpsender struct private
...
This will prevent any unsafe access.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241 >
2021-06-21 20:53:09 +00:00
Olivier Crête
b5f2de3124
webrtc lib: Make the transceiver struct private
...
This will prevent any unsafe access.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2241 >
2021-06-21 20:53:09 +00:00
Mathieu Duponchelle
08323f382c
x265enc: add negative DTS support
...
Use the same set_min_pts approach as x264enc.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/304
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2340 >
2021-06-21 10:31:21 +00:00
Stéphane Cerveau
f30e74bb20
faad: fix typo in element documentation
...
seealso is now see_also
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2323 >
2021-06-21 07:35:26 +00:00
Randy Li (ayaka)
0d746d1022
waylandsink: prevent frame callback being released twice
...
For those using context from the application which
would be the embedded video case, if the frame callback
is entering at the same time as window is finalizing,
a wayland proxy object would be destroyed twice, leading
the refcout less than zero in the second time, it can
throw an abort() in wayland.
For those top window case, which as a directly connection
to the compositor, they can stop the message queue then
the frame callback won't happen at the same time as the
window is finalizing. It doesn't think it would bother
them about this.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1883 >
2021-06-15 16:25:17 -04:00
Stéphane Cerveau
a71ec17cf0
jpeg2000parse, openjpeg: add support for YCrCb 4:1:1 sampling
...
Add YCrCb 4:1:1 support in openjpeg elements
and fix in jpeg2000parse the YCrCb 4:1:0 support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2321 >
2021-06-14 11:05:45 +02:00
Thibault Saunier
c7684b48d0
wpe: Rename undeserializable_type
to not_deserializable_type
...
Making it more readable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
da150c18bb
wpe: Make forwarded messages layout more like GstBinForwaded messages
...
Making it look more like how we do this kind of things in other places.
See: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252#note_927653
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
f29e75d1da
wpe: Make wpesrc!video pad an always pad
...
There should always be a `video` pad no matter what.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
870d9b8bd6
wpe: Remove unused env var
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
81a0125a97
wpe: Fix atomic usage
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
3ffd78787d
wpe: Add a note able requiring tracing subsystem for message forwarding
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
c38e0cfdb0
wpe: Fix check on whether MEMFD_CREATE is available
...
The ordering of the ifdef was wrong
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
d93131bfee
wpe: Plug a leak
...
We were freeing after returning
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Thibault Saunier
ca1812f38c
Revert "wpe: Properly respect LIBGL_ALWAYS_SOFTWARE"
...
This causes issues I didn't see:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252#note_927633
Let's just tell people to use capsfilter to force software rendering in
`wpesrc` for now.
The intent was to allow forcing it easily in playbin2 for the CI, but
we will do it some other way and see when time comes.
This reverts commit 9415106b02
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2273 >
2021-06-08 03:15:05 +00:00
Nicolas Dufresne
56b56e43f3
waylandsink: Fix for missing initial configure
...
We were doing our initial "empty" commit on the subsurface instead of the
toplevel surface. As an incidence, we should not have received a configure
event ever, not just on mutter. This fixes the following warning when using
mutter compositor (aka gnome-shell):
waylandsink wlwindow.c:304:gst_wl_window_new_toplevel: The compositor did not send configure event.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2299 >
2021-06-02 14:17:13 -04:00
Philippe Normand
064428cb34
webrtcbin: Stop transceivers update after first SDP error
...
When invalid SDP is supplied, _update_transceiver_from_sdp_media() sets the
GError, so it is invalid to continue any further SDP processing, we have to exit
early when the first error is raised.
Fixes #1595
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2254 >
2021-05-30 00:16:10 +00:00
Roman Sivriver
0b551382c4
hlssink2: Initialize debug category to prevent an assert with fatal-warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2288 >
2021-05-28 17:14:43 -04:00
Tim-Philipp Müller
8e04651b8b
Use gst_buffer_new_memdup()
...
Update for function rename in core.
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/827
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2281 >
2021-05-24 19:05:27 +01:00
Philippe Normand
a0b37e9d1a
wpe: Bump wpebackend-fdo version requirement to 1.8
...
Debian bullseye has this version already, and this allows us to get rid of many
ifdefs. The mouse scroll handling is actually functional now as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2278 >
2021-05-23 17:18:20 +00:00
Tim-Philipp Müller
0151276d7f
Use new gst_buffer_new_copy()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2279 >
2021-05-23 17:20:16 +01:00
Thibault Saunier
818db8f0b3
wpe: Bump WPE dependency to 2.28
...
The new audio feature depends on WPE 2.28 so we should just bump our
requirement to that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2264 >
2021-05-19 18:50:29 -04:00
Thibault Saunier
c98fe5b7f9
wpe: Update doc cache
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:16 +00:00
Thibault Saunier
9415106b02
wpe: Properly respect LIBGL_ALWAYS_SOFTWARE
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Thibault Saunier
4dbfae0105
wpe: Relay messages from WPE internal pipelines
...
It is based on a tracer as it allows us to very easily get
every message that are posted on any bus inside the process.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Thibault Saunier
a92d4373ad
wpe: Base wpe audio implementation on a web extension
...
This makes the implementation simpler and enable us to map
webviews and audio stream much more easily
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Philippe Normand
81ced7932f
wpe: Enable WebAudio
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Philippe Normand
f4bc5c6c65
wpe: Implement audio support
...
The wpesrc bin now exposes "sometimes" audio src pads, one for every PCM audio
stream created by WPEWebKit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Thibault Saunier
cb4f6c877e
wpe: Move wpesrc to wpevideosrc and add a wrapper bin wpesrc
...
Currently the bin contains a single element but we are going
to implement audio support and expose extra pads for audio
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 >
2021-05-19 13:41:15 +00:00
Doug Nazar
be1c154f33
sctp: Ensure pad is still a child of element before removal
...
During pipeline shutdown there are several competing paths to remove
pads. Avoids tests failing due to:
Unexpected critical/warning: Padname '':sink_1 does not belong to element sctpenc1 when removing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2256 >
2021-05-19 05:49:48 +00:00
Doug Nazar
5663db236f
sctp: Fix race of pad removal during reset/stop
...
Both reset & stop remove existing pads. Can result in warning from
gst_element_remove_pad().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2256 >
2021-05-19 05:49:48 +00:00
Doug Nazar
4fcfd5b7f9
webrtcbin: Fix race bringing up sctp data channel
...
Notifying before pads are linked can cause the stream to fail to start.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2256 >
2021-05-19 05:49:48 +00:00
Matthew Waters
a836bd4766
webrtcbin: advertise harder the rtcp-mux-only requirement
...
And ignore rtcp ICE candidates
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2239 >
2021-05-19 04:42:56 +00:00
Sid Sethupathi
abe7e724ed
webrtcbin: update default jb latency docs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2242 >
2021-05-19 03:53:55 +00:00
Doug Nazar
20ca07d174
dtls: Let sender know when we are flushing
...
Prevents endless loop during shutdown where we end up sending 0 bytes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2229 >
2021-05-19 03:21:58 +00:00
Doug Nazar
8b8428aec2
dtls: Add ability to set custom GstFlowReturn on callback error
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2229 >
2021-05-19 03:21:58 +00:00
Olivier Crête
3bdf1e691e
webrtc: Remove reundundant context object in transportsendbin
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2260 >
2021-05-18 20:26:38 -04:00
Olivier Crête
51821644ba
webrtc: Wait until ICE is connected to start DTLS handshake process
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2260 >
2021-05-18 20:18:28 -04:00
Olivier Crête
b6965e9906
webrtcbin: Remove pad probe on nicesink
...
This pad probe is no longer necessary, libnice now drops
all buffers before the stream is connected. This pad problem
also caused deadlocks in some situations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2260 >
2021-05-18 19:08:48 -04:00
Olivier Crête
28bd479ea2
kate: Initialize debug categories
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2258 >
2021-05-18 13:22:49 +00:00
Olivier Crête
761206291b
openh264: Don't use GOnce for ABI check
...
It turns out the value used for g_once_* APIs can't be
zero. And this is a very cheap check, so let's just do it every time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2240 >
2021-05-13 21:40:02 +00:00
Olivier Crête
f34be8a3bd
webrtcbin: Intersect answer with codec prefs & capabilities
...
In case the local capabilities changed since the last negotiaton,
we need to re-intersect and see if the result would be different.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183 >
2021-05-13 15:05:00 -04:00
Olivier Crête
3065ac49fb
webrtcbin: Ignore current caps for codec negotiation
...
On the sink pad, we want the caps of the current stream, those
are the "received_caps" field. If we haven't received caps yet, then
we only care about the caps that the next element can accept, that is
the caps from the peer pad (and the preferences). Otherwise, we prevent
re-negotiation to a better codec when possible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183 >
2021-05-13 15:05:00 -04:00
Olivier Crête
4bb94c6970
webrtcbin: Remove dead code
...
The function is only called to create an offer, so no
need to pass the offer parameter and then check it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183 >
2021-05-13 15:05:00 -04:00
Olivier Crête
f6345b4b03
webrtcbin: Refactor codec preference retrieval
...
Now intersect against pads on both sides if they are available.
If the intersection fails, we now just reject the creation of the offer
or answer as it means that the codec_preferences are too restrictive or
that the caps on both sides the webrtcbin are not compatible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183 >
2021-05-13 15:05:00 -04:00
Olivier Crête
48f4498801
webrtcbin: Intersect codec preferences with caps from pads
...
When creating an offer or an answer, also take into account
the caps on the pads as well as the codec preferences when both are set.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183 >
2021-05-13 15:05:00 -04:00
Olivier Crête
70befc0b21
webrtcbin: Implement caps queries on sinkpad based on codec preferences
...
Also includes a unit test.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183 >
2021-05-13 15:05:00 -04:00
Olivier Crête
dc6655542d
webrtcbin: Hold transceiver lock when accessing codec_preferences
...
This is required to allow the applications to modify the preferences.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183 >
2021-05-13 15:05:00 -04:00