Add d3d12fisheyedewarp element that performs fisheye image dewarping
using D3D12. A UV remap LUT texture is generated via a compute shader,
and the actual remapping is performed in a pixel shader using this LUT
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9441>
Modify the API to retrieve the tensor meta to check for the dimensions
as well.
Also fix an API mistake, the buffer whose dimensions should be checheck
is the one inside the GstTensor, not another buffer some outside.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9411>
Similar to h264parse and h265parse, this patch improves the element to parse
the SEI registered user data from NAL units. The core structure of H266 SEI for
ITU-T T.35 is the same as the other parsers, so we can re-use the same logic.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9365>
Similar to and inspired by glimagesink, xvimagesink and others.
The waylandsink never transform the buffer in any way but delegates this to the
Wayland compositor with the Wayland buffer transform API.
Rotation and window size are already supported, so this just changes the video
surface geometry that is communicated to the Wayland compositor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9210>
This patch adds the possibility to attach video metas to allocated buffers if
API users request that option.
The main reason to add this meta is for the future usage of
gst_buffer_find_memory(), where the requested offset determines the memory
index.
In the case of multi-memory Vulkan images the offset of every component is
larger than the default offset determined by the format and frame size, because
of the buffer minimum size and memory alignment determined by the used driver.
Then, the offset is set in the buffer video meta.
In the case of single memory Vulkan images, the default offset is set in the
video meta.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9219>
This proved to be helpful for previous protocol experiments, so let's
upstream it. Inspired by the corresponding code in Weston.
Protocols need to be placed in a `protocols` subdirectory and can be
declared in the following way in `meson.build`:
```
['color-management-v1', 'internal' ],
```
Note the `v1` being part of the name.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9186>
Using the Wayland color-management and color-representation protocols.
The implementation queries supported values from the compositors and tries
to convert them into GstVideoColorimetry values. It currently *does not*
pass these upstream to decoders etc. as GstCaps for negotiation.
On the Wayland side it uses named transfer functions, named primaries,
matrices and ranges. The straight alpha mode is also set if supported
by the compositor.
On setting caps it translates the GstVideoColorimetry from the GstVideoInfo
back to into a Wayland parametric image description and color representation
for the video surface if possible. If a colorimetry is not fully
support, we bail out and if wayland objects already exist they get reset or
deleted.
Note that not all GstVideoColorimetry values are implemented yet.
Useful debug options: GST_DEBUG=wlwindow:4,wldisplay:4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6830>
Nowadays VK_EXT_debug_report is considered deprecated and it's recommended to
replace it it VK_EXT_debug_utils, which offer a way to ignore messages
considered false positives.
The approach is to try the extension first, if available at compilation time, if
not or if it fails to load, VK_EXT_debug_report fallbacks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9119>
- Unset stream ids if a collection does not contain them
- Automatically select a default stream of a type if the stream type is
enabled but no stream is selected yet when receiving the stream collection
- Warn if there's a collection update via streams-selected and if there are
unexpected streams being selected, or actually selected streams not being
found
- Improve debug output a bit
Among other things this also makes sure that we don't forget a selected stream
id when disabling a track so that when enabling it again later the same one can
be enabled again.
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4344
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9081>