Hou Qi
c3f86005de
gstplay: check whether stream is seekable before seeking when state change
...
If state is changing from playing to paused, and rate is reset to 1
which causes seek position is valid, current code will do seek for
streams that are not seekable. So need to check whether stream is
seekable before seeking.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7441 >
2024-09-03 15:42:03 +00:00
Tim-Philipp Müller
59d56bcb3f
gst-plugins-bad: use g_sort_array() instead of deprecated g_qsort_with_data()
...
Fixes compiler warnings with the latest GLib versions.
See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4127
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7384 >
2024-09-02 22:31:34 +00:00
Oskar Fiedot
327df9766d
analytics: Change pointers in getters to const
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7403 >
2024-09-02 12:27:37 +00:00
RSWilli
b2c4f68328
webrtc: fix documentation error in GstWebRTCKind
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7407 >
2024-08-24 10:08:57 +00:00
Jan Schmidt
6cf3d32886
gstplayer: Check GstPlayerSignalDispatcher type
...
Before trying to retrieve a GMainContext from a provided
GstPlayerSignalDispatcher, check that it is actually
GstPlayerGMainContextSignalDispatcher. If not, use the
default GMainContext for dispatching signals via the adapter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7392 >
2024-08-21 20:25:59 +10:00
Víctor Manuel Jáquez Leal
2b52b07a2f
vkencoder-private: remove duplicated structure definition
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7354 >
2024-08-15 10:32:26 +00:00
Víctor Manuel Jáquez Leal
591eb2b527
vkencoder-private: don't override error on get_format() call
...
If gst_vulkan_video_encoder_get_format() fails it fills the error structure, so
it shouldn't be filled again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7354 >
2024-08-15 10:32:26 +00:00
Víctor Manuel Jáquez Leal
57eb2c700b
vkencoder-private: There's no need to store the aligned offset of 0
...
Since it's 0 too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7354 >
2024-08-15 10:32:26 +00:00
Víctor Manuel Jáquez Leal
bc3317414b
vkencoder-private: use g_clear_pointer to unref packed headers
...
And use g_ptr_arra_unref() Instead of using the unrecommended g_ptr_array_free().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7354 >
2024-08-15 10:32:26 +00:00
Víctor Manuel Jáquez Leal
e5f40b65f2
vkencoder-private: don't check twice for encoder parameter
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7354 >
2024-08-15 10:32:26 +00:00
Víctor Manuel Jáquez Leal
d81186cbfc
vkencoder-private: fix code style
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7354 >
2024-08-15 10:32:26 +00:00
Qian Hu (胡骞)
104dcc90f1
h26xparse: bypass check for length_size_minus_one
...
fix playback fail, when some file with length_size_minus_one == 2
According to the spec 2 cannot be a valid value, so that stream has a
bad config record. but breaking the decoding because of that, perhaps is too much.
and ffmpeg seem not check this
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7213 >
2024-08-14 08:31:15 +00:00
Marijn Suijten
006ac293bc
vulkan: Replace open-coded precondition checks with g_return_val_if_fail
...
While analyzing gst_vulkan_get_or_create_image_view_with_info() it
seems obvious that this function returns NULL, and that this should be
covered in the return annotations. However, closer inspection indicates
that this is only a precondition check when the incoming arguments are
incompatible with each other, and should not be considered as a function
that optionally returns a pointer.
Signify this by using precondition checks instead of an opencoded
if-return-NULL.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5736 >
2024-08-12 19:23:08 +00:00
Marijn Suijten
10464f352f
vulkan: Annotate queue getter as nullable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5736 >
2024-08-12 19:23:08 +00:00
Marijn Suijten
848256a7f5
vulkan: Mark some pointers to Vulkan info structures as const
...
These pointers are only used as read-only arguments, and should not be
treated as mutable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5736 >
2024-08-12 19:23:08 +00:00
Marijn Suijten
adf031a222
vulkan: Add missing out
annotation to decoder_out_format()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5736 >
2024-08-12 19:23:08 +00:00
Marijn Suijten
e5b627857a
vulkan: Fix context get/set annotations
...
Most notably the out annotations for gst_context_get_* were missing,
causing us to generate the wrong bindings for Rust.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5736 >
2024-08-12 19:23:08 +00:00
Tim-Philipp Müller
94ba97ab80
mpegts: fix stray gtk-doc chunk
...
Trips up g-ir-scanner it seems:
gstmpegtsdescriptor.h:614: Error: GstMpegts: Skipping invalid GTK-Doc comment block
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6793#note_2517855
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7324 >
2024-08-08 18:09:02 +00:00
Jan Schmidt
4b775228bf
webrtcbin: Make basic rollbacks work
...
Fixes for basic rollback (from have-local-offer or have-remote-offer to
stable). Allow having no SDP attached to the webrtc session description
in that case, and avoid all the transceiver and ICE update logic
normally applied when entering the stable signalling state
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7304 >
2024-08-07 21:10:43 +10:00
Jan Schmidt
c0c0615964
webrtc: Add missing G_BEGIN/END_DECLS in header
...
Fix using webrtc.h from C++ by adding the GLib begin/end
decls markers around the header contents in webrtc_fwd.h
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7312 >
2024-08-06 12:54:45 +00:00
Jan Schmidt
cafb999fb0
webrtc: Fix transceiver current-direction
property
...
Fix a typo registering the `current-direction` property
that made it just be a proxy for `direction` instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7237 >
2024-08-05 13:15:39 +00:00
Matthew Waters
8dac91537d
cuda/nvcodec: Add support for importing and producing embedded NVMM memory
...
As produced on the Nvidia Jetson series of devices.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7274 >
2024-08-02 01:59:07 +00:00
Víctor Manuel Jáquez Leal
28e16f897e
vkimagebufferpool: fix documentation grammar
...
Original-patch-by: Matthew Waters <matthew@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7288 >
2024-08-01 10:09:34 +00:00
Víctor Manuel Jáquez Leal
baac191d13
vkimagebufferpool: expose config_get_allocation_params()
...
Also enhanced the documentation and added a config parameter check for
gst_vulkan_image_buffer_pool_config_set_allocation_params()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7219 >
2024-07-31 12:15:43 +00:00
Edward Hervey
a38e244794
vulkan: Add missing since markers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7277 >
2024-07-30 13:46:42 +00:00
Víctor Manuel Jáquez Leal
fad06c9b6f
vkimagebufferpool: refactor how image usage is set
...
Now that driver version is expected to be equal or superior to 1.3.275 the bug
in NVIDIA and RADV regarding usage is solved, we can revert commit b7ded81f7b
.
Also this patch sets the internal usage variable after all the validation are
run, thus the state don't keep an invalid usage.
Finally, the now unused supported_usage variable is dropped.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7247 >
2024-07-29 17:10:15 +02:00
Víctor Manuel Jáquez Leal
bb9eb6f477
vkimagebufferpool: add encoding usage as video usage
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7247 >
2024-07-29 17:10:15 +02:00
Víctor Manuel Jáquez Leal
541e2e93ca
vkimagebufferpool: reset the number of profiles at set_config()
...
Virtual method set_config() can be called several times, and if the number of
profiles counter isn't reset the pool will reach an error state.
The purpose of number of profiles is to check the number of valid vulkan video
profiles (two in the case of transcoding use-case, for example) so it's local to
set_config() virtual method.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7247 >
2024-07-29 17:10:14 +02:00
Víctor Manuel Jáquez Leal
d8e384085a
vulkan: encoder and decoder runtime check for driver version 1.3.275
...
Which is the one checked in meson. See commit 21ee264d65
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7247 >
2024-07-29 17:10:14 +02:00
Víctor Manuel Jáquez Leal
8faefccfd5
va: refactor dmabuf handle close
...
Moved the close loop into a function guarded for non-win32 platforms.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7254 >
2024-07-29 10:34:56 +02:00
Seungha Yang
f04f6f43c3
d3d12frame: Fix frame copy method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7243 >
2024-07-27 04:18:47 +09:00
Seungha Yang
28a7adf4dd
d3d12memory: Check heap flag before trying to create NT handle
...
CreateSharedHandle() will fail eventually if the resource was created
with non-shared heap. Instead of trying to create handle blindly,
validate resource first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7243 >
2024-07-27 04:17:03 +09:00
Seungha Yang
4a6daad517
d3d12: Suppress fence data object leak report
...
We don't release GstD3D12Device intentionally, thus
a GstD3D12FenceDataPool owned by a device will not be released
but that's expected leak.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7243 >
2024-07-27 03:23:22 +09:00
Seungha Yang
9a8d7db5de
d3d12: Fix debug category name
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7243 >
2024-07-27 03:23:22 +09:00
Jan Schmidt
1ebbcc31ef
va: Fix dmabuf handle leaks
...
Close dmabuf handles manually when they're not going to
be passed into GStreamer FD memory, to avoid fd handle
leaks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7240 >
2024-07-26 10:32:48 +00:00
Seungha Yang
0b285fc1a1
cuda: Fix runtime compiler loading with old CUDA tookit
...
Fallback to PTX if CUBIN symbol is unavailable
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3685
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7220 >
2024-07-23 19:53:09 +00:00
Víctor Manuel Jáquez Leal
2387c3c4aa
vkimagebufferpool: no aliased images for video decoding
...
This fix regression in validation layer introduced by commit 3a2e8d2d19
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7211 >
2024-07-22 16:46:53 +00:00
Víctor Manuel Jáquez Leal
423f0d5384
vkdecoder: handle barrier internally for coincide references
...
This is to avoid a regression in validation layer (introduced by commit
916c4e70cd) when using vulkandownload
VUID-VkImageMemoryBarrier2-srcAccessMask-03914 .. vkCmdPipelineBarrier2():
pDependencyInfo->pImageMemoryBarriers[1].srcAccessMask (VK_ACCESS_TRANSFER_READ_BIT)
is not supported by stage mask (VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR)
since vulkandownload set DPB memories' access mask to
VK_ACCESS_TRANSFER_READ_BIT, while they are retain by the DPB queue, so when
they are used as DPB after been shown, this validation error is raised.
Must of the barrier values are set ignoring the previous state of the vulkan
images.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7211 >
2024-07-22 16:46:53 +00:00
Víctor Manuel Jáquez Leal
035e0698cf
vkoperation: fix documentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7203 >
2024-07-22 10:49:33 +02:00
Víctor Manuel Jáquez Leal
e91ffae1f0
vkimagebufferpool: reset buffer's access flags
...
The access flags are kept around the operations, but when the buffer is
released, the access flag should be reset to its original value, since queue
transfers can be done along the pipeline and, when reusing the buffer, the new
queue might not support the latest access flag.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7165 >
2024-07-19 14:45:39 +02:00
Víctor Manuel Jáquez Leal
2990cc5f71
vulkan: add source pipeline stage to _operation_add_frame_barrier()
...
Instead of dragging the last destination pipeline stage as current barrier
source pipeline stage (which isn't a valid semantic) this patch adds a parameter
to gst_vulkan_operation_add_frame_barrier() to set the source pipeline stage to
define the barrier.
The previous logic brought problems particularly with queue transfers, when the
new queue doesn't support the stage set during a previous operation in a
different queue.
Now the operation API is closer to Vulkan semantics.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7165 >
2024-07-19 14:45:39 +02:00
Seungha Yang
9a06330d09
d3d12converter: Update internal method names
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7193 >
2024-07-18 14:17:43 +00:00
Seungha Yang
b37bfc02f5
d3d12: Remove unnecessary event handles
...
null event NT handle to ID3D12Fence::SetEventOnCompletion()
will block the calling CPU thread already, thus it has no point that
creating an event NT handle in order to immediate wait for fence at CPU-side.
Note that passing a valid event NT handle to the fence API might be useful
when we need to wait for the fence value later (or timeout is required),
or want to wait for multiple fences at once via WaitForMultipleObjects().
But it's not a considered use case for now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7176 >
2024-07-16 19:17:15 +00:00
Víctor Manuel Jáquez Leal
c7259f3a5b
vulkan: remove beta extensions guard for encode operations
...
This is not needed anymore since encoder operations are not beta anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7179 >
2024-07-16 15:08:39 +00:00
Seungha Yang
89096dde38
h264decoder: Update output frame duration when second field frame is discarded
...
In case of an interlaced stream, if each field picture belongs to
different GstVideoCodecFrame, updates output frame's duration
based on discarded second field picture's timestamp information.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7132 >
2024-07-15 16:36:50 +00:00
Víctor Manuel Jáquez Leal
058ae85b22
vadisplay: fix minor version check
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7164 >
2024-07-12 14:34:31 +00:00
Víctor Manuel Jáquez Leal
3a2e8d2d19
vkimagebufferpool: set image creation flags in needed
...
set ALIAS bit if the usage is for both sampled and storage.
set MUTABLE_FORMAT and EXTENDED_USAGE bits if the image is a multiplane YUV and
uses multiple memories.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6798 >
2024-07-11 20:28:04 +02:00
Víctor Manuel Jáquez Leal
0f8f2d0057
vkformat: add gst_vulkan_format_get_map function
...
This will be used later to compare the format selected by
gst_vulkan_format_from_video_info_2(), to verify if it's multiple memory buffer
or not.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6798 >
2024-07-11 20:28:04 +02:00
Víctor Manuel Jáquez Leal
2d17bba6f1
vkimagebufferpool: define a default usage
...
Define a default usage and use it instead of repeating the same bitwise
addition.
Therefore, when usage is defined as zero, the usage is defined with the
format's supported usage and the default usage, now without the storage
bit, but with color and input attachment bits.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6798 >
2024-07-11 10:52:19 +02:00
Víctor Manuel Jáquez Leal
b1eebec485
vkformat: unward G8_B8R8_2PLANE_420_UNORM
...
Since it exists since VK_VERSION_1_1. It should be ignored by usage flags or the
no_multiplane parameter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6798 >
2024-07-11 10:52:19 +02:00
Robert Mader
abf3361de3
waylandsink: Fix surface cropping for rotated streams
...
The wp_viewport source rectangle is applied in surface-local coordinates
after buffer_transform and buffer_scale. Therefore we need to swap width
and height for 90/270 deg. rotations.
This fixes playback of rotated videos such as portrait videos from
mobile devices.
See also: https://wayland.app/protocols/viewporter#wp_viewport
Fixes: 0b648f9a2d
("waylandsink: Crop surfaces to their display width height")
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7136 >
2024-07-10 17:13:54 +00:00
Nirbheek Chauhan
8619e163bf
vk-video: Fix uint64_t string format errors
...
With clang on macOS:
```
error: format specifies type 'long' but the argument has type 'uint64_t' (aka 'unsigned long long')
...
error: format specifies type 'unsigned long' but the argument has type 'VkImageView' (aka 'unsigned long long')
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7091 >
2024-07-07 13:20:12 +00:00
Nirbheek Chauhan
156a016313
meson: Find MoltenVK with the objc++ compiler everywhere
...
When building for iOS in Cerbero, as of MoltenVK SDK 1.3.283, we have
to statically link to libMoltenVK since it no longer ships a dylib.
This requires linking to libc++, so we find the dep with the objc++
compiler to ensure that meson uses the right linker.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7091 >
2024-07-07 13:20:12 +00:00
Nirbheek Chauhan
5ed3e045d8
meson: Fix vulkan library build on iOS
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7091 >
2024-07-07 13:20:12 +00:00
Nirbheek Chauhan
5c41d387e3
meson: Use / instead of join_paths for vulkan
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7091 >
2024-07-07 13:20:12 +00:00
Nirbheek Chauhan
54a6643986
meson: Fix automagic dependency checks in gstvulkan
...
Windowing, in particular, was getting silently disabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7091 >
2024-07-07 13:20:12 +00:00
jadarve
fd25409a70
doc: fix Since marker
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6793 >
2024-07-03 08:40:22 +00:00
jadarve
3323245606
mpegts: Added missing function prototype
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6793 >
2024-07-03 08:40:21 +00:00
jadarve
5c3f3d8f16
doc: fix docstrings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6793 >
2024-07-03 08:40:21 +00:00
jadarve
14c4d62915
doc: fix single line Since comments
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6793 >
2024-07-03 08:40:21 +00:00
jadarve
7f35a4f7c3
doc: fix Since marker for gst_mpegts_descriptor_from_metadata_pointer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6793 >
2024-07-03 08:40:21 +00:00
jadarve
fad36407bb
doc: update docstrings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6793 >
2024-07-03 08:40:21 +00:00
jadarve
0a57f361ce
mpegts: use GstMpegtsMetadataApplicationFormat in metadata descriptor
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6793 >
2024-07-03 08:40:21 +00:00
jadarve
992a35b8f9
mpegts: added metadata pointer descriptor
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6793 >
2024-07-03 08:40:21 +00:00
jadarve
669a351c78
mpegts: moved metadata descriptors to gstmpegtsdescriptor
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6793 >
2024-07-03 08:40:20 +00:00
Seungha Yang
6cac053549
d3d12bufferpool: Use shared heap by default
...
... to make cross-api resource sharing possible
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7119 >
2024-07-01 20:18:42 +00:00
Thibault Saunier
5f50b93f0a
meson: Remove duplicated library definitions for gstmse and gstanalytics
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7109 >
2024-06-30 15:43:27 +00:00
Seungha Yang
c2531853fc
d3d12commandallocatorpool: Remove unused methods
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7108 >
2024-06-29 20:47:39 +09:00
Seungha Yang
76fd732d42
qsv: Check d3d shared resource tier using D3D11 API
...
We can check the tier using d3d11 API. Thus, don't need to
create d3d12 device
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7099 >
2024-06-26 16:25:06 +00:00
Seungha Yang
e71ffe978a
d3d12converter: Make sure data upload before executing compute shader
...
Use read d3d12 map, so that upload can happen if needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:49:19 +09:00
Seungha Yang
245e15eab0
d3d12: Add ARGB64_LE format support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:11:21 +09:00
Seungha Yang
8c538c8122
d3d12: Add AV12 format support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:11:13 +09:00
Seungha Yang
2703f41da6
d3d12: Add NV16, NV61, and NV24 format support
...
Can reuse NV12 shader for the formats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:10:50 +09:00
Seungha Yang
bb0f95a67f
d3d12: Add A420, A422 and A444 format support
...
Adding A420/A422/A444 and its 10/12/16 bits format support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:10:50 +09:00
Seungha Yang
52bc28c93d
d3d12: Add YUV 4:1:0 and 4:1:1 format support
...
Adding Y41B, YUV9, and YVU9 format support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7093 >
2024-06-24 20:10:50 +09:00
Seungha Yang
25514c8fc1
d3d12: Add v216, v210, r210, v308, IYU2, RGB, BGR format support
...
Reuse the compute shader implemented for d3d11
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7092 >
2024-06-23 22:30:40 +09:00
Seungha Yang
c1498851b3
d3d12: Add support for UYVY, VYUY, and YVYU
...
Use already implemented compute shaders
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7092 >
2024-06-23 22:30:40 +09:00
Seungha Yang
6fcb5f6ae7
d3d12: Add RGB{16,15} and BGR{16,15} format support
...
d3d12 device can support B5G6R5_UNORM and B5G5R5A1_UNORM formats
in pixel shader. If the format is not supported by device,
U16_UINT format with compute shader will be used, like d3d11converter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7092 >
2024-06-23 22:30:40 +09:00
Seungha Yang
94bb9fec58
d3d12: Add BGRA64 and BGR10A2 format support
...
Map BGRA64 and BGR10A2 to Y416 and Y410, respectively,
since it's possible RGB space decoder output
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7092 >
2024-06-23 22:30:30 +09:00
Seungha Yang
66cc3ff84e
d3d12: Add support for DXGI native packed YUV formats
...
Adding YUY2, Y210, Y216, and Y416 format support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7092 >
2024-06-23 22:11:32 +09:00
Seungha Yang
dd4d85272e
d3d12converter: Fix Y410 conversion
...
Adding format conversion helper and use compute shader in case that
output format does not support RTV.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7088 >
2024-06-23 10:53:18 +00:00
Seungha Yang
f432e61bdc
d3d12memory: Add support for UAV descriptor cache
...
Cache shader invisible UAV descriptor in memory
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7088 >
2024-06-23 10:53:18 +00:00
Seungha Yang
ec06b0445e
d3d12: Format table refactoring
...
Hide format table from header. This is a preparation for compute
shader based format support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7088 >
2024-06-23 10:53:18 +00:00
Seungha Yang
5d18d8a109
d3d12converter: Upload shader buffer resources earlier
...
Schedule (semi-)static resource upload at converter creation time.
And use single resource for all vertex, index, and constant
buffers, since separate resources will waste GPU memory.
Note that size and address of a committed resource are 64K aligned
even if requested buffer size is small.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7081 >
2024-06-21 20:16:19 +09:00
Seungha Yang
c5785fbeec
d3d12converter: Make gamma remap work as intended
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7073 >
2024-06-20 17:54:12 +00:00
Seungha Yang
e90880e988
d3d12device: Don't warn for out of range device index
...
It can happen during enumeration as well, and it's expected error
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7070 >
2024-06-20 14:23:13 +00:00
Seungha Yang
2983c50a9f
d3d12device: Dump device feature support
...
... and use CD3DX12FeatureSupport helper class in d3dx12.h
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7070 >
2024-06-20 14:23:13 +00:00
Seungha Yang
bdb12db5c6
d3d12device: Prevent too many in-flight GPU commands
...
Even if each element is checking its own in-flight commands,
total number of commands can get larger in case of complex pipeline.
Limits total number of in-flight commands at command queue level
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7066 >
2024-06-20 00:58:45 +09:00
Seungha Yang
143efa2f86
d3d12commandqueue: Detect device removed event
...
Early return if device removed event is detected
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7066 >
2024-06-20 00:07:41 +09:00
Seungha Yang
2ec7d82bd7
d3d12: Move fence setter helper method to gst-libs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:48 +00:00
Seungha Yang
fa7c4a2e39
d3d12converter: Update API signature
...
Always use device's main direct queue, and control gpu waiting
behavior by using boolean value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:48 +00:00
Seungha Yang
f6eb3a01c0
d3d12memory: Hide fence value from header
...
Instead of exposing fence value to wait in header, user setter/getter
methods.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Seungha Yang
49c4247cb3
d3d12device: Add helper method for getting fence handle
...
Add get_fence_handle() method so that caller can get command queue's
dedicated fence handle from device
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Seungha Yang
289bc1d440
d3d12: Remove notify_com and notify_mini_object helper methods
...
Use private macros instead of exposing multiple APIs for the same thing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Seungha Yang
6942868bda
d3d12commandqueue: Update API name and arguments
...
Accepts multiple fences since single command list may have
multiple dependent resources which are associated with
different GPU engines
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Seungha Yang
713ea313f8
d3d12device: Use HRESULT return code if possible
...
Make function signature consistent with that of command queue
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7057 >
2024-06-19 13:19:47 +00:00
Stéphane Cerveau
a4c976dd20
vkdecoder: support layered and non dedicated DPB
...
As NVIDIA Amperium. In this case the each output buffer is also a DPB,
but using a different view layer.
Still pending a validation layer issue:
VUID-VkVideoBeginCodingInfoKHR-flags-07244
Co-authored-by: Victor Jaquez <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6954 >
2024-06-19 10:37:32 +00:00
Daniel Morin
55b12a80d6
analytics: Add validation on classification analytics-meta
...
- Add valiation on parameters passed to gst_analytics_cls_add_cls_mtd.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7046 >
2024-06-18 19:13:10 +00:00
Stéphane Cerveau
f40d947c4a
vkoperation: support for query_result_status
...
query_result_status can be optional so we should not create
the query pool if the queue does not support it,
ie, AMD does not support VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR
In other use case such as VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, the
query pool must be created.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7043 >
2024-06-18 12:13:41 +00:00
Stéphane Cerveau
71ebb20267
vkphysicaldevice: rename query to query_result_status
...
As only queryResultStatusSupport can be optional,
the variable name should be more specific.
queryResultStatusSupport reports VK_TRUE if query type
VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR and use of
VK_QUERY_RESULT_WITH_STATUS_BIT_KHR are supported.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7043 >
2024-06-18 12:13:41 +00:00