Seungha Yang
360a195158
d3d11memory: Protect map and unmap with device lock
...
We should lock memory object with gst_d3d11_device_lock() first
then GST_D3D11_MEMORY_LOCK() need to be used.
One observed deadlock case is that:
- Thread A takes d3d11 device lock
- At the same time, Thread B tries CPU map to d3d11memory which requires
d3d11 device lock as well, but it's already taken by Thread A.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2267 >
2021-05-20 11:19:44 +00:00
Seungha Yang
7a0bc2a91d
d3d11memory: Add trace log for debugging locking thread
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2267 >
2021-05-20 11:19:44 +00:00
Seungha Yang
1f743c8d84
audiolatency: Drop incoming downstream stick events
...
stream-start, caps, and segment events will be pushed by internal
audiotestsrc element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2265 >
2021-05-20 15:50:55 +09:00
Seungha Yang
3bd600741c
audiolatency: Use live mode audiotestsrc
...
Expected use case of audiolatency element is that mimic audio capture
device which is most likely live source. So audiolatency element
should use live mode as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2265 >
2021-05-20 15:41:50 +09: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
Seungha Yang
4872b41448
d3d11compositor: Fix missing D3D11 prefix
...
Fix typo, no functional change
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2262 >
2021-05-20 00:51:08 +09: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
Víctor Manuel Jáquez Leal
d09aae68a5
libs: va: Documentation and annotations.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2196 >
2021-05-18 12:15:36 +02:00
He Junyan
c335f00d62
examples: va: Update the VA examples because of the new va lib.
...
Because we introduce the new va lib, the va examples need to include
new header files and add more library linkage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2196 >
2021-05-18 12:15:36 +02:00
Víctor Manuel Jáquez Leal
031b77ce97
libs: va: display_wrapper: Use gpointer for VADisplay.
...
In order to be coherent along all the implementation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2196 >
2021-05-18 12:15:36 +02:00
He Junyan
e0915ce982
libs: va: Move the VA common logic as a lib.
...
The VA acceleration now has more usages in linux-like platforms,
such as the MSDK. The different plugins based on the VA acceleration
need to share some common logic and types. We now move the display
related functions and types into a common va lib.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2196 >
2021-05-18 12:15:30 +02:00
mkba
19b8d79e7d
msdk: add profile main-still-picture for hevc encoder
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2253 >
2021-05-18 01:29:55 +00:00
Seungha Yang
5c4a13b5a0
interlace: Fix too small buffer size error
...
Even though input/output resolutions are identical there, default
buffer size of progressive and interleaved formats could be different
because we are rounding up height of all plane of interlaced frame
to be multiple of two.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2244 >
2021-05-17 08:49:30 +00:00
Haihao Xiang
bda11a3e73
msdk: use MFXJoinSession() to join the parent and child sessions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503 >
2021-05-17 01:58:24 +00:00
Haihao Xiang
cd3a3534c4
msdk: use a new method to create mfx session when using oneVPL dispatcher
...
In oneVPL, MFXLoad() and MFXCreateSession() are required to create a
workable mfx session[1]
[1] https://spec.oneapi.com/versions/latest/elements/oneVPL/source/programming_guide/VPL_prg_session.html#onevpl-dispatcher
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503 >
2021-05-17 01:58:24 +00:00
Haihao Xiang
beda9a7333
msdk: allow user build this plugin against MFX version 2.2+ (oneVPL)
...
Intel oneVPL SDK (oneVPL) is a successor to Intel Media SDK (MSDK)[1].
User may use -Dmfx_api=MSDK or -Dmfx_api=oneVPL to specify the required
SDK when building this plugin. If the SDK is not specified, meson will
try MSDK firstly, then oneVPL if MSDK is not available
Version 2.2+ is required in this patch because pkg-config file was not
provided officially before version 2.2
[1]https://spec.oneapi.com/versions/latest/elements/oneVPL/source/appendix/VPL_intel_media_sdk.html
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503 >
2021-05-17 01:58:24 +00:00
Haihao Xiang
5e02cec1c1
msdkvp9dec: do not include mfxvp9.h
...
The VP9 related definitions in mfxvp9.h are available under the
condition of 'MFX_VERSION >= MFX_VERSION_NEXT', which implies that these
definitions are never used in a public release.
This is in preparation for oneVPL support because mfxvp9.h was
removed from oneVPL
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503 >
2021-05-17 01:58:24 +00:00
Haihao Xiang
967c835ea6
msdk: don't load user plugins for MFX version 2.0+
...
MFX version 2.0+ no longer supports user plugins, please refer to the
links for details
https://spec.oneapi.com/versions/latest/elements/oneVPL/source/appendix/VPL_intel_media_sdk.html#msdk-full-name-feature-removals
https://github.com/oneapi-src/oneVPL
This is in preparation for oneVPL support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503 >
2021-05-17 01:58:24 +00:00
Haihao Xiang
73cd763b01
msdk: exclude the audio code for MFX version 2.0+
...
MFX version 2.0+ no longer supports audio functions, please refer to the
links below for details
https://spec.oneapi.com/versions/latest/elements/oneVPL/source/appendix/VPL_intel_media_sdk.html#msdk-full-name-feature-removals
https://github.com/oneapi-src/oneVPL
This is in preparation for oneVPL support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1503 >
2021-05-17 01:58:24 +00:00
Nicolas Dufresne
e7b962d9b5
alphacombine: Ignore all events coming from the alpha_pad
...
As per usage of this element, everything from this pad is a
duplicate. Instead of implemented needless aggregation, simply
drop all events from this pad and let the one from the main stream
passthrough. Also stop proxying some queries from the alpha pad_too.
This fixes racy test failure:
- validate.file.playback.scrub_forward_seeking.opus_vp9-alpha_webm
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2247 >
2021-05-14 14:11:39 -04:00
Nicolas Dufresne
0484d658a8
codecalphademux: Do not set a GstFlowReturn from a boolean
...
This was a small overlook, gst_pad_send_event() returns a boolean,
so setting it into ret could confuse the flow combiner. Though,
it didn't bug, since both 0 and 1 are success (though 1 being
undefined).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2247 >
2021-05-14 14:11:39 -04:00
Nicolas Dufresne
35775f1aec
codecalphademux: Remove eos flow return workaround
...
It turns out that downstream returning OK after EOS is a bug in
multiqueue. As we moved to queue, we no longer have this issue.
Let's keep the code clean and just assuming that downstream will
keep returning EOS and allow convergence of flow.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2247 >
2021-05-14 14:11:39 -04: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
8b595e7c8b
webrtc test: Print content of error GstMessage
...
Makes it easier to interpret the result of the CI!
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183 >
2021-05-13 16:37:31 -04:00
Olivier Crête
78d2d6cf6f
webrtcbin tests: Add test for intersection src pad caps
...
This checks that the codec preferences are intersected also with what
the src pad can handle.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183 >
2021-05-13 16:37:31 -04:00
Olivier Crête
cc556452ce
webrtc test: Add explicit test clock
...
This way the test clock is not linked to the multiple harnesses
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2183 >
2021-05-13 15:05:00 -04: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
2aa7efedd3
webrtc test: Add test for codec preferences negotiation
...
Validate that it does the intersection with the caps from
the sink pad and rejects the offer creation otherwise.
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