Nirbheek Chauhan
ec3962f9c7
directxmath.wrap: Fix cpuid mismatch on MinGW
...
This fixes a build failure with meson 1.3.0, which was caused by
a bugfix in Meson that made the cc.compile() check succeed on MSYS2
MinGW and enable DirectXMath SIMD, which in turn triggered the broken
`__cpuid()` issue mentioned in the meson.build file.
Upstream fix: https://github.com/microsoft/DirectXMath/pull/172
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5690 >
2023-11-20 20:08:57 +00:00
Nirbheek Chauhan
f65d074354
meson: Rework d3d11 checks, add new d3d11-math option
...
This allows us to ensure that directxmath SIMD is enabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5690 >
2023-11-20 18:49:13 +00:00
Seungha Yang
b42b45af46
d3d11: Add Y412 format support
...
It's mapped to DXGI_FORMAT_Y416 and major format for 12bits 4:4:4
video decoding. Since DXGI_FORMAT_Y416 format cannot be a render target,
adding corresponding compute shader code too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5692 >
2023-11-21 02:40:10 +09:00
Víctor Manuel Jáquez Leal
5bece78ca2
vkqueue: add decoder factory
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:20 +00:00
Víctor Manuel Jáquez Leal
4f475732bd
vkdecoder: add gstvkdecoder helper object
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:20 +00:00
Víctor Manuel Jáquez Leal
8ee3ec105c
vkvideo-private: video structures and session handle
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:20 +00:00
Stéphane Cerveau
96daac8ac7
vkvideoutils: add GstVulkanVideoOperation enum
...
To differentiate a video/x-h264 caps use with a decoder or an encoder
and get the correct video profile, the API expects an enum
GstVulkanVideoOperation to handle this difference.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:20 +00:00
Víctor Manuel Jáquez Leal
8ee0f04d8d
vkvideoutils: add dec postfix to profiles
...
So it the future don't collide with encoding profiles.
Original-patch-by: Stéphane Cerveau <scerveau@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:20 +00:00
Víctor Manuel Jáquez Leal
bf7a01f3fd
vkvideoutils: add video capabilities structure
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:19 +00:00
Víctor Manuel Jáquez Leal
8023e3c19a
vkvideoutils: add gst_vulkan_video_profile_is_equal()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:19 +00:00
Víctor Manuel Jáquez Leal
13d78652b7
vkvideoutils: add gst_vulkan_video_profile_is_valid()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:19 +00:00
Víctor Manuel Jáquez Leal
f896e2a347
vkvideoutils: add VkVideoDecodeUsageInfoKHR in profile
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:19 +00:00
Víctor Manuel Jáquez Leal
fd1b1332b7
vkvideoutils: if unknown codec nullify pNext
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:19 +00:00
Víctor Manuel Jáquez Leal
d5036e4429
vkvideoutils: mark as private members of profile structure
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:19 +00:00
Víctor Manuel Jáquez Leal
e3054056ff
vkimagebufferpool: set image's number of layers
...
Handle the image's number of layers as configuration so it can be set by the
user, still isn't exposed as function since it's very niche.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:19 +00:00
Stéphane Cerveau
d52d50570e
vkmemory: avoid the property flag check
...
During the video session memory allocation, the property flags can
be different from the expected ones, so do not expect all the
property flags and test it with G_MAXUINT32
It's failing with driver 525.47.26 and NVidia HW NVIDIA GeForce
RTX 3050 and 2060
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4850 >
2023-11-20 13:32:19 +00:00
Seungha Yang
522d883fc3
d3d11: Add support for Y210 and Y212 formats
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5691 >
2023-11-20 20:29:13 +09:00
Seungha Yang
ca14eeeeaa
d3d11convert: Add support for YUY2 and Y410 output
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5691 >
2023-11-20 20:29:13 +09:00
Seungha Yang
2afa0fe7d0
d3d11converter: Port to converter helper
...
... add support YUY2 and Y410 output
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5691 >
2023-11-20 20:29:13 +09:00
Seungha Yang
c57fe82a93
d3d11: Implement helper object for converter
...
This object will upload system memory to GPU and preprocess
texture using compute shader or software converter if needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5691 >
2023-11-20 20:29:13 +09:00
Jordan Yelloz
66f51f642f
bad: Added W3C Media Source Extensions library
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2992 >
2023-11-19 13:48:43 +00:00
Alexander Slobodeniuk
2922c6182d
insertbin/doc: add "Since" markers to pass CI
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5514 >
2023-11-17 01:09:49 +01:00
Alexander Slobodeniuk
709913b1d2
insertbin: make it available in the registry
...
so it could also be used from the gst-parse-launch
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5514 >
2023-11-16 21:36:32 +01:00
Sebastian Dröge
6b22f53fa9
player: Without dispatcher emit signals directly instead of via the default main context
...
This is how it was documented and how it worked before the port to GstPlay.
Without this, applications expecting signals to be emitted directly
without anything running the main context will simply not receive any
signals.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5672 >
2023-11-15 17:16:36 +00:00
Seungha Yang
cb3c1390f2
d3d11: Avoid ID3D11DeviceContext::Map if possible
...
Allocate resource with initial date instead of calling Map/Unmap
after allocation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5660 >
2023-11-15 23:38:59 +09:00
Michael Grzeschik
23a4b72631
codecparsers: h264bitwriter: Fix trace typo
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5661 >
2023-11-14 14:41:37 -05:00
Stéphane Cerveau
fdc3db68cd
codecparsers: introduce h265 level enum
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5644 >
2023-11-13 16:37:46 +00:00
Philippe Normand
99fa06e73f
play: Improve documentation header
...
If the application relies on GstPlaySignalAdapter, no special clean-up is
required.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5643 >
2023-11-12 11:07:37 +00:00
HuQian
050e7f4831
waylandsink: fix incorrect RGB and BGR mapping about GST DRM and WL_SHM
...
This commit corrects the mapping relationship between RGB and BGR in GST and DRM.
The previous mapping was incorrect, causing potential color mismatches in the output.
The changes are as follows:
{WL_SHM_FORMAT_RGB888, DRM_FORMAT_RGB888, GST_VIDEO_FORMAT_BGR},
{WL_SHM_FORMAT_BGR888, DRM_FORMAT_BGR888, GST_VIDEO_FORMAT_RGB},
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5620 >
2023-11-11 14:41:18 +00:00
Sebastian Dröge
a238caebbb
play: Automatically flush the bus when disposing the signal adapter
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3107
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5642 >
2023-11-11 14:11:30 +02:00
Philippe Normand
66373721d5
gstplay: Add a minimal documentation header
...
Also mentioning the need to set the bus to flushing state before disposing the
player in order to avoid reference cycles.
Fixes #3107
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5631 >
2023-11-11 10:48:27 +00:00
Víctor Manuel Jáquez Leal
43ce583460
vulkan/operation: wait for pending objects at reset
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5591 >
2023-11-10 16:36:44 +01:00
Víctor Manuel Jáquez Leal
0296c8a53a
vulkan/operation: get query only if a operation is submitted
...
To avoid a validation error if get query is performed before.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5591 >
2023-11-10 16:36:44 +01:00
Víctor Manuel Jáquez Leal
3464710bf0
vulkan/operation: remove stored fences at the end
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5591 >
2023-11-10 16:36:44 +01:00
Víctor Manuel Jáquez Leal
405ae91ed7
vulkan/operation: don't fail if extension isn't available
...
gst_vulkan_operation_add_dependency_frame() is a noop if the required extensions
aren't available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5591 >
2023-11-10 16:36:44 +01:00
Benjamin Gaignard
1db83d3f74
codecparsers: av1: Clip max tile rows and cols values
...
Clip tile rows and cols to 64 as describe in AV1 specification.
Fixes ZDI-CAN-22226 / CVE-2023-44429
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3015
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5634 >
2023-11-10 13:45:43 +00:00
Víctor Manuel Jáquez Leal
7c0227145c
vaallocator: use GstVideoInfoDmaDrm for dmabuf setup
...
Instead of guessing the DRM format and modifier, pass a DRM video info to
gst_va_dmabuf_memories_setup().
Still, it checks for the DRM parameters in DRM info, if they are not available,
as in the case of V4L2 buffers, the part of the video info is used.
This is an API breakage, but since the plugin is still in stage, it's still
allowed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5264 >
2023-11-09 17:36:06 +00:00
Víctor Manuel Jáquez Leal
d1210d6dc0
vaallocator: use VADRMPRIMESurfaceDescriptor to create surfaces
...
To import DMAbufs we used VASurfaceAttribExternalBuffers which works, but it's
not specific for DRM PRIME 2, since it lacks of many metadata. This patch
replaces VASurfaceAttribExternalBuffers with VADRMPRIMESurfaceDescriptor in
va_create_surfaces().
Still, this patch assumes linear modifier only.
The hack for RGB surfaces in I965 driver was pushed down into
va_create_surfaces() to avoid handling both structures.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5264 >
2023-11-09 17:36:06 +00:00
Víctor Manuel Jáquez Leal
76115528ac
vallocator: remove n_planes argument in dmabuf_memories_setup()
...
Instead of passing the number of planes to process, take that number from the
passed GstVideoInfo.
This is an API breakage, but since the plugin is still in stage, it's still
allowed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5264 >
2023-11-09 17:36:06 +00:00
Víctor Manuel Jáquez Leal
2d358cb22a
vaallocator: fix assumption object size equal fd size
...
Remove the comment and warning message that object size should be equal to the
file descriptor size.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5264 >
2023-11-09 17:36:06 +00:00
Víctor Manuel Jáquez Leal
d7b5b54eda
vadisplay: only register elements of allowed drivers
...
Now that nvidia-vaapi-driver appeared and isn't yet supported by GstVA, we've to
add an allowed list of supported drivers.
This patch implements it adding a environment variable to disable this driver
check: GST_VA_ALL_DRIVERS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5616 >
2023-11-08 13:53:26 +00:00
Slava Andrejev
93b4272e6c
meson: change Wayland scanner command from "code" to "private-code"
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5593 >
2023-11-07 18:40:35 +00:00
Slava Andrejev
cad42b0511
meson: add processing of "staging" Wayland protocols
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5593 >
2023-11-07 18:40:35 +00:00
Slava Andrejev
c48e96fd76
meson: prevent sandbox violation if GStreamer and wayland-protocols are subprojects
...
Suppose you have a project where GStreamer and wayland-protocols are
pulled in as dependencies via .wrap files. In that case, Meson's setup
step will fail for gst-plugins-bad with the message "Sandbox violation:
Tried to grab file viewporter.xml outside current (sub)project." To
avoid this exception, one should use Meson's `files` and `join_paths`
functions. The suggested solution is identical to how GTK 4 processes
Wayland files.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5593 >
2023-11-07 18:40:35 +00:00
Balló György
6f8b9574f2
gstwayland: Don't depend on wayland-protocols
...
wayland-protocols are needed to build gstwayland, but not for dependent projects.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4724 >
2023-11-07 17:52:31 +00:00
Seungha Yang
0bcddfc894
d3d11: Enable DirectXMath SIMD
...
* Enable SIMD except for x86 target
* Use aligned matrix struct
* Remove unnecessary matrix copy operations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5602 >
2023-11-07 11:19:31 +00:00
Xavier Claessens
7df22b338b
GstShmAllocator: New shared memory allocator
...
This makes Wayland's allocator public. It is generally useful to have a
shared memory allocator that can create memfd on Linux.
Sponsored-by: Netflix Inc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5328 >
2023-11-03 18:22:00 +00:00
Seungha Yang
bf05cfea45
d3d11: Fix build with GST_DISABLE_GST_DEBUG
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5585 >
2023-11-03 13:31:03 +00:00
Seungha Yang
033f98ad86
d3d11: Set MaxAnisotropy value for the best quality
...
... and use anisotropic filter without comparison, which is actually
intended one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5580 >
2023-11-01 15:41:08 +00:00
Seungha Yang
0e9fdabb1b
d3d11converter: Simplify private struct ctor
...
Initialize transform matrix using memcpy
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5580 >
2023-11-01 15:41:08 +00:00