Víctor Manuel Jáquez Leal [Thu, 22 Apr 2021 15:07:28 +0000 (17:07 +0200)]
va: display: Fix typo.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
Víctor Manuel Jáquez Leal [Thu, 22 Apr 2021 10:42:35 +0000 (12:42 +0200)]
va: allocator: Hack for i965 to get linear RGB DMABufs.
i965 driver has a hack to provide linear dmabufs, which is required for RGB
formats, since they are directly uploaded by glupload, ignoring tiled modifiers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
Víctor Manuel Jáquez Leal [Thu, 22 Apr 2021 13:51:27 +0000 (15:51 +0200)]
va: postproc: Remove unused parameter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
Víctor Manuel Jáquez Leal [Wed, 31 Mar 2021 09:04:17 +0000 (11:04 +0200)]
va: postproc: Set usage hint generic if DMABuf.
iHD driver sets a tiled DRM modifier if surface's usage hint is set to
VPP_WRITE. This result in a garbled rendering when using glimagesink.
This patch changes the usage hint to generic if the caps feature is
DMABuf. Either way only iHD driver, so far, uses the usage hint flag.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
Víctor Manuel Jáquez Leal [Tue, 20 Apr 2021 10:52:26 +0000 (12:52 +0200)]
va: postproc: Get info from caps in decide_allocation()
decide_allocation() occurs before set_caps(), where out_info is set,
thus setting srcpad_info with zeros or old values. Instead of it, the
caps, from the allocation query, are converted and used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2127>
Timo Wischer [Fri, 23 Apr 2021 11:56:43 +0000 (13:56 +0200)]
avtp: crf: Remove superfluous sink_event variable
This variable was introduced by commit
12ad2a4bcd6c ("avtp: Introduce
the CRF Sync Element") but it was never used:
$ git log -G "sink_event" -- ext/avtp
Signed-off-by: Timo Wischer <timo.wischer@de.bosch.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2201>
Haihao Xiang [Mon, 17 Feb 2020 06:11:15 +0000 (14:11 +0800)]
msdkh265dec: Add support for error report too
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/909>
Haihao Xiang [Fri, 6 Dec 2019 04:48:37 +0000 (12:48 +0800)]
msdkh264dec: report error to user
Sometimes user want to know what the error is when decoding a stream,
This commit adds a property of report-error to msdkh264dec. When
report-error is TRUE, msdkh264dec may catch bitstream error and frame
corruption, then report the error to application by using GST_ELEMENT_ERROR
Refer to the code in
https://github.com/Intel-Media-SDK/MediaSDK/tree/master/samples
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/909>
Haihao Xiang [Fri, 6 Dec 2019 04:02:50 +0000 (12:02 +0800)]
msdkdec: allow sub class to add extra parameters for additional configuration
MSDK allows user add extended buffers to a bitstream for additional
configuration. This commit is to support this feature in this plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/909>
Seungha Yang [Tue, 27 Apr 2021 12:52:31 +0000 (21:52 +0900)]
d3d11: Handle device change
If incoming buffer holds other d3d11 device, and user wants any device
(i.e., adapter index wasn't specified explicitly) update our device
with that of buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2191>
Seungha Yang [Fri, 23 Apr 2021 10:29:55 +0000 (19:29 +0900)]
d3d11videosink: Delay window setup as much as possible
... so that videosink can handle device update with
d3d11 device of the first buffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2191>
Seungha Yang [Fri, 23 Apr 2021 09:44:41 +0000 (18:44 +0900)]
d3d11: Don't accept buffer pool which holds different device
At the moment, d3d11 plugin doesn't support texture sharing between
different device
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2191>
Seungha Yang [Fri, 23 Apr 2021 09:45:48 +0000 (18:45 +0900)]
d3d11decoder: Run gst-indent
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2191>
Aaron Boxer [Tue, 23 Feb 2021 16:56:53 +0000 (11:56 -0500)]
onnx: add plugin to apply ONNX neural network models to video
This MR provides a transform element that leverage ONNX runtime
to run AI inference on a broad range of neural network toolkits, running
on either CPU or GPU. ONNX supports 16 different providers at the
moment, so with ONNX we immediately get support for Nvidia, AMD, Xilinx
and many others.
For the first release, this plugin adds a gstonnxobjectdetector element to
detect objects in video frames. Meta data generated by the model is
attached to the video buffer as a custom GstObjectDetectorMeta meta.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1997>
Sebastian Dröge [Mon, 26 Apr 2021 15:00:27 +0000 (18:00 +0300)]
decklinkvideosrc: Fix AFD/Bar VANC size check
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2193>
Sebastian Dröge [Fri, 23 Apr 2021 15:05:06 +0000 (18:05 +0300)]
decklinkvideosrc: Automatically detect widescreen vs. normal NTSC/PAL
Based on the AFD aspect ratio flag the source can detect (in mode=auto)
whether this NTSC/PAL mode is actually a normal or a widescreen one and
select the caps according to that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2193>
Olivier Crête [Tue, 30 Mar 2021 16:39:21 +0000 (12:39 -0400)]
jpegparse: Don't generate timestamp for 0/1 framerates
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2194>
Seungha Yang [Fri, 23 Apr 2021 14:20:54 +0000 (23:20 +0900)]
d3d11decoder: Set flushing to internal pool on flush event
d3d11 decoders use internal pool for DPB texture and
Gst*Decoder::new_picture() will be blocked if internal pool is full.
We should be able to unblock in on flush-start event as expected.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2192>
Seungha Yang [Fri, 23 Apr 2021 07:53:16 +0000 (16:53 +0900)]
d3d11: Fix wrong GstD3D11BufferPool type check
Fix typos
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2190>
Thibault Saunier [Wed, 31 Mar 2021 21:07:40 +0000 (18:07 -0300)]
rtpsrc: Fix wrong/NULL URI handling
We can reset the URI to NULL and this fix a deadlock in that case or
when the URI was invalid.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2132>
Nazar Mokrynskyi [Thu, 22 Apr 2021 16:45:27 +0000 (16:45 +0000)]
webrtcbin: downgrade "dropping ICE candidates from SDP" from warning to debug level
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2187>
Olivier Crête [Sat, 17 Apr 2021 00:39:35 +0000 (20:39 -0400)]
webrtcbin: Attach rtpbin even for data channels
This is required because the same transport may later be used for RTP.
In which case the RTCP needs to flow bi-directionnally already.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2172>
Frederich Munch [Thu, 4 Mar 2021 08:41:09 +0000 (00:41 -0800)]
Fix missing unref of nice-agent causing sockets to never close.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1960>
Doug Nazar [Thu, 22 Apr 2021 20:09:40 +0000 (16:09 -0400)]
webrtc: Fix sctp task's return type.
GstWebRTCBinFunc expects a GstStructure* return type.
Fixes segfault on PowerPC.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2188>
Seungha Yang [Thu, 22 Apr 2021 06:50:15 +0000 (15:50 +0900)]
mfvideoenc: Fix UWP build
Add missing GST_MF_HAVE_D3D11 define guard
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2185>
Seungha Yang [Thu, 22 Apr 2021 06:42:23 +0000 (15:42 +0900)]
wasapi2: Fix UWP build
KSAUDIO_SPEAKER_* defines are WINAPI_PARTITION_DESKTOP only
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2185>
Mathieu Duponchelle [Wed, 21 Apr 2021 19:43:59 +0000 (21:43 +0200)]
tsdemux: fix truncated output segment when seeking with a stop
In disabling the stop adjustment for negative rates in
03031037fafd2d535bbefb1fdf6024b5d1159043 , two instructions
were inverted resulting in the stop always being adjusted by
0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2182>
Doug Nazar [Wed, 21 Apr 2021 03:51:49 +0000 (23:51 -0400)]
tests/netsim: Set src caps before creating buffers
GstHarness requires the source pad caps to be set before
buffer allocations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2179>
Seungha Yang [Mon, 19 Apr 2021 17:00:18 +0000 (02:00 +0900)]
d3d11: Add support for BGRx and RGBx formats
For such formats, we can re-use existing BGRA/RGBA implementations
but ignoring alpha channel
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2174>
Seungha Yang [Tue, 20 Apr 2021 09:37:15 +0000 (18:37 +0900)]
wasapi2: Implement default audio channel mask
Some capture devices might not provide channel mask value which will
result in capturing failure because of unknown channel mask in case
that device generates more than 2 channels. Although it might not
be correct, we can assume channel mask with the given number of channels.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2177>
Seungha Yang [Tue, 20 Apr 2021 09:40:40 +0000 (18:40 +0900)]
wasapi2clinet: Simplify set caps
Don't need to iterate all structure to set identical values
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2177>
Seungha Yang [Tue, 20 Apr 2021 09:48:18 +0000 (18:48 +0900)]
wasapi2client: Run gst-indent
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2177>
Olivier Crête [Tue, 13 Apr 2021 21:35:58 +0000 (17:35 -0400)]
webrtcbin test: Don't fail if data channel is created
In tests that voluntarily create a data channel.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2168>
Olivier Crête [Mon, 19 Apr 2021 23:06:50 +0000 (19:06 -0400)]
webrtcbin: Filter caps isn't fixed
Fix an assertion because the filter paramter passed to
gst_caps_is_equal_fixed() wasn't fixed. So use the regular
gst_caps_is_equal() instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2175>
Seungha Yang [Mon, 19 Apr 2021 17:04:03 +0000 (02:04 +0900)]
d3d11: Update plugin doc cache
Updating for removed d3d11videosink wrapper bin and the change of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2113
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2169>
Seungha Yang [Sat, 17 Apr 2021 11:37:13 +0000 (20:37 +0900)]
d3d11: Remove d3d11videosink wrapper bin
Drop d3d11videosink wrapper bin and handle texture upload
in d3d11videosink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2169>
Philippe Normand [Sun, 18 Apr 2021 12:49:59 +0000 (13:49 +0100)]
webrtcdsp: Propagate VAD to audio level meta
Whenever the voice activity changed on the stream, update or create an
AudioLevelMeta and associate it to the corresponding buffer.
Fixes #1073
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2170>
Sebastian Dröge [Mon, 19 Apr 2021 10:06:23 +0000 (13:06 +0300)]
cccombiner: Use correct enum when registering the max-scheduled property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2171>
Thibault Saunier [Thu, 15 Apr 2021 18:06:59 +0000 (14:06 -0400)]
wpe: Remove code targeting WebKit < 2.24
We already depend on wk >= 2.24
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2165>
Thibault Saunier [Thu, 15 Apr 2021 17:28:42 +0000 (13:28 -0400)]
wpe: Make threaded view singleton creation thread safe
It was leading to interesting failures.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2165>
Seungha Yang [Wed, 14 Apr 2021 15:02:55 +0000 (00:02 +0900)]
d3d11: pluginutils: Fix wrong gst_memory_unmap() on _map() failure
It was obvious typo
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2164>
Doug Nazar [Tue, 13 Apr 2021 21:15:22 +0000 (17:15 -0400)]
tests/avtp: increase timeout of test_depayloader_fragmented_big
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2160>
Doug Nazar [Wed, 14 Apr 2021 05:59:23 +0000 (01:59 -0400)]
check: fix dash_mpdparser_check_mpd_client_set_methods test.
Setting guint64 valist properties without type specifier fails
on 32bit archs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2161>
Doug Nazar [Tue, 13 Apr 2021 20:34:15 +0000 (16:34 -0400)]
line21enc: fix remove-caption-meta property test
It's possible for the same address to be allocated to the decoded
metadata. Switch test to actual detect if it was removed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2159>
Doug Nazar [Tue, 13 Apr 2021 10:40:43 +0000 (06:40 -0400)]
tests: fix shm test deadlock
Stopping the consumer first would occasionally allow the producer
to fill the shm segment causing it to block in send() and unable
to be stopped.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2158>
Doug Nazar [Tue, 13 Apr 2021 09:54:37 +0000 (05:54 -0400)]
check: Fix test dash_mpdparser_xlink_period
Test used http://404/ERROR/XML.period as an invalid url. Curl now
interprets that as an 32bit int and tries an actual connect which
timesout. Use .invalid as an IANA reserved domain for invalid DNS.
curl -v http://404/ERROR/XML.period
* Trying 0.0.1.148:80...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2157>
He Junyan [Tue, 13 Apr 2021 07:42:09 +0000 (15:42 +0800)]
va: allocator: Fix an unmap typo in _va_copy.
No need to unmap the the src memory when failing to allocate the
dst mem. It has not been mapped yet.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2156>
Haihao Xiang [Tue, 6 Apr 2021 04:03:32 +0000 (12:03 +0800)]
msdk: don't fall back to the default device
Ohterwise when user set a wrong device, the warning message doesn't get
printed if user doesn't set a right debug level in the environment, this
behavior might mislead user that the wrong device is being used.
This fixed https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1567
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2138>
Olivier Crête [Mon, 12 Apr 2021 21:54:31 +0000 (17:54 -0400)]
webrtcbin: Simplify answer_caps intersection code a little
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Mon, 12 Apr 2021 19:35:41 +0000 (15:35 -0400)]
webrtcbin test: Wait for set-local-desc & set-remote-desc to continue
To avoid racing betwen the SDPs being set and the next step of the
test, let's wait for setting the SDP both locally and remotely to succeed.
of the test
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Thu, 1 Apr 2021 18:51:30 +0000 (14:51 -0400)]
webrtcbin: Move GstPromise reply to operation framework
This makes it possible to reply to all promises in a consistent way
without having to do a unlock/relock that is always risky.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Thu, 1 Apr 2021 18:41:11 +0000 (14:41 -0400)]
webrtcbin: Make sure PC_LOCK is release when replying to promise
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Wed, 31 Mar 2021 15:56:10 +0000 (11:56 -0400)]
webrtcbin: Take PC lock around all entry points
All of those action signals change the internal state, so
protect it by using the PC_LOCK
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Wed, 31 Mar 2021 15:49:36 +0000 (11:49 -0400)]
webrtcbin: Take PC_LOCK when requesting new pad
This is needed to avoid having the state change under us.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Wed, 31 Mar 2021 15:41:45 +0000 (11:41 -0400)]
webrtcbin test: Add for the case where a second m-line is renegotiated
This is for the case where there answerer forces a specific media type
for a m-line, but he origin offer only has the other media type. In this
case, we will create a second transceiver on receiving the offer and add
the desired media type using renegotiation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Wed, 31 Mar 2021 15:40:28 +0000 (11:40 -0400)]
webrtcbin: Ensure that query caps method returns valid caps
This means rejecting any caps that aren't fixed. Also, use a filter
that will create unfixed caps if the other side just returns ANY.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Wed, 31 Mar 2021 15:33:21 +0000 (11:33 -0400)]
webrtcbin: Associate the stream with a new transceiver
Otherwise, this newly created transceiver has no stream and it
aborts later when it tries to connect the input pad.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Wed, 31 Mar 2021 15:30:16 +0000 (11:30 -0400)]
webrtcbin: Match unassociated transceiver by kind too
When a new m-line comes in that doesn't have a transceiver, only match
existing transceivers of the same kind.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Tue, 30 Mar 2021 22:01:56 +0000 (18:01 -0400)]
webrtcbin: Fix typoe in name of error GstStructure
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Tue, 30 Mar 2021 20:16:50 +0000 (16:16 -0400)]
webrtc test: Verify that forcing different kinds on peers fails
If the offer contains an audio kind and a video kind, forcing them both
at m-line zero will fail.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Tue, 30 Mar 2021 20:04:33 +0000 (16:04 -0400)]
webrtc tests: Verify that create-offer is rejected when needed
Verify that it gets rejected if a m-line at index 1 is requested but
there is no m-line 0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Mon, 29 Mar 2021 23:47:21 +0000 (19:47 -0400)]
webrtcbin test: Add test for various cases where get_request_pad is meant to fail
This should ensure that the recently added code works.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Sat, 27 Mar 2021 01:09:04 +0000 (21:09 -0400)]
webrtcbin: Enforce direction on request sink pad with a specific name
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Sat, 27 Mar 2021 00:55:36 +0000 (20:55 -0400)]
webrtcbin: Try to match an existing transceiver on pad request
This should avoid creating extra transceivers that are duplicated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Sat, 27 Mar 2021 00:02:13 +0000 (20:02 -0400)]
webrtcbin: Validate locked m-lines in set*Description
Verify that the remote description match the locked m-lines, otherwise
just reject the SDP.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Fri, 26 Mar 2021 23:38:57 +0000 (19:38 -0400)]
webrtcbin: Remove unused session_mid_map
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Fri, 26 Mar 2021 22:15:50 +0000 (18:15 -0400)]
webrtcbin: Enforce m-line restrictions when creating offer
First fail the offer creation if the mid of an existing offer doesn't
match a forced m-mline.
Then, for all newly added mlines, first look for a transceiver that
forces this m-line, then add a "floating" one, then the data channel.
And repeat this until we're out of transceivers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Fri, 26 Mar 2021 19:57:15 +0000 (15:57 -0400)]
webrtcbin: Remember if a transceiver had a forced m-line
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Fri, 26 Mar 2021 19:54:35 +0000 (15:54 -0400)]
webrtcbin: Enforce same-kind on request sink pad with a specific name
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Fri, 26 Mar 2021 19:23:34 +0000 (15:23 -0400)]
webrtcbin: Enforce compatible caps on pad request
If a pad is requested with certain caps and there is already a
transceiver, reject the pad request if the caps don't match.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Fri, 26 Mar 2021 19:19:09 +0000 (15:19 -0400)]
webrtcbin: Reject pad request for a specific m-line if it already exists
This way, the app developer is in control.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Fri, 26 Mar 2021 19:02:50 +0000 (15:02 -0400)]
webrtcbin: Make request-pad validation an early return
This reduces the indendation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Fri, 26 Mar 2021 18:48:58 +0000 (14:48 -0400)]
webrtcbin: Add document for webrtcbin itself to generated doc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Wed, 24 Mar 2021 00:18:24 +0000 (20:18 -0400)]
webrtcbin test: Test adding a stream to a stream+datachannel
This use-case was previously broken by the expectation of having
a 1-1 match between the pad id and the m-line index
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Tue, 23 Mar 2021 23:51:00 +0000 (19:51 -0400)]
webrtc: Reset received_caps when releasing pad
This is to work around a race where the pad is accessed in the
webrtc main thread while being released.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Olivier Crête [Tue, 23 Mar 2021 21:51:16 +0000 (17:51 -0400)]
webrtcbin: Split pad name from mline
The simple case where this breaks is if you add a
datachannel and want to add a new pad (a new media) after). Another
case where this is broken is if the order of the media is forced to
something different by the peer.
It's more simple to just split both things completely. In practice, the
pads will be named in the order in which they are allocated, so it
shouldn't change the current behaviour, just enable new ones.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
Jan Schmidt [Wed, 24 Feb 2021 18:04:00 +0000 (05:04 +1100)]
switchbin: When collecting srcpad caps, don't intersect with path caps.
The path caps describe the input caps that will select each path, don't
intersect those with the srcpad caps, which could be completely
different. Instead, when querying allowed caps for the srcpad, just
construct the union of all possible output caps from all path srcpads.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2018>
Jan Schmidt [Tue, 16 Feb 2021 04:00:07 +0000 (15:00 +1100)]
switchbin: Don't report sink pad caps for src pad queries.
When handling a caps query on the src pad, don't return the union
of input caps. Even when not active, a path element can be queried
for srcpad template caps, or for dropping paths the allowed downstream
caps is anything - as data will be dropped anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2018>
Stéphane Cerveau [Thu, 25 Feb 2021 14:22:15 +0000 (15:22 +0100)]
gst-plugins: allow per feature registration
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2110>
Helmut Januschka [Sat, 10 Apr 2021 18:34:26 +0000 (20:34 +0200)]
allow NetStream.Play.PublishNotify Message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2154>
Stéphane Cerveau [Fri, 26 Mar 2021 10:00:50 +0000 (11:00 +0100)]
plugins-sys: allow per feature registration
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2116>
Seungha Yang [Thu, 8 Apr 2021 16:54:50 +0000 (01:54 +0900)]
codecs: vp9decoder: Update docs
* Remove "FIXME 1.20": All the bits are addressed already by using
vp9parse element
* Fix copy & paste errors: Some comments were copied from h264decoder
blindly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2151>
Seungha Yang [Fri, 9 Apr 2021 03:45:46 +0000 (12:45 +0900)]
codecs: vp9decoder: Make duplicate_picture() vfunc optional
The default implementation was required when superframe parsing
was handled by vp9decoder. For instance, if a superframe consists
of multiple frames with show_existing_frame header, it was vague
that which GstVp9Picture should consume GstVideoCodecFrame.
After 1.18 release, we introduced vp9parse element and
superframe should be handled by upstream vp9parse elemenet now.
So, we don't need to care about the superframe at vp9decoder class
level anymore. Simply, a frame corresponding to show_existing_frame
can be dropped if subclass doesn't implement duplicate_picture().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2151>
Philippe Normand [Tue, 30 Mar 2021 13:40:53 +0000 (14:40 +0100)]
debugutils: Add fakeaudiosink element
This element can be useful for CI purposes on machines not running any system
audio daemon. The element implements the GstStreamVolume interface.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2125>
Nicolas Dufresne [Thu, 8 Apr 2021 18:53:52 +0000 (14:53 -0400)]
v4l2codecs: allocator: Keep dmabuf mapped
DMABuf allocator already implements DMABuf Sync, meaning that doing
mmap/munmap (unless the mode have changed) is not required. In fact, on
systems with IOMMU it makes the kernel redo the mmu table which is visible
in the CPU usage.
This change reduces CPU usage when decoding
bbb_sunflower_2160p_60fps_normal.mp4 on RK3399 SoC from over 30% to
around 15%.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2152>
Víctor Manuel Jáquez Leal [Sat, 3 Apr 2021 12:16:22 +0000 (14:16 +0200)]
va: allocator: Implement mem_copy for VA memory.
Implementation of mem_copy() virtual method for GstVaAllocator.
It's a deep copy where a new VA memory is popped out from the pool or,
if pool is empty, a new memory is allocated. The original memory is
mapped to read, and if its VAImage is not derived and size to copy is
the whole surface, the mapped VAImage of the original memory is put in
the new memory. Otherwise a slow memcpy is done between both memories.
Fixes: #1568
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2136>
Zhao Zhili [Thu, 8 Apr 2021 12:29:29 +0000 (20:29 +0800)]
srtobject: fix optlen of srt_getsockflag
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2149>
Haihua Hu [Thu, 14 Jan 2021 06:24:06 +0000 (14:24 +0800)]
jpeg2000parse: fix critical log when play one gray colorspace video
Need guess color space based on number of components when cannot
got it from sink caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1955>
Olivier Crête [Fri, 11 Dec 2020 21:33:39 +0000 (16:33 -0500)]
ldacenc: Emit message on errors
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1875>
Olivier Crête [Fri, 11 Dec 2020 21:26:00 +0000 (16:26 -0500)]
sbc: Return hard error on allocation or mapping error
Also post a message on the bus in these cases.wpe: Emit load-progress messages
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1875>
Matthieu De Beule [Sun, 25 Oct 2020 16:39:48 +0000 (16:39 +0000)]
Tell programmers that set_volume uses linear scale (fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1439)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1722>
Olivier Crête [Fri, 11 Dec 2020 19:52:20 +0000 (14:52 -0500)]
sbc/ldac: Don't use GST_CAPS_NONE to mean NULL
The GST_CAPS_NONE macro actually returns a instance of
a empty caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1874>
Seungha Yang [Tue, 30 Mar 2021 08:24:38 +0000 (17:24 +0900)]
codecs: vp9decoder: Allow decoding start with intra-only frame
As per spec "7.2 Uncompressed header semantics" and
"8.2 Frame order constraints", decoding can start with intra-only
frame. This commit is for fixing vp90-2-16-intra-only.webm
bitstream test failure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
Seungha Yang [Sun, 28 Mar 2021 17:11:22 +0000 (02:11 +0900)]
codecs: vp9decoder: Pass GstVideoCodecFrame to duplicate_picture()
... and fix picture duplication logic for vavp9dec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
Seungha Yang [Tue, 30 Mar 2021 02:49:43 +0000 (11:49 +0900)]
codecs: vp9decoder: Port to GstVp9StatefulParser
Use newly implemented VP9 parser. Since new GstVp9FrameHeader
struct holds all the information of the stream, baseclass will not
pass parser object to new_sequence() method anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
Seungha Yang [Sat, 27 Mar 2021 06:32:59 +0000 (15:32 +0900)]
codecparsers: Reimplement VP9 parser
Existing VP9 parser implementation doesn't provide information
required by other stateless decoding APIs (i.e., DXVA and NVDEC),
specifically loop filter and segmentation parameters might not exist
current frame. So parser needs to fill the information by using previously
parsed information.
We can update the gstvp9parser implementation so that it can provide
all information required by stateless decoding APIs with a huge API break,
or adding more ugly struct in it.
Instead doing as such, this commit introduce a new VP9 parser implementation.
What is different from existing one?
* All variables will follow the specification as much as possible:
VP9 Bitstream & Decoding Process Specification - v0.6 31st March 2016
* Parser will fill all the required information for decoding frame
to GstVp9FrameHeader struct. In case of old VP9 parser,
user needs to read additional data from parser's member variables.
* GstVp9StatefulParser object struct is completely completely opaque
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
Seungha Yang [Sun, 28 Mar 2021 07:11:23 +0000 (16:11 +0900)]
codecs: vp9decoder: Don't check codec change with show_existing_frame
Show existing frame will zero frame_type value but it doesn't mean
it's keyframe.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2112>
Nicolas Dufresne [Tue, 6 Apr 2021 20:24:39 +0000 (16:24 -0400)]
v4l2codecs: Fix holding of reference picture buffer
The picture buffer (V4L2 CAPTURE buffer) was being released immediatly
when the request was done. This was problematic since even after the
request is done, the picture buffer might still be used as a reference
and should not be reused for further decoding yet.
This change effectively bind the picture buffer lifetime to the request.
So that if the picture is never showned (decode only frame) or the request
queue is full before the buffer is displayed, the picture buffer will
remain alive.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2142>
Doug Nazar [Wed, 7 Apr 2021 11:48:57 +0000 (07:48 -0400)]
rtmp2: Use correct size of write macro for param2.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2146>
Víctor Manuel Jáquez Leal [Thu, 1 Apr 2021 05:59:45 +0000 (07:59 +0200)]
va: filter: remove unsupported formats because driver's bugs
Add a way to filter out video formats from caps because of unresolved
bugs in drivers. In this case for media-driver (iHD) where some RGB32
formats are not handled correctly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2129>