Seungha Yang
1ac30ad53f
interlace: Drop framerate from query caps of sinkpad
...
Query caps should return caps which represent the element can accept,
not resulting format.
Fixing negotiation error with
gst-launch-1.0 videotestsrc ! video/x-raw,framerate=25/1 ! interlace field-pattern=0 ! fakesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2282 >
2021-05-27 08:15:15 +00:00
Seungha Yang
da33921f8d
d3d11compositor: Fix caps update handling
...
New caps is applied only when previous buffer is consumed if any.
So, the lastest given caps might not be corresponding to the current buffer
to be handled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2284 >
2021-05-26 16:42:39 +09:00
Víctor Manuel Jáquez Leal
9514340d2d
libs: va: display: Handle auto clean up macros.
...
Add G_DEFINE_AUTOPTR_CLEANUP_FUNC macro for display classes, so auto
pointers are possible to users.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2269 >
2021-05-26 05:42:33 +00:00
He Junyan
c4bb5f06c9
va: h265dec: Add current picture into reference list for SCC.
...
The current picture is not in the DPB, so we need to add it manually
to the reference list when SCC is enabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2255 >
2021-05-25 12:11:05 +02:00
He Junyan
ceb2df1751
va: h265dec: Set Screen Content extension (SCC) for picture parameters.
...
We already declare the support of HEVC screen content extension profiles
in the profile mapping list, but we fail to generate the correct VA picture
parameters buffers. This may cause the GPU hang.
We need to fill the buffer of VAPictureParameterBufferHEVCExtension correctly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2255 >
2021-05-25 12:11:05 +02:00
He Junyan
bfbb49144c
va: h265dec: Use get_profile_from_sps() to recognize the profile.
...
The function of gst_h265_get_profile_from_sps() is better than the
function gst_h265_profile_tier_level_get_profile() when we recognize
the profile of the stream, becaue it considers the compatibility.
It is also used by h265parse to recognize the profile. So it is
better to keep the same behaviour with the parse and other decoders.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2255 >
2021-05-25 12:11:05 +02:00
He Junyan
08dc70b6f4
va: h265dec: Set range extension for picture and slice parameters.
...
We already declare the support of HEVC range extension profiles in
the profile mapping list, but we fail to generate the correct VA
picture and slice parameters buffers. This may cause the GPU hang.
We need to fill the buffer of VAPictureParameterBufferHEVCExtension
and VASliceParameterBufferHEVCExtension correctly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2255 >
2021-05-25 12:11:05 +02:00
Víctor Manuel Jáquez Leal
0edc2f6b98
va: h265dec: Use picture and slide extension parameters.
...
This is transitional commit to later implement extended and screen
profiles.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2255 >
2021-05-25 12:11:05 +02: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
Daniel Almeida
87d97f01f5
doc: update gst_plugins_cache.json
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1152 >
2021-05-21 21:06:38 -04:00
Jakub Adam
fa05f19f14
dxgiscreencapsrc: renegotiate caps on resolution change
...
When desktop gets resized, recreate the textures and renegotiate the
source caps with the updated video dimensions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2249 >
2021-05-21 17:03:20 +02:00
He Junyan
3bca4045e5
va: h265dec: Set LastSliceOfPic for multi sliced frames.
...
VA-API HEVC decoding needs to known which is the last slice of a
picture, but slices are processed sequencially, so we know the
last slice until all the slices are already pushed into the
VABuffer array.
In order to mark the last slice, they are pushed into the
VABuffer array with a delay of one slice: the first slice is
hold, and when the second slice come, the first one is pushed
while holding the second, and so on. Finally, at end_picture(),
the last slice is marked and pushed into the array.
Co-author: Victor Jaquez <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2246 >
2021-05-21 13:22:03 +02:00
Seungha Yang
8132958b3b
d3d11desktopdupsrc: Add support for desktop size/rotation mode change
...
Re-negotiates with updated size on desktop size
(i.e., resolution, scaling factor), and rotation mode change
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2268 >
2021-05-20 17:05:24 +00:00
Jan Alexander Steffens (heftig)
0312887452
mpegtsmux: Fixup program array indices after stream removal
...
Each stream stores the `program_array_index` of its position in its
program's `streams` array. When we remove a stream from this array, we
need to correct the `program_array_index` of all streams that were
backshifted by the removal.
Also extract the removal into a new function and add some more safety
checks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2266 >
2021-05-20 13:35:06 +00:00
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