Nicolas Dufresne
2950c76c8f
va: Add HEVC decoding support
...
This add HEVC decoding support into the new VA plugin. This implementation has
been tested using the ITU comformance test (through fluster). It fails all
MAIN10 tests, as this is not implemented yet along with the following:
CONFWIN_A_Sony_1 (looks fine, but md5sum is incorrect)
PICSIZE_A_Bossen_1 (height too high)
PICSIZE_B_Bossen_1 (same)
VPSSPSPPS_A_MainConcept_1 (parser issue)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1714 >
2020-11-04 17:53:23 +00:00
Nicolas Dufresne
6f556518c8
h265parser: Fix wrong warning message
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1714 >
2020-11-04 17:53:23 +00:00
Nicolas Dufresne
c1502a2bdf
h265decoder: Remove unsued WpOffsetHalfRangeC
...
This is only needed for VA implementation of weight tables and isn't used
within the base class.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1714 >
2020-11-04 17:53:23 +00:00
Seungha Yang
5527cc4a2e
codecs: h264decoder: Rework for DPB management
...
Sync with recent h265decoder DPB implementation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1761 >
2020-11-05 02:26:47 +09:00
Seungha Yang
b70ceb4235
codecs: h264decoder: Remove unused pts variable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1761 >
2020-11-05 00:33:34 +09:00
youngh.lee
49df312086
aiffparse: Also set a channel mask for 2 channels
...
And only do add debug output at FIXME level when using the fallback
channel mask, not for those defined in the AIFF spec.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1756 >
2020-11-04 07:36:47 +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
Seungha Yang
d1f397e754
codecs: h265picture: Minor update for coding style
...
It's GstH265Dpb, not GstH265Decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1755 >
2020-11-02 20:20:56 +00:00
Seungha Yang
db10288382
codecs: h265decoder: Make GstVideoCodecFrame hold the last reference of the buffer
...
The functionality of passing the last reference of GstH265Picture
was silently dropped by the commit eeffd91109
This commit will make it work again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1755 >
2020-11-02 20:20:56 +00:00
Seungha Yang
b69840711e
codecs: h265decoder: Clear GstVideoCodecFrame on DPB clear if needed
...
h265decoder might need to clear DPB depending on context even if
it's not flushing case. So associated GstVideoCodecFrame needs to be
released in case non-flushing case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1755 >
2020-11-02 20:20:56 +00:00
Seungha Yang
16b4fe3d0b
codecs: h265decoder: Don't drain DPB on EOB/EOS/IDR nalu
...
DPB bumping decision per end-of-bitstream, end-of-sequence or IDR nal
should done by spec. In short, draining on EOB/EOS/IDR is undefined
behavior as per spec.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1755 >
2020-11-02 20:20:56 +00:00
Nicolas Dufresne
849b7a315c
h265decoder: Complete dependent slice header
...
This will save the last independent slice and fill in the missing
information for dependent slices. This was left over during the porting
from gstreamer-vaapi. The private variable prev_independent_slice was
already there.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1750 >
2020-11-02 18:20:32 +00:00
Nicolas Dufresne
e3fb5f894f
h265decoder: Prevent possible infinite loop
...
Theoretically, one could produce a broken stream that would lead to
infinite in the specified algorithm to calculate l0/l1 reference lists.
This patch will pearly exit if this condition is met.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1750 >
2020-11-02 18:20:32 +00:00
Nicolas Dufresne
2e2e93c303
h265parse: Add missing const qualifier
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1750 >
2020-11-02 18:20:32 +00:00
Seungha Yang
2f5257fd69
Revert "d3d11decoder: Use D3D11/DXGI standard colorimetry"
...
This reverts commit a52fc6deed
.
The change breaks H264/HEVC conformance bitstream tests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1753 >
2020-11-02 17:58:23 +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
Seungha Yang
a52fc6deed
d3d11decoder: Use D3D11/DXGI standard colorimetry
...
D3D11/DXGI supports smaller set of colorimetry than all possible
combination. This restriction would make more streams convertible
by using ID3D11VideoProcessor
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1743 >
2020-11-02 18:48:58 +09:00
Seungha Yang
a3a7e21f87
d3d11window: Use ID3D11VideoProcessor only if device supports corresponding conversion
...
... and drop support for ID3D11VideoProcessor if device doesn't
support ID3D11VideoContext1 interface and therefore we cannot
query conversion supportability.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1743 >
2020-11-02 18:48:54 +09:00
Seungha Yang
337cb883fa
d3d11h{264,265}dec: Submit picture level parameters only once
...
Submit PICTURE_PARAMETERS and INVERSE_QUANTIZATION_MATRIX
buffers only once per picture. Multiple submission is redundant.
Also this modification would fix broken hevc decoding with
dependent slice.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1749 >
2020-11-01 14:29:42 +00:00
Seungha Yang
eeffd91109
codecs: h265decocer: Rework for DPB management
...
* Move all DPB bumping process into GstH265Dpb internal
* Handle DPB add process in GstH265Dpb struct
* Make implementation to be 1:1 mappable with hevc specification
* Fix wrong DPB bumping implementation especially when no_output_of_prior_pics_flag
was specified.
With fixes from Nicolas Dufresne <nicolas.dufresne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1748 >
2020-11-01 21:46:12 +09:00
Seungha Yang
0bb73ec800
d3d11decoder: Get rid of framerate field from pad template
...
Framerate is optional value and we don't have any framerate
related restriction for those elements. This commit is to fix
negotiation failure when upstream doesn't set framerate on caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1747 >
2020-11-01 00:51:46 +09:00
Jan Schmidt
be131dba6a
tests: Don't set dtlsenc state before linking.
...
Link the dtlsenc in the testsuite before setting it to paused, as it
starts a pad task that can generate a not-linked error otherwise.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1744 >
2020-10-31 21:46:16 +11:00
Jan Schmidt
c1be9c53e1
dtls: Catch bus errors and fail instead of hanging.
...
If the DTLS elements fail, they post a bus error and don't signal any
key negotiation. Catch the bus error and fail the test early instead
of letting it hang and time out.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1741 >
2020-10-31 01:47:06 +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
cca313ecd8
rtpsender: Add API to set the priority
...
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
Olivier Crête
78c687da3e
webrtc: Document more objects
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1707 >
2020-10-30 16:23:10 -04:00
Seungha Yang
9a796482dc
d3d11decoder: Allow 10bits only profiles
...
HEVC_VLD_Main10 and VP9_VLD_10bit_Profile2 might not support
8bit format (i.e., NV12) depending on GPU vendor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1742 >
2020-10-31 00:37:48 +09:00
Sebastian Dröge
f71493a57c
decklink: Remove \n from debug output
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 16:23:31 +02:00
Sebastian Dröge
60b7bd23a8
decklink: Correctly indent everything
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 16:23:31 +02:00
Sebastian Dröge
56b2130300
decklink: Add a default profile id
...
This causes no changes to the profile but keeps the existing settings.
The profile can also be changed from e.g. the card's configuration
application and in that case probably should be left alone.
The default is the new value as it keeps the profile setting as it is,
which is consistent with the previous behaviour in 1.18.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 16:23:31 +02:00
Sebastian Dröge
d1df412d70
decklink: Mark internal function as static
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 13:47:51 +00:00
Sebastian Dröge
1ea2796cfc
decklink: Remove some dead code
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 13:47:51 +00:00
Sebastian Dröge
c6aca271a1
decklink: Update enum value bounds check in gst_decklink_get_mode()
...
The widescreen modes moved after GST_DECKLINK_MODE_2160p60 and using
them now would cause an assertion. This is a regression from
309f6187fe
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1737 >
2020-10-30 10:02:32 +02: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
Xavier Claessens
dd7b672830
amc: Fix crash when encoding AVC
...
gstamcvideoenc.c calls gst_amc_avc_profile_to_string() with alternatives
set to NULL which causes a crash.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1732 >
2020-10-29 17:51:57 +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
Thibault Saunier
d1945de102
transcodebin: Create the decodebin in _init
...
This way user can request pads right from the beginning
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151 >
2020-10-29 13:30:07 +00:00
Philippe Normand
88c96789bf
transcodebin: Accept more than one stream
...
Look-up the stream matching the given ID also after building the stream list
from the received collection. Without this change the transcoder would discard
the second incoming stream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151 >
2020-10-29 13:30:07 +00:00
Thibault Saunier
b254c0d5fe
transcodebin: Port to decodebin3
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151 >
2020-10-29 13:30:07 +00:00
Thibault Saunier
a5fd2a4bc3
uritranscodebin: Move to using a urisourcebin for our source.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151 >
2020-10-29 13:30:07 +00:00
Thibault Saunier
7d1f5e951f
transcoder: Base sync transcoding variant on a GMainLoop
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1151 >
2020-10-29 13:30:07 +00: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