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
Seungha Yang
e134cd8e09
d3d11device: Store device formats in hash map
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5580 >
2023-11-01 15:41:08 +00:00
Seungha Yang
443f205c38
d3d11converter: Don't update vertex buffer on transform matrix change
...
Transform matrix change requires only constant buffer update
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5575 >
2023-10-30 11:15:35 +00:00
Seungha Yang
f32bb06e32
d3d11converter: Fallback to linear sampler if filter is not supported
...
Use linear sampler if requested filter is not supported
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-29 01:07:45 +09:00
Seungha Yang
b16665dc75
d3d11convert: Add support for sampling with anisotropic filter
...
Anisotropic filtering might produce better quality than linear filtering
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-28 22:56:28 +09:00
Seungha Yang
5f44390b3e
d3d11converter: Reuse rasterizer state object
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5572 >
2023-10-28 22:12:17 +09:00
Seungha Yang
b7c49f8e9f
d3d11converter: Add support for MSAA render target
...
Create multi-sample render target view if sample count > 1
and MSAA enabled rasterizer for multi-sample render target
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5532 >
2023-10-28 09:58:16 +00:00
Seungha Yang
eac65d248a
d3d11converter: Add support for custom transform matrix
...
Adding gst_d3d11_converter_set_transform_matrix() method so that
user specified transform matrix can be applied when "video-direction=custom"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5532 >
2023-10-28 09:58:16 +00:00
Seungha Yang
769c6a62a4
d3d11converter: Use transform matrix for rotation/flip
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5532 >
2023-10-28 09:58:16 +00:00
Matthew Waters
d20d94cc48
vkformat: also use the correct srgb vs unorm when using older
...
gst_video_info_from_video_info()
Fixes sRGB colorspace chosen by GstVulkanSwapper and therefore used for
display.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5316 >
2023-10-27 09:13:18 +00:00
Víctor Manuel Jáquez Leal
ce91004c3b
build: opencv: disable opencv deps if it's not installed
...
When hotdoc documentation is enabled and opencv plugin is set as
auto-detected, but the library isn't installed, meson configuration fails
with this message:
../subprojects/gst-plugins-bad/docs/meson.build:139:21: ERROR: Unknown variable "gstopencv_dep".
This patch fixes this case defined gstopencv_dep as disabler() when
dependencies aren't found.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5560 >
2023-10-26 20:43:14 +00:00
Mengkejiergeli Ba
38e8896887
vaallocator: Do not try derive image for d3d backend
...
Current codes try derive image in _update_image_info first, if
derive returns no error, the va_allocator->info is the one from derived
image, but in va_map_unlocked, we disable derive manner for d3d backend
because it doesn't seem to work, this will cause issue for d3d path,
i.e. possibly using derived info in va_get_image to do mapping...
This patch disables derive image for d3d backend in _update_image_info,
to ensure we only use info from va_create_image for d3d path.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5495 >
2023-10-26 16:08:10 +00:00
Víctor Manuel Jáquez Leal
a2f875251f
vkimagebufferpool: use GstVulkanOperation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:23 +00:00
Víctor Manuel Jáquez Leal
265f1274dc
vkoperation: synchronization helper object
...
An operation is an arbitrary amount of work to be executed on the host, a
device, or an external entity such as a presentation engine.
The purpose of this object is to help on the operation's synchronization
through declaring explicit execution dependencies, and memory dependencies
between two sets of operations defined by the command’s two synchronization
scopes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:22 +00:00
Víctor Manuel Jáquez Leal
c83c508c5e
vulkan: add a timeline semaphore per image
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:22 +00:00
Víctor Manuel Jáquez Leal
964aec54b4
vkbarrier: Use guint64 for VkFlags and VkFlags2
...
While VkPipelineStageFlags is an enum (arguably backed as uint32 in 32bit
platforms), VkPipelineStageFlags2 is a redefinition of guint64; likewise for
VkAccessFlags and VkAccessFlags2.
This patch types both members in GstVulkanBarrierMemoryInfo as guint64 for
compatibility, so it could be used with or without synchronization2 vulkan
extension.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:22 +00:00
Víctor Manuel Jáquez Leal
8809ce5648
vkmemory: unref queue in barriers
...
Queue might be assigned for queue transfers, so we need to unref it if the
memory has been assigned to a specific queue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:22 +00:00
Víctor Manuel Jáquez Leal
5acd6c23b8
vkdevice: use macro VK_KHR_synchronization2 as guard
...
Instead of (defined(VK_VERSION_1_3) || (defined(VK_VERSION_1_2) && VK_HEADER_VERSION >= 170))
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:22 +00:00
Jordan Petridis
67475fa684
opencv: move the dependency check to a single place
...
Previously we were checking for opencv dep in 2 different places,
and the checks would vary in terms of how complex and exhaustive
they were.
Move the check into the libs module and reuse the result later on.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3016 >
2023-10-26 00:01:23 +00:00
Matthew Waters
48ab457d79
vulkan/physical-device: don't assume that queue_family_ops is filled
...
On old enough vulkan (< 1.2), we will never retrieve the family operations and
will perform a NULL pointer dereference when dumping the queue family op
properties.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5547 >
2023-10-25 16:38:06 +11:00
David Rosca
8aac08506a
va: Use vaMapBuffer2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5467 >
2023-10-23 19:40:16 +00:00
Jordan Petridis
9f3b8c9366
vkwindow_xcb: Make the visible private field a guint
...
This field is used to store gbooleans (which are ints) but if it's
a :1 bit depth assigning ints to it changes it's value as the only
valid values are -1 and 0.
Make it a guint instead so the cast would be correct.
```
../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/xcb/gstvkwindow_xcb.c:151:25: error:
implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1
[-Werror,-Wsingle-bit-bitfield-constant-conversion]
window_xcb->visible = TRUE;
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5432 >
2023-10-23 10:43:52 +05:30
Detlev Casanova
5f9b24e3ba
codecs: h265: Do not free slice header before using it
...
The v4l2codecs H.265 decoder uses the
GstH265SliceHdr::entry_point_offset_minus1 array so make sure that it is not
freed before decoding the frame.
Before this patch, some H.265 input would segfault in
gst_v4l2_codec_h265_dec_fill_slice_params() when executing the line:
guint32 entry_point_offset = slice_hdr->entry_point_offset_minus1[i] + 1;
Make sure that the array is not freed before using it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5499 >
2023-10-17 15:06:10 -04:00
Seungha Yang
269ab85881
d3d11converter: Fix deadlock on taking property mutex
...
SRWLOCK should be zero initialized, but since we changed the private
struct to C++, use C++ mutex instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5498 >
2023-10-17 12:50:55 +00:00
Seungha Yang
65aa1b8faa
d3d11converter: Create ID3D11Buffer with initial data
...
... and remove unnecessary device lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5492 >
2023-10-17 10:48:49 +00:00
Seungha Yang
4e3d87edf5
d3d11converter: Don't set unnecessary constant buffer
...
Skip PSSetConstantBuffers() if it's not used by pixel shader
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5492 >
2023-10-17 10:48:49 +00:00
Seungha Yang
66bb9ee866
d3d11converter: Update shader code to make 4_0_level_9_1 compatible
...
4_0_level_9_1 target requires float4 SV_TARGET
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5483 >
2023-10-15 19:02:24 +09:00
Seungha Yang
a35c4fd5c5
d3d11converter: Fix 10/12bits planar output
...
Simple division can result in 10/12bits overflow.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5483 >
2023-10-15 01:47:29 +09:00
Seungha Yang
5ea1f8a548
d3d11converter: Print calculated matrix for debugging
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5483 >
2023-10-15 00:27:27 +09:00
Seungha Yang
ba02e94dde
d3d11converter: Calculate gamma LUT only once
...
Reuse calculated gamma lookup table and use immutable 1D texture
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5482 >
2023-10-14 13:37:08 +00:00
Seungha Yang
6f8c474293
d3d11converter: Remove unused variable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5482 >
2023-10-14 13:37:08 +00:00
Seungha Yang
347dd37225
dxva: Build gir and remove SDK header dependency
...
Build gir for documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5481 >
2023-10-14 12:32:46 +00:00
Seungha Yang
ed29c23e86
d3d12, dwrite, va: Fix various msys2 build error/warning
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5454 >
2023-10-12 10:53:58 +00:00
Seungha Yang
f52ecb9607
d3d11converter: Add support for HLSL precompile and bytecode caching
...
Precompile pixel shaders for simple conversion path
(without gamma/primaries conversion) in case of MSVC build.
Even if runtime compile is required (cross-compiled or complex conversion
path), do it only once and reuse the compiled bytecode.
This precompile/caching can save about 95% of time taken by
gst_d3d11_converter_new() call.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3004
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457 >
2023-10-11 18:40:46 +00:00
Seungha Yang
83a576e854
d3d11: Reuse sampler object
...
The linear sampler object can be reused
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457 >
2023-10-11 18:40:46 +00:00
Seungha Yang
92cc5722c8
d3d11: Pass HLSL source size to compile function
...
The string size is known at build time
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457 >
2023-10-11 18:40:46 +00:00
Seungha Yang
bfdea297d2
d3d11converter: Set alpha-mode using config
...
... and disallow runtime alpha-mode update for now
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457 >
2023-10-11 18:40:46 +00:00
Seungha Yang
cf1286b0e9
d3d11: Add support for HLSL precompile and shader caching
...
Compile HLSL at build time in case of MSVC, and use it if device
supports shader model 5. Also cache/reuse pixel shader and vertex
shader objects.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5426 >
2023-10-03 09:42:03 +00:00
Sebastian Dröge
510f71fbe4
video-format: Fix up video formats ordering by quality
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5412 >
2023-10-02 09:39:21 +03:00
Seungha Yang
91e0c3aafa
cuda: Use d3d11 token data for interop data
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5409 >
2023-09-29 12:36:01 +00:00
Seungha Yang
c818906236
cuda: Add support for I420_12LE format
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5409 >
2023-09-29 12:36:01 +00:00
Seungha Yang
a80f542f66
cuda: Add support for P012_LE and Y444/GBR high bitdepth formats
...
Adding P012, Y444_10, Y444_12, GBR_10, GBR_12 and GBR_16 formats support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5375 >
2023-09-23 13:12:55 +00:00
Seungha Yang
d731a7c2fc
d3d11: Add support for GBR_16LE format
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5375 >
2023-09-23 13:12:55 +00:00
Seungha Yang
2b7dc0de1b
h265decoder: Set discont state after new_picture()
...
Subclass might negotiate with downstream inside of the new_picture().
Set discont state after the new_picture() call
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5368 >
2023-09-20 18:44:42 +00:00
Nicolas Dufresne
ff91a3d8d6
h265parser: Fix possible overflow using max_sub_layers_minus1
...
This fixes a possible overflow that can be triggered by an invalid value of
max_sub_layers_minus1 being set in the bitstream. The bitstream uses 3 bits,
but the allowed range is 0 to 6 only.
Fixes ZDI-CAN-21768, CVE-2023-40476
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2895
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5364 >
2023-09-20 14:11:55 +00:00
Seungha Yang
2aa88033b2
d3d11memory: Allow CreateSharedHandle() without keyed mutex
...
For d3d11 resource to be shared with d3d12, keyed mutex shouldn't
be enabled since d3d12 resource does not expose the keyed mutex
interface
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5356 >
2023-09-20 10:34:54 +00:00
Hugues Fruchet
42c65cc765
waylandsink: Fix cropping for video with non-square aspect ratio
...
Padding of unaligned content is still visible at right with some aspect-ratio.
Fix this by giving the original content resolution to wp_viewport_set_source()
instead of pixel aspect ratio scaled one.
Fixes !5259
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5346 >
2023-09-19 22:56:31 +00:00
Víctor Manuel Jáquez Leal
4c5e17308e
vaallocator: don't update size in info for single plane images
...
Don't update info's size with the VA image reported data size for single plane
images, since drivers might allocate bigger space than the strictly required to
store the image, but when we dump the buffer as is (using filesink, for example)
the produced stream is corrupted. For multi-plane images video meta is required
to read/write them.
We updated info's size because gstreamer-vaapi did it too, but the reason to
update it there was for uploading and rendering surfaces (commit c698a015
).
Furthermore, this patch adds an error message if the allocated data size for the
image by the driver is lesser than the expected because it would be a buggy
driver.
Fixes : #2959
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5308 >
2023-09-18 14:55:10 +00:00
Seungha Yang
729c11cb0c
dxva: Add DXVA decoder baseclass implementation
...
Extract Direct3D version independent common DXVA logic from d3d11
decoder so that it can be used by the other APIs (D3D9 and D3D12)
as well
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4161 >
2023-09-17 18:30:03 +09:00
Seungha Yang
48a0c01570
h264decoder: Update latency dynamically
...
The actual number of reorder frames is unknown
unless frame reordering is disabled
(e.g., POC type 2 or constrained-* profiles).
Also derived maximum DPB size or max_num_reorder_frames in VUI
is not the upper bound of output delay.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2702
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5326 >
2023-09-17 01:43:29 +09:00
Seungha Yang
6785c7d378
av1parser: Fix segmentation params update
...
Even if the segmentation feature value is not updated,
the parsed "segmentation_update_map" and "segmentation_temporal_update"
values should not be cleared as it's referenced during lower
level bitstream parsing. Also, don't use assert() in parser
unless it's clearly impossible condition.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5334 >
2023-09-16 07:50:41 +09:00
Seungha Yang
3ac2690807
h265decoder: Fix DPB overflow
...
If DPB is full already, GstH265Decoder::new_picture() might fail if
subclass uses fixed size picture pool and its size is equal to the DPB
size. Call the new_picture() after DPB is cleared in gst_h265_decoder_dpb_init()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5333 >
2023-09-15 18:26:31 +00:00
Nicolas Dufresne
16ae1286d1
wayland: Use generated formats list
...
Update the order according to what the generator produces.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5304 >
2023-09-10 19:06:07 -04:00
Víctor Manuel Jáquez Leal
b7ded81f7b
vkbufferimagepool: short circuit usage for decoding
...
NVIDIA & RADV drivers don't report decoding features for color format. Setting
requested usage to zero to short circuit validation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 >
2023-09-08 18:11:55 +02:00
Matthew Waters
9d79852890
vkformat: assume that unknown rgb transfer is sRGB
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 >
2023-09-08 16:09:33 +00:00
Matthew Waters
b82a402bf1
vkformat: also check configured usage flags
...
This does also mean that if the primary format fails this check, we need
to try the secondary format before returning an error
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2957
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 >
2023-09-08 16:09:33 +00:00
Matthew Waters
4d3b03e8e8
vkformat: invert srgb and multiplane && planes > 1 checks
...
The primary format for RGB includes sRGB transfer but was not actually
being used.
The !(no_multiplane && planes > 1) check for YUV resulted in those
formats never being used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 >
2023-09-08 16:09:33 +00:00
Matthew Waters
8a9d630e3b
vkformat: FORMAT_FEATURE_COLOR_ATTACHMENT also includes INPUT_ATTACHMENT
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 >
2023-09-08 16:09:33 +00:00
Matthew Waters
6c534655d4
vkformat: reorder RGBA formats before RGBx formats
...
Fixes gst_vulkan_format_to_video_format to use the RGBA formats instead
of RGBx formats.
Fixes vulkansink exposing a RGBx/BGRx format instead of the more
relevant RGBA/BGRA formats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 >
2023-09-08 16:09:33 +00:00
Aleksandr Slobodeniuk
a98330636a
h264/h265parser: clarify some gtk-doc annotations
...
Needed for the documentation since the transfer
is not obvious.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5287 >
2023-09-08 13:41:01 +00:00
Seungha Yang
97fc02cfe3
av1decoder: Port to GstCodecPicture struct
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
a73c6d7fb6
vp9decoder: Port to GstCodecPicture struct
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
4571fac946
vp8decoder: Port to GstCodecPicture struct
...
... and remove unused "pts" variable from GstVp8Picture struct
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
a5ddf7af3b
mpeg2decoder: Port to GstCodecPicture struct
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
6e7cab43be
h265decoder: Port to GstCodecPicture struct
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
ea3dfadbed
h264decoder: Port to GstCodecPicture struct
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Seungha Yang
d69bacb954
codecs: Define common codec picture struct
...
Adding parent class of codec picture struct
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5285 >
2023-09-08 11:51:23 +00:00
Robert Mader
649eeeaa27
wlvideoformat: Add P010
...
It is similar to NV12 but has 10bits per channel instead of 8.
As it is supported by many modern GPUs, VA-API and an increasing
number of Wayland compositors, let's support it as well.
Also bump the required libdrm version accordingly and add a temporary
define for the WL_SHM format.
Tested with Weston, Mutter and Sway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5275 >
2023-09-07 13:50:48 +00:00
Robert Mader
fd82342bbd
waylandsink: Move format caps list to shared library
...
So it can be shared and more easily updated. While on it, order the
formats according to the documentation for GstVideo.VIDEO_FORMATS_ALL.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5275 >
2023-09-07 13:50:48 +00:00
Akihiro Sagawa
3c7ba382db
codecparsers: Fix MPEG-1 aspect ratio table
...
The values defined in ISO/IEC 11172-2 are different from those used so far.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5272 >
2023-09-06 12:24:37 +00:00
He Junyan
732a32a243
va: Add modifier paramters check for va_create_surfaces()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5267 >
2023-09-01 17:26:51 +08:00
Víctor Manuel Jáquez Leal
22c8d1890e
va: retry if surface creation fails
...
Old versions of mesa doesn't support VASurfaceAttribDRMFormatModifiers. To
solve it, by just ignoring the modifiers assuming that linear is accepted and
produced, the creation of frames will be tried again without that attribute.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5256 >
2023-08-31 20:18:26 +00:00
Nicolas Dufresne
0b648f9a2d
waylandsink: Crop surfaces to their display width height
...
Setting the surface source rectangle has been omitted so far. As a side effect
surface created with padded width/height are being scaled down. Fix this using
the viewporter source rectangle configuration. This can later be enhanced
to support crop meta.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5259 >
2023-08-30 18:58:45 +00:00
He Junyan
0e500ee084
va: Add helper function va_get_surface_usage_hint()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5210 >
2023-08-24 11:03:59 +00:00
Seungha Yang
d84c13ab0d
h265parser: Allow partially broken hvcC data
...
Ignores parsing error on the last nalu of the array if the nalu type
is not VPS/SPS/PPS
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2905
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5188 >
2023-08-23 10:43:18 +00:00
Johan Sternerup
5b64cfaca3
webrtcice: Add webrtc ALPN header for HTTP proxy
...
Section 3.4 in RFC8835 states that if a WebRTC endpoint uses an HTTP
proxy to access the Internet it MUST include the "ALPN" header. This
commit adds this header.
By default the ALPN used when connecting to the TURN/TCP server via a
proxy is set to "webrtc". It can be changed by adding an alpn url
option for the http-proxy. For example:
http://user:pass@my.http.proxy.com:8080?alpn=c-webrtc
This will add the header "ALPN: c-webrtc" to the HTTP proxy CONNECT
request.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4212 >
2023-08-17 00:45:05 +00:00
Seungha Yang
dc2fd997a2
cuda: Add workaround for gir build
...
ERROR:../girepository/girparser.c:343:state_switch:
assertion failed: (ctx->state != newstate)
Bail out! ERROR:../girepository/girparser.c:343:state_switch:
assertion failed: (ctx->state != newstate)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4510 >
2023-08-14 13:41:01 +00:00
Seungha Yang
7b1e4d6051
cudabufferpool: Add support for virtual memory
...
Configure malloc or mmap allocator depending on config option
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4510 >
2023-08-14 13:41:01 +00:00
Seungha Yang
547b13c68f
cudacontext: Add memory allocation related properties
...
Adding "virtual-memory" and "os-handle" properties. New properties
will be used to query device's capability
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4510 >
2023-08-14 13:41:01 +00:00
Seungha Yang
2f506e8ddc
cudamemory: Add support for virtual memory in pool allocator
...
Adding new memory pool allocator for virtual memory
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4510 >
2023-08-14 13:41:01 +00:00
Seungha Yang
194fd8bb82
cudamemory: Add support for virtual memory management
...
Adding new CUDA memory allocation methods
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4510 >
2023-08-14 13:41:01 +00:00
Seungha Yang
a712a768a4
cuda: Load virtual memory management and IPC API symbols
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4510 >
2023-08-14 13:41:01 +00:00
Fabian Orccon
d07ffae343
h264parser: Write Unregistered User Data
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5071 >
2023-08-08 02:47:41 +00:00
He Junyan
919d398bff
va: update the gst_va_dma_drm_info_to_video_info() to use DMA_DRM format
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4044 >
2023-08-07 22:49:26 +00:00
He Junyan
93d763b85c
va: Use new dma drm caps in va pool when we setup DMA pools
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4044 >
2023-08-07 22:49:26 +00:00
He Junyan
d7d25de892
va: Use GstVideoInfoDmaDrm in DMA allocator's get/set_format() API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4044 >
2023-08-07 22:49:26 +00:00
He Junyan
ab9d11bc17
va: Include drm fourcc header file in gstvavideoformat.h
...
And add some definition to pass the Windows compiling.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4044 >
2023-08-07 22:49:26 +00:00
Nicolas Dufresne
0149d77eff
waylandsink: Improve DMA DRM integration
...
Pass GstVideoInfoDmaDrm or GstVideoInfo whenever possible, avoiding passing
strange combination of GstVieoFormat + modifier. Even though we don't have any
at the moment, this also allow supporting GstVideoFormat that are not supported
in our DRM integration.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5120 >
2023-08-01 14:55:23 -04:00
Cheah, Vincent Beng Keat
6e22846301
waylandsink: Add DRM modifiers support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5103 >
2023-07-27 17:08:26 +00:00
Mengkejiergeli Ba
809a984b91
va:allocator: Rework the func va_map_unlocked
...
Rework the va_map_unlocked() after we keep mapping behavior (whether to
use derive) consistent with allocator_try stage. Also remove the flag
for iHD case because pitch/stride difference between vaCreateImage and
vaDeriveImage only possibly happen on iHD by now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5046 >
2023-07-27 15:04:01 +00:00
Mengkejiergeli Ba
b997f541b2
va:allocator: Let pool alloc_info be consitent with the test order in gst_va_allocator_try
...
In gst_va_allocator_try, the first try is to use derive_image, if it
succeeds, we should use info from derived image to create bufferpool.
If derive fails, then try create_image and give created image info
to the pool.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5046 >
2023-07-27 15:04:01 +00:00
He Junyan
5aa2239c4b
codecs: AV1: Ensure current picture and frame to NULL before return
...
The current code fails to clear the current picture and frame pointer if
some flow error such as EOS happens. This causes the double free issue in
gst_av1_decoder_reset().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5104 >
2023-07-26 16:27:43 +08:00
Fabian Orccon
216f9d66a0
h265parser: Write Unregistered User Data
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5070 >
2023-07-25 18:28:26 +00:00
Fabian Orccon
dd47fa53d8
h265parse: Parse SEI unregistered user data
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5070 >
2023-07-25 18:28:26 +00:00
Seungha Yang
9a902afce4
codecs: Use release_frame() instead of drop_frame()
...
drop_frame() will post QoS message which is not intended here
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5024 >
2023-07-13 13:48:46 +00:00
Seungha Yang
45766f2448
codecs: Propagate downstream flow ERROR
...
Don't translate downstream flow ERROR to OK
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5024 >
2023-07-13 13:48:46 +00:00
Seungha Yang
b18bd5ec2b
d3d11bufferpool: Fix heavy CPU usage in case of fixed-size pool
...
There's no reason to release GstMemory manually at all.
If we do release GstMemory, corresponding GstBuffer will be
discarded by GstBufferPool baseclass because the size is changed
to zero.
Actual cause of heavy CPU usage in case of fixed-size pool
(i.e., decoder output buffer pool) and if we remove GstMemory from
GstBuffer is that GstBufferPool baseclass is doing busy wait in acquire_buffer()
for some reason. That needs to be investigated though, discarding
and re-alloc every GstBuffer is not ideal already.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4935 >
2023-06-27 23:25:09 +00:00
Seungha Yang
9aa1d683a2
d3d11poolallocator: Initialize flush flag with TRUE
...
If it's not active state, it should return flushing from acquire
method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4935 >
2023-06-27 23:25:09 +00:00
He Junyan
6accb7a1f5
va: Only change video format in gst_va_video_info_from_dma_info()
...
The current way of using gst_video_info_set_format() will change all
fields of the GstVideoInfo. We only need to change its format, stride
and offset fields.
In order to keep the consistency with th common drm API, we rename the
gst_va_video_info_from_dma_info() into gst_va_dma_drm_info_to_video_info().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4883 >
2023-06-26 16:18:23 +00:00
Stéphane Cerveau
2974c18a5c
codecparsers: keep naming consistency in GST_H264_LEVEL
...
GST_H264_LEVEL_2 should be used instead of GST_H264_LEVEL_2_0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4737 >
2023-06-26 10:47:36 +00:00
Stéphane Cerveau
c98f5c2bf4
vkvideoutils: fix memory leak in structure's string
...
Retrieve a const char* from structure for "chromat-format" and
avoid extra mem copy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4904 >
2023-06-22 04:42:58 +00:00
Stéphane Cerveau
fc0ee45fb5
vkdevice: fix beta extensions symbol
...
Missing 's' to VK_ENABLE_BETA_EXTENSIONS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4904 >
2023-06-22 04:42:58 +00:00
Stéphane Cerveau
c1149d60c1
vkphysicaldevice: fix leak with queue_family_query_props
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4904 >
2023-06-22 04:42:58 +00:00
Stéphane Cerveau
6920166af4
vulkan: fix C2099 error with VS2019
...
As VK_FORMAT_FEATURE_2_xxx are defined as static const variable, the
vscoce C compiler prevents the initialization of the vk_usage_map
structure with error "C2099: initializer is not a constant".
Init the structure separately.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4904 >
2023-06-22 04:42:58 +00:00
Seungha Yang
de749fa356
cuda: Introduce GST_CUDA_CRITICAL_ERRORS env to abort on critical error
...
Adding GST_CUDA_CRITICAL_ERRORS env variable so that program can be
terminated on unrecoverable error.
Example)
GST_CUDA_CRITICAL_ERRORS=2,700 gst-launch-1.0 ...
In this example, CUDA_ERROR_OUT_OF_MEMORY(2) and
CUDA_ERROR_ILLEGAL_ADDRESS(700) are registered as critical error
and program will be aborted on those errors
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4729 >
2023-06-18 16:44:43 +00:00
Seungha Yang
58b166453d
cuda: Move cuda debug helper function to .cpp
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4729 >
2023-06-18 16:44:43 +00:00
Benjamin Gaignard
465d146864
codecparser: AV1: fix reference frame ordering
...
In AV1 specifications earliest_order_hint is initialized at
beginning of the process and not before each frame ordering.
FFMPEG parser does the same.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1011 >
2023-06-16 01:30:40 +00:00
Seungha Yang
5b6ecf359e
va: Fix Windows build
...
DRM_FORMAT_MOD_LINEAR and DRM_FORMAT_MOD_INVALID are not defined
on Windows
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4864 >
2023-06-15 21:14:29 +00:00
Seungha Yang
842805d7c6
av1decoder: Fix DPB size signalling
...
Take current frame into account for the DPB size signalling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4845 >
2023-06-14 15:16:04 +00:00
Seungha Yang
77b9e1351a
mpeg2decoder: Fix DPB size signalling
...
Take current frame into account for the DPB size signalling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4845 >
2023-06-14 15:16:04 +00:00
Seungha Yang
965e566156
vp9decoder: Fix DPB size signalling
...
Take current frame into account for the DPB size signalling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4845 >
2023-06-14 15:16:04 +00:00
Seungha Yang
7d2beab9b1
vp8decoder: Fix DPB size signalling
...
Take current frame into account for the DPB size signalling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4845 >
2023-06-14 15:16:04 +00:00
Seungha Yang
a88d90b777
d3d11: Log device removed reason
...
... and live objects. It could be useful hint for GPU debugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4170 >
2023-06-14 06:23:12 +00:00
Víctor Manuel Jáquez Leal
06a2b2c7d9
va: dmabuf allocator to use GstVideoInfoDmaDrm
...
Change the internal GstVideoInfo structure in the GstVaDmabufAllocator to
GstVideoInfoDmaDrm in order to keep track of the exported DRM format by the
driver, and thus removing the DRMModifier quark attached as qdata in the
GstMemory. Though, the exposed API isn't updated yet; that has to go in a
second iteration.
Also this patch clean up some code (remove an unused buffer size assignation)
and fix some typos in documentation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:37 +00:00
He Junyan
e00e64116a
va: Add a helper function to detect the surface modifier
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:37 +00:00
He Junyan
a01f2f0206
va: Lower the message level for va_export_surface_to_dmabuf()
...
Some surface formats such as GST_VIDEO_FORMAT_Y42B and GST_VIDEO_FORMAT_RGB
can be created but can not be exported as DMA buffer. You can not say that
this is a driver bug because the driver may never want to share this kind of
surface out of libva.
And this function will be used to detect modifiers later, so the error message
will be annoying.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:37 +00:00
He Junyan
7166fd3863
va: Extend the va_create_surfaces() function to accept modifiers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:37 +00:00
He Junyan
994ab957c1
va: Add a helper function to convert video drm info to video info
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:36 +00:00
He Junyan
547f3e8622
va: Map drm fourcc into va fourcc in video format
...
The fourcc defined in va.h and drm_fourcc.h sometimes is not identical.
For example, the I420 format is defined as "I420" in va.h but defined
as "YU12" in drm_fourcc.h.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4821 >
2023-06-14 01:08:36 +00:00
Seungha Yang
e422a991f3
h265decoder: Calculate DPB size based on level
...
As specified in "A.4 Tiers and levels", calculate DPB size based
on level in order to avoid over preallocated DPB
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4840 >
2023-06-13 02:57:06 +00:00
Seungha Yang
15735a4ef3
d3d11converter: Add support for premultiplied alpha
...
Adding "src-alpha-mode" and "dest-alpha-mode" properties
and performs premultiplied alpha conversion if needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4825 >
2023-06-10 18:12:58 +00:00
Seungha Yang
1aa9e74aaf
cudadownload: Always download CUDA memory if it's bound to decoder
...
Decoder bounded CUDA memory is allocated by driver and the pool size
is fixed. Since we don't know how many buffers would be held by
downstream non-CUDA element, we should download such CUDA memory
and release it back to decoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4810 >
2023-06-08 22:27:06 +00:00
Víctor Manuel Jáquez Leal
53860147c6
va: bump libva version to 1.12
...
Remove all checks in gstva for all version lower than 1.12
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4781 >
2023-06-08 08:50:04 +00:00
Seungha Yang
1e5343f0c6
d3d11memory: Add support for resource sharing via NT handle
...
Adding gst_d3d11_memory_get_nt_handle() method so that GstD3D11Memory
can hold shareable NT handle and for easy reuse of it
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4774 >
2023-06-06 17:54:44 +00:00
Víctor Manuel Jáquez Leal
e074cb55f7
va: remove unused parameters in internal function
...
gst_va_buffer_surface_new() don't use neither format, width nor height.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4768 >
2023-06-04 19:16:53 +02:00
Víctor Manuel Jáquez Leal
06d793033d
vulkan/format: use basic features (v1) as fallback
...
if vkGetPhysicalDeviceFormatProperties2 isn't available.
This approach assumes that, for basic features flags symbols,
VkFormatFeatureFlagBits and VkFormatFeatureFlagBits2 are binary equivalent.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4746 >
2023-06-01 13:58:47 +00:00
Matthew Waters
0a74a967e3
vulkan/format: don't rely on vulkan header version for function availability
...
e.g. android will have update vulkan.h headers but old platforms will
not contain the function and will result in a link error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4746 >
2023-06-01 13:58:47 +00:00
Mathieu Duponchelle
211928ca41
webrtc/nice: put usage of OPTION_CONSENT_FRESHNESS behind check
...
See https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/257
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4750 >
2023-06-01 00:42:28 +00:00
Colin Kinloch
82c449ce00
waylandsink: Emit "map" signal boarder surface is ready
...
This allows gtkwaylandsink to queue a draw of its gtk widget at the
correct time, avoiding a race.
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4722 >
2023-05-31 18:57:56 +00:00
Víctor Manuel Jáquez Leal
8b75e5fb57
vkvideoutils: fix code-style
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4716 >
2023-05-26 10:08:27 +02:00
Víctor Manuel Jáquez Leal
365454790a
vkphysicaldevice: fetch queue family query result support
...
And merged in a single structure the queue family operations report.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4716 >
2023-05-26 10:08:27 +02:00
Víctor Manuel Jáquez Leal
e2a40c58bf
vkimagebufferpool: chain the correct structure
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4716 >
2023-05-26 09:45:07 +02:00
Víctor Manuel Jáquez Leal
e9414b9582
vkvideoutils: fix bug for chroma string comparison
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4716 >
2023-05-26 09:45:07 +02:00
Víctor Manuel Jáquez Leal
8670a023f1
vkimagebufferpool: prepare new allocated buffers
...
This means change initial memory undefined layout and access to the ones
required for their usage.
This is only used if VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME is available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:30 +00:00
Víctor Manuel Jáquez Leal
e177080bec
vulkan: number of memories in buffer rather than number of planes
...
New vulkan formats don't match the number of planes with the number of memories
attached to the buffer. This patch changes the pattern of using planes for
traverse the memories with the number of attached memories.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
565fe3291e
vkutils: add gst_vulkan_get_or_create_image_view_with_info()
...
It's a generalization of the original gst_vulkan_get_or_create_image_view().
The reason for passing the whole VkImageViewCreateInfo structure rather than
just the missing fields, is because VkImageSubresourceRange and
VkComponentMapping can be different and those are most of VkImageViewCreateInfo.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
bb29b4dfec
vkdevice: enable device optional extensions
...
Enable before-hand what the user might use.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
d7bbcffe14
vkformat: add VK_FORMAT_G8_B8R8_2PLANE_420_UNORM
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
b1321f78d3
vkswapper: use gst_vulkan_format_to_video_format()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
d84926b60f
vkformat: add gst_vulkan_format_to_video_format()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
ce7256e0d3
vulkan: use gst_vulkan_format_get_aspect()
...
In order to use it, without depending in a previous calling of
_create_info_from_args(), VkFormat as input parameter to
gst_vulkan_image_memory_init() was added.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
b8e908131d
vkformat: add gst_vulkan_format_get_aspect()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
26d00ba0cc
vkimagebufferpool: fail if image cannot be allocated
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
d91c17264c
vkimagebufferpool: gst_vulkan_image_buffer_pool_config_set_decode_caps()
...
This is going to be used when the pool is used by a video decoder for
VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, since the frame allocation needs the
VkVideoProfileInfoKHR, and for that here GstCaps is used to wire it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
07271fc648
vkvideoutils: add gst_vulkan_video_profile_{to/from}_caps()
...
Add this new source file with utils for video profile mapping with GstCaps.
These method is used to pass this information along GStreamer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00
Víctor Manuel Jáquez Leal
c7c5dedd7f
vkimagebufferpool: use gst_vulkan_image_memory_alloc_with_image_info()
...
As the pool will be only used for images with usage
VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR only one layer has to be allocated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 >
2023-05-19 04:26:29 +00:00