He Junyan
35390de50d
vacompositor: consider the DMA kind input for sink pad
...
Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5160 >
2023-12-16 10:56:09 +00:00
He Junyan
0bbaa00c3f
vacompositor: Override the update_caps() of video aggregator class
...
The input of the vacompositor may be DMA buffers. And in this case, the input
caps has the format=DMA_DRM, which can not be recognized by base video
aggregator class' find_best_format() function. So we need to override the
update_caps() virtual function.
Also we consider the DMA kind caps in negotiated_src_caps() for output.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5160 >
2023-12-16 10:56:09 +00:00
He Junyan
e68724c8e0
vacompositor: add helper function to get formats from caps
...
Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5160 >
2023-12-16 10:56:09 +00:00
He Junyan
c76999fe7b
vacompositor: add helper function to choose format
...
The function is based on the most supported formats by Intel/Mesa VA drivers.
Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5160 >
2023-12-16 10:56:09 +00:00
He Junyan
eb4d2dd204
vacompositor: record the input caps for each input pad
...
The caps of each input sink pad wil decide the final output format and
caps of the src pad.
Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5160 >
2023-12-16 10:56:09 +00:00
Seungha Yang
800a83b435
d3d12decoder: Implement threaded decoding
...
To achieve maximum throughput, waiting on command commit thread
is not ideal. And render-delay will introduce unwanted latency.
Best is to split thread and wait finished decoding job in a dedicated
output thread
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5812 >
2023-12-15 22:56:33 +09:00
Seungha Yang
7471db9a30
d3d12decoder: Disable d3d11 interop
...
It does not seem to work with some AMD iGPU
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5812 >
2023-12-15 20:40:21 +09:00
Seungha Yang
7afa914054
d3d12fence: Reset fence after waiting done
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5812 >
2023-12-15 19:48:40 +09:00
Seungha Yang
a24a155279
d3d12: Enable debug layer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5812 >
2023-12-15 19:48:40 +09:00
Seungha Yang
7443cc00b5
d3d12: Requires ID3D12Device4 interface
...
ID3D12Device4::CreateCommandList1() method is required
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5812 >
2023-12-15 19:48:39 +09:00
Seungha Yang
818c95e8c3
d3d12: Update allocation params signalling
...
Sync up with d3d11 implementation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5812 >
2023-12-15 19:48:36 +09:00
Víctor Manuel Jáquez Leal
8210784dab
vabasedec: clean up decide_allocation() vmethod
...
When creating a new VA pool set config size to zero because it's not used.
Also, given the potential different sizes from software buffer pools and VA
buffer pools, this patch handle that potential different values.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5805 >
2023-12-14 12:50:32 +00:00
Víctor Manuel Jáquez Leal
4fab6bb45a
vabasetransform: clean up decide_allocation() vmethod
...
When creating a new VA pool set config size to zero because it's not used.
Also, given the potential different sizes from software buffer pools and VA
buffer pools, this patch handle that potential different values.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5805 >
2023-12-14 12:50:32 +00:00
Víctor Manuel Jáquez Leal
33e49023ff
vacompositor: clean up decide_allocation() vmethod
...
When creating a new VA pool set config size to zero because it's not used.
Also, given the potential different sizes from software buffer pools and VA
buffer pools, this patch handle that potential different values.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5805 >
2023-12-14 12:50:32 +00:00
Víctor Manuel Jáquez Leal
1c7ce208bd
vapluginsutils: add helper gst_va_create_other_pool()
...
This helper function creates a software-based buffer pool, where if size is
zero, its value is retrieved from the canonical size.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5805 >
2023-12-14 12:50:32 +00:00
Víctor Manuel Jáquez Leal
4a22cc8fb3
va: no need to provide a buffer size for VA pool
...
VA drivers allocate surfaces given their properties, so there's no need to
provide a buffer size to the VA pool.
Though, the buffer size is provided by the driver, or the canonical size
is used for single planed surfaces.
This patch removes the need to provide a size for the function
gst_va_pool_new_with_config() and adds a helper method to retrieve the surface
size, gst_va_pool_get_buffer_size(). Also change the callers accordingly.
Changes for custom VA pool creation will be addressed in the following commits.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5805 >
2023-12-14 12:50:32 +00:00
Seungha Yang
fab1c5f953
d3d12: Use d3dx12.h helper library
...
... and remove manually implemented helper methods
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5807 >
2023-12-14 18:08:00 +09:00
Seungha Yang
38c04a5f34
d3d12: Use DirectX-Headers and drop MinGW build support
...
There are some conflicts between MinGW toolchan and DirectX-Headers.
And due to ABI differences, more fixes are required.
We will support only MSVC build for now
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5807 >
2023-12-14 18:08:00 +09:00
Mengkejiergeli Ba
41f13f4373
msdk: Remove dead code
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5796 >
2023-12-14 00:47:28 +00:00
He Junyan
5ae7bbf5fb
va: h265dec: Add support for more -still and -intra profiles
...
They are actually compitable with the main and main-10 profiles.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5797 >
2023-12-12 21:30:16 +08:00
He Junyan
5345652896
va: Add decoder compatible caps string field into profiles' map
...
Some profiles such as main or main-10 in HEVC can support more
compatible profiles such as main-still-picture or main-10-intra.
We should add them into decoder's sink caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5797 >
2023-12-12 21:30:08 +08:00
He Junyan
354aceb9cd
va: Add the entrypoint parameter to gst_va_profile_caps()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5797 >
2023-12-12 20:41:54 +08:00
Mengkejiergeli Ba
484a636841
msdkvpp: Add fix_format for src caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Mengkejiergeli Ba
5536f742e9
msdk: Add a help func to fix the map
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Mengkejiergeli Ba
8081a665f8
msdk: Remove func to export dmabuf to va surface
...
Since we use va allocator and va dma allocator to create surface, the
surface is already exported in the case of dma allocator. So remove
redundant export function in msdk allocator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Yinhang Liu
61282ebd34
msdkenc: Add modifier support
...
Co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Yinhang Liu
9ccdfae545
msdkvpp: Add modifier support
...
Co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Yinhang Liu
63c0fdd29a
msdkdec: Add modifier support
...
Co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Mengkejiergeli Ba
e65e954e2b
msdk: Config pool with max/min number of buffers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:12 +08:00
Yinhang Liu
e668cf9305
msdk: Add help functions to handle drm caps
...
Co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 14:56:03 +08:00
Yinhang Liu
bf4703e9a0
msdk: Add modifier when creating dynamic caps
...
Add modifier in gst-inspect for dma features.
Co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 11:30:07 +08:00
Yinhang Liu
8100b04ea0
msdk: Add a helper function to get supported modifiers
...
The modifiers will be used when creating caps for dma feature.
co-authored-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5208 >
2023-12-12 10:22:11 +08:00
Alexander Slobodeniuk
651dcb4912
d3d11: fix building with address sanitizer
...
When building with address sanitizer it gives next error:
"gstd3d11window_corewindow.cpp : fatal error C1128: number of sections
exceeded object file format limit: compile with /bigobj"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5779 >
2023-12-07 21:36:20 +00:00
Mengkejiergeli Ba
be7e502769
msdk: Let deviceID config the mfx implementation
...
In multi-card scenario, user can set GST_MSDK_DRM_DEVICE env variable to
choose the device. This patch can align vpl's queried results with the
users' choice by passing deviceID when creating mfx implementation.
Co-authored-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5697 >
2023-12-07 11:17:20 +08:00
Seungha Yang
012222bcb3
cudaipcsink: Fix deadlock on stop
...
Manually close connection if client does not hold any shared memory
on stop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5747 >
2023-12-06 16:09:27 +00:00
Seungha Yang
ed5987efd4
d3d11ipcsink: Fix deadlock on stop
...
Manually close connection if client does not hold any shared memory
on stop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5747 >
2023-12-06 16:09:27 +00:00
Seungha Yang
b168647073
nvdec: Fix division by zero when calculating buffer duration
...
Don't try to calculate buffer duration from variable framerate
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5764 >
2023-12-06 13:38:09 +00:00
renjun wang
4ff2f07e51
v4l2codecs: av1: Fix typo in debug log message
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5722 >
2023-12-06 10:25:24 +00:00
Seungha Yang
adfa4d459e
qsv: Update plugin doc cache
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5706 >
2023-11-30 21:55:24 +09:00
Seungha Yang
865d7a1351
qsvh265dec: Add support for GBR decoding
...
Use GBR equivalent output formats if RGB colorspace is detected
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5706 >
2023-11-30 21:50:26 +09:00
Seungha Yang
e4729e5784
qsvh265dec: Add support for HEVC RExt profiles
...
Adding 4:2:0 high bitdepth and 4:2:2/4:4:4 decoding support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5706 >
2023-11-30 21:38:04 +09:00
Seungha Yang
0178cc188b
qsv: Add util methods for video format mapping
...
Remove duplicated format mapping code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5706 >
2023-11-30 21:38:04 +09:00
Seungha Yang
c432a73e80
msdk: Fix build error after d3d11 API change
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3158
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5723 >
2023-11-28 19:17:20 +09:00
Seungha Yang
461c4bc32c
d3d11: Add support for more packed formats using compute shader
...
Adding below listed formats support, and reorders supported format
list based on preference
<YUV 4:2:2>
UYVY, VYUY, YVYU, v210, v216
<YUV 4:4:4>
v308, IYU2
<RGB 16bits per pixel>
RGB16, RGB15, BGR16, BGR15
<RGB 8bits per channel>
ARGB, xRGB, ABGR, xBGR, RGB, BGR
<RGB 10bits per channel>
r210, BGR10A2
<RGB 16bits per channel>
BGRA64
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5717 >
2023-11-27 15:14:09 +00:00
Seungha Yang
f23d4475b3
d3d11convert: Allow MSAA only for native DXGI formats
...
Enable MSAA only if converter can render directly on texture
without post-processing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5717 >
2023-11-27 15:14:09 +00:00
Seungha Yang
845f5d4856
d3d11: Rework memory allocation params signalling
...
Hide GstD3D11AllocationParams detail from public header and
set setter methods.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5717 >
2023-11-27 15:14:09 +00:00
Seungha Yang
721533d042
d3d11: Use shader model 4
...
Since shader model 4 is sufficient for the current pixel shader
implementations, prebuild HLSL with shader model 4 as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5709 >
2023-11-25 20:27:43 +09:00
Seungha Yang
3ab8d520fb
d3d11: Drop legacy device support
...
Direct3D feature level 10 supported GPUs were released
more than 15 years ago, around the time when Windows
Vista / 7 were released. Also our d3d11 plugin/library
does not support feature level 9.x very well already.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5709 >
2023-11-25 20:27:43 +09:00
Link Mauve
4cd9dd3940
v4l2codecs: Query the right buffer before expbuf
...
We were previously always querying index 0, and while the number of planes per
buffer will never change, it seems more proper to query the right buffer rather
than always the first one.
This was found while reading strace logs, and wondering why the
V4L2_BUF_FLAG_MAPPED flag was present on all ¬0 indices even though that
happened before VIDIOC_EXPBUF.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5647 >
2023-11-22 15:50:08 +00:00
Seungha Yang
0004a52866
qsvdecoder: Fix stream format detection
...
Fixing typo
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5700 >
2023-11-21 21:22:47 +09:00