Víctor Manuel Jáquez Leal
2ba5854c6b
va: postproc, filter: add disable-passthrough property
...
vapostproc tries to be in passthrough mode as much as possible. But
they might be situations where the user might force to process the
frames. For example, when upstream sets the crop meta and the user
wants VA do that cropping, rather than downstream.
For those situations this property will disable the passthrough mode,
if it's enabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2058 >
2021-04-03 15:47:18 +02:00
Víctor Manuel Jáquez Leal
f4862f8298
va: postproc: enable cropping by crop meta
...
If incoming buffers have crop meta it's done by vapostproc, iif
vapostproc is not in passthrough mode and downstream doesn't handle
it.
This patch announces the crop meta API in proposed bufferpool, while
it stops filtering meta APIs, since it was only filter crop api.
Also if downstream supports crop and video metas, vapostporoc
announces both meta APIs in upstream bufferpool.
Finally, the meta is removed from the buffer if the crop is enabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2058 >
2021-04-03 15:47:18 +02:00
Víctor Manuel Jáquez Leal
c88abb9291
va: filter: add gst_va_filter_enable_cropping ()
...
This will toggle the cropping operation in the filter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2058 >
2021-04-03 15:47:18 +02:00
Víctor Manuel Jáquez Leal
c770469a8a
va: filter, vpp: add and use GstVaSample struct
...
This new struct describes the input and output GstBuffers to
post-process, including VA flags. It also contains the VASurfaceID and
VARectangle, but those are private, completed inside GstVaFilter.
It is used for pass arguments to gst_va_filter_convert_surface() function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2058 >
2021-04-03 15:47:18 +02:00
Víctor Manuel Jáquez Leal
b2a4e066ab
va: postproc: Use allocation caps when creating sink pool.
...
When an input buffer needs to be copied into a VA memory, it's
required to create a buffer pool. This patch uses the
propose_allocation() caps to instantiate the allocator and pool,
instead of the negotiated caps, which rather represents the resolution
to display.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2058 >
2021-04-03 15:47:18 +02:00
Mathieu Duponchelle
ff3cce38b6
line21dec: relax caps requirements
...
Instead of requiring interlaced video, simply skip CC detection
when the input is progressive.
This allows placing line21decoder unconditionally in pipelines,
without having to worry about whether the input stream will be
interlaced, or even worse interlacing just in case!
+ update doc cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1885 >
2021-04-03 00:42:15 +00:00
Mathieu Duponchelle
42586dd536
line21dec: expose mode property
...
That new property can be used to control whether and how
detected CC meta should be inserted in the list of existing
CC meta on the input frame (if there was any).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1885 >
2021-04-03 00:42:14 +00:00
Mathieu Duponchelle
c915cb923e
line21dec: expose ntsc-only property
...
When this is set, the element only tries to detect CC when the
height is 525 or 486 (NTSC resolutions). The height is already
checked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1885 >
2021-04-03 00:42:14 +00:00
Víctor Manuel Jáquez Leal
893aa67710
va: allocator: Use derived images only if not mapped for reading.
...
Derived images are direct maps to surfaces bits, but in Intel Gen7 to
Gen9, that memory is not cachable, thus reading can be very slow (it
might produce timeout is tests such as fluster).
This patch tries first to define if derived images are possible, and
later use them only if mapping is not for reading.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2128 >
2021-04-02 17:39:01 +02:00
Víctor Manuel Jáquez Leal
f987cd8df9
va: caps: Add image formats in raw caps only for non-iHD.
...
This plugin, for decoders more concretely, assumes that a VA config
can do certain color conversions when mapping frames onto CPU's
memory.
This assumption was valid for i965 and Gallium drivers which generates
valid outputs in bitstreams testers (v.gr. fluster). Nonetheless, iHD,
even when it generates acceptable rendered frames, output's MD5 of
tests weren't valid.
This patch append the image formats, for color conversion when mapping
to memory, for non-iHD drivers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2128 >
2021-04-02 17:18:10 +02:00
Seungha Yang
5acd08f4c1
d3d11: Fix for UYVY/VYUY format rendering
...
Don't assume that non-native DXGI formats support RTV and/or SRV.
We are mapping UYVY and VYUY formats to DXGI_FORMAT_R8G8_B8G8_UNORM
which doesn't support render target view
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2133 >
2021-04-01 16:07:33 +09:00
Jan Schmidt
3a3c80e7be
mpegtsmux: Respect the start-time-selection property.
...
Use the start time provided by the aggregator base class for output
times.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2105 >
2021-03-31 13:34:40 +00:00
Yinhang Liu
7740ab9b86
msdkh265enc: add dblk-idc property
...
The SDK can support deblocking reference structure [1], so add a new
property to enable this feature.
[1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2122 >
2021-03-31 02:27:10 +00:00
Yinhang Liu
d99e97af80
msdkh264enc: add dblk-idc property
...
The SDK can support deblocking reference structure [1], so add a new
property to enable this feature.
[1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2122 >
2021-03-31 02:27:10 +00:00
Stéphane Cerveau
1fc9cc06db
flite: 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
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038 >
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2123 >
2021-03-30 10:49:49 +00:00
Stéphane Cerveau
26d88d4ed9
dtls: hotfix: allow per feature registration
...
Use of GST_ELEMENT_REGISTER in plugin.c
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2123 >
2021-03-30 10:49:49 +00:00
Stéphane Cerveau
10d245f06c
gs: remove clang formatting
...
remove clang formatting during
the build.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2115 >
2021-03-30 09:51:18 +00:00
Stéphane Cerveau
d73ed3891a
gs: 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/2115 >
2021-03-30 09:51:18 +00:00
Sebastian Dröge
5bcfb2dda0
avwait: Don't reset time tracking when receiving the same segment again
...
This causes avwait to go back into "dropping" mode until audio and video
are synced again, which is unnecessary when the segment didn't actually
change.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2121 >
2021-03-30 08:38:03 +00:00
Seungha Yang
791f1da7b8
nvcodec: nvsldec: Refactor graphics api resource handling
...
* Move GL context object to GstNVDecoder object, and remove
duplicated handling of each codec decoder element
* Don't create GL context too early. We can create it only if
we need to negotiate with downstream gl element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2089 >
2021-03-29 15:10:54 +00:00
Haihao Xiang
be1f66a491
msdkenc{h264,h265}: add intra-refresh-type property
...
The SDK allows user to specify the intra refresh type which can improve
error resilience without significant impact on encoded bitstream size
caused by I frames [1]
[1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2090 >
2021-03-29 01:36:57 +00:00
Marijn Suijten
061e32b197
Add @ prefix to enum-variant references in documentation
...
Found while working on GStreamer-rs documentation, some enums had this
bit of text pasted verbatim in the enum documentation rather than
attached to the enum-variant. Fortunately it seems these in WebRTC and
D3D11 are the only ones matching the non-@-prefixed pattern:
^ \* GST_\w+:\s*\w+
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2118 >
2021-03-28 13:08:24 +00:00
Jan Alexander Steffens (heftig)
0b916e7cec
rtmp2/connection: Separate inner from outer cancelling
...
The connection cancels itself when it is closed. To avoid the
cancellable passed to `gst_rtmp_connection_new` from being unexpectedly
cancelled, separate inner from outer cancellation by holding two
cancellables.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1558
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2111 >
2021-03-28 11:07:33 +00:00
Seungha Yang
f369ca1b32
d3d11vp9dec: Remove debug dump functions
...
Existing debug messages are not quite useful
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2117 >
2021-03-28 18:00:39 +09:00
Seungha Yang
bcdd2c4984
d3d11decoder: Move zero-copy decision logic into decoder object
...
Get rid of all duplicated code for zero-copy decision and output buffer
allocation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2117 >
2021-03-28 18:00:28 +09:00
Seungha Yang
03f1ff2042
d3d11vp9dec: Ignore show_frame flag in output_picture()
...
baseclass will not call output_picture() if it shouldn't be ouputted.
Note that the show_frame flag can be zero when show_existing_frame is set
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2114 >
2021-03-26 14:50:18 +00:00
Seungha Yang
76e5e479be
codecs: vp9decoder: Fix to output frame when show_existing_frame flag is set
...
When show_existing_frame flag is set, show_frame flag is zero
but we should output previously decoded frame as specified in frame header.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2114 >
2021-03-26 14:50:18 +00:00
Seungha Yang
c9518780fd
d3d11decoder: Do not hardcode the limit minimum resolution to 64
...
Decoder should be able to support lower resolution than 64x64
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2113 >
2021-03-26 22:04:19 +09:00
Seungha Yang
f74ed67ba0
d3d11videosink: Remove DirectWrite related dead code
...
It's now not enabled since we moved core part to gst-libs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2108 >
2021-03-25 14:43:54 +00:00
Seungha Yang
cc7bb86aa6
mfvideoenc: Don't pass 0/1 framerate to MFT
...
Some MFT implementations do not accept 0/1 framerate and it will
result in encoder open failure. If framerate is unknown,
we will use arbitrary 25/1 framerate value.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2106 >
2021-03-25 03:27:24 +09:00
Seungha Yang
90181642a3
d3d11decoder: Resurrect zero-copy for fixed-size DPB pool
...
Enable zero-copy if downstream proposed pool and therefore decoder
can know the amount of buffer required by downstream.
Otherwise decoder will copy when our DPB pool has no sufficient
buffers for later decoding operation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2097 >
2021-03-24 15:44:42 +00:00
Seungha Yang
b392ed82ba
d3d11decoder: Implement array-of-texture DPB again
...
Re-implementation of array-of-texture based on d3d11 memory pool.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2097 >
2021-03-24 15:44:42 +00:00
Seungha Yang
39b9f79e11
d3d11: Implement memory pool
...
Major changes:
* GstD3D11Allocator: This allocator is now device-independent object
which can allocate GstD3D11Memory object for any GstD3D11Device.
User can get this object via gst_allocator_find(GST_D3D11_MEMORY_NAME)
* GstD3D11PoolAllocator: A new allocator implementation for texture pool.
From now on GstD3D11BufferPool will make use of this memory pool allocator
to avoid frequent texture reallocation. That usually happens because
of buffer copy (gst_buffer_make_writable for example)
In addition to that, GstD3D11BufferPool will provide GstBuffer with
GstVideoMeta, because CPU access to a GstD3D11Memory without GstVideoMeta
is almost impossible since GPU drivers needs padding for stride alignment.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2097 >
2021-03-24 15:44:42 +00:00
Seungha Yang
4e7e390cab
d3d11decoder: Temporarily remove zero-copy related code
...
We will re-implement it based on memory pool
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2097 >
2021-03-24 15:44:42 +00:00
Víctor Manuel Jáquez Leal
316ddddc16
va: postproc: Set one buffer in pools as minimum.
...
Because some elements, such as videorate check that minimum are
different of maximum number of buffers in the proposed pool, since
they might hold one or more buffers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2102 >
2021-03-24 11:52:06 +00:00
Sebastian Dröge
ffa4d84e54
h2645parser: Catch overflows in AVC/HEVC NAL unit length calculations
...
Offset and size are stored as 32 bit guint and might overflow when
adding the nal_length_size, so let's avoid that.
For the size this would happen if the AVC/HEVC NAL unit size happens to
be stored in 4 bytes and is 4294967292 or higher, which is likely
corrupted data anyway.
For the offset this is something for the caller of these functions to
take care of but is unlikely to happen as it would require parsing on a
>4GB buffer.
Allowing these overflows causes all kinds of follow-up bugs in the
h2645parse elements, ranging from infinite loops and memory leaks to
potential memory corruptions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2103 >
2021-03-24 09:22:48 +00:00
Stéphane Cerveau
9eb14d2d11
zxing: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
1277fd56b1
zbar: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
42a8702919
x265: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
1fd8b4a6b7
wpe: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
f4c9989782
wildmidi: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
63dc81d000
webrtcdsp: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
6adf7dff71
webp: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
178dda8623
wayland: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
efc1433892
vulkan: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
9de8af0ac1
voamrwbenc: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
ea63ed5dcb
voaacenc: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
0b07d970fe
ttml: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
4f16edf0d0
srtp: 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/2038 >
2021-03-23 14:19:17 +00:00
Stéphane Cerveau
bbe0258e1d
srt: 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/2038 >
2021-03-23 14:19:17 +00:00