Stéphane Cerveau
9c250179c6
codecparsers: add helper methods for h264
...
Add two helper methods to convert profile
and slice types
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5908 >
2024-01-11 13:17:43 +01:00
Olivier Crête
745197d386
analytics: Implement scale meta transform for Object detection meta
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5863 >
2024-01-10 18:35:17 -05:00
Olivier Crête
5d3035553c
analytics: Replace type quark with opaque struct pointer
...
This way, we can add function pointers in there for things like
transformations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5863 >
2024-01-10 18:34:53 -05:00
Olivier Crête
91815710dd
analyticsmeta: Make the GstAnalyticsRelatableMtdData struct private
...
Only ask the subclass about how much space they need, this way we can keep
the allocation details more private.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5863 >
2024-01-10 18:19:38 -05:00
Stéphane Cerveau
476c7efcb7
vulkan: decoder: create union for profile usage
...
As a profile can include a VkVideoDecodeUsageInfoKHR
or VkVideoEncodeUsageInfoKHR, use union to separate the both.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5701 >
2024-01-10 17:15:12 +00:00
Stéphane Cerveau
97ebaa0bc1
gstutils: add gst_util_ceil_log2
...
Move ceil_log2 from nalutils.* to gstutils.*
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5888 >
2024-01-09 15:34:10 +00:00
Seungha Yang
abe1f5044d
cuda: Prefer CUBIN over PTX
...
System installed NVRTC library might be newer version than
driver, then generate PTX can be incompatible with the driver.
Instead of the intermediate code PTX, use actual assembly code
directly.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3108
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5639 >
2024-01-02 10:10:09 +00:00
Olivier Crête
f5d5f2cf1a
meta: Add API to register metas in two steps
...
And also remove the specific registration APIs for
serializable meta.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5830 >
2023-12-19 22:41:31 +00:00
Olivier Crête
2a9c4e3270
meta: Move the clear operation to its own vfunc
...
Some transforms always assumed that the transformation was some kind
of copy. So adding a "clear" operation didn't work out in practice.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5830 >
2023-12-19 22:41:31 +00:00
Philippe Normand
61d3f5c8e0
play: Include pipeline dump in error details structure
...
This can be useful for debugging purposes. It can't be done on application side
because the on_error callback tears down the pipeline.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5828 >
2023-12-18 20:13:38 +00:00
Philippe Normand
c6c567e3e4
play: Fix error details parsing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5828 >
2023-12-18 20:13:38 +00:00
Seungha Yang
890d59e97e
av1parser: Fix array sizes in scalability structure
...
Since the AV1 specification is not explicitly mentioning about
the array size bounds, array sizes in scalability structure
should be defined as possible maximum sizes that can have.
Also, this commit removes GST_AV1_MAX_SPATIAL_LAYERS define from
public header which is API break but the define is misleading
and this patch is introducing ABI break already
ZDI-CAN-22300
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5823 >
2023-12-18 10:58:24 +00:00
Daniel Morin
49f200cb54
h264parse: Improved AU boundary detection
...
- AU boundary detection reviewed to follow more closely H.264 spec. and more
specifically clauses 7.4.1.2.3 and 7.4.1.2.4.
- The gist of the changes is a look-a-head in then next AU required identify the
last vcl-nal of current AU and firt vcl-nal of next AU (according to
7.4.1.2.4) followed by the identification of the first nal of next AU
(according to 7.4.1.2.3).
- A backlog of all nals of current AU and next AU up to the point where current
AU can identified completed is kept.
- In NAL alignement mode vcl-nal are sent immediatly but the history is kept to
allow AU boundary detection. Non-vcl-nal can be delayed up to the reception of
the next vcl-nal to allow a correct AUD insertion.
- Based on this improved AU boudary detection we can avoid erronous AUD
insertion, like the one highlighted by test
test_parse_sliced_with_prefix_and_sei_nal_au.
- Add support for MVC AU boundary detection. (H.7.4.1.2.4)
- Explicitly report SVC not supported. We don't have the SVC NAL parsing
required to identify boundary. (missing dependency_id and quality_id fields
from SVC, see G.7.4.1.2.4)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5741 >
2023-12-17 21:42:47 +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
Víctor Manuel Jáquez Leal
f413714b37
vaallocator: use gst_va_display_check_version()
...
Instead of the local method to parse the vendor string.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5800 >
2023-12-13 09:12:28 +00:00
Víctor Manuel Jáquez Leal
8574bb8914
vadisplay: add gst_va_display_check_version()
...
This function compares the driver version with the user provided one to check if
driver's is equal or bigger.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5800 >
2023-12-13 09:12:28 +00:00
Víctor Manuel Jáquez Leal
94e6a6e3de
vaallocator: clean up use derived feature
...
Remove allocator member variable for use derived feature which doesn't need to be kept,
it's just for configuration purposes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5799 >
2023-12-12 18:39:49 +01:00
He Junyan
fac9fb2174
codecs: correct the print log for h265 picture getting by poc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5789 >
2023-12-11 10:24:34 +00:00
Jordan Petridis
30c968f0ee
build/mse: Add the enum sources to the test gstmse_private_test_dep
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5763 >
2023-12-11 06:39:29 +00:00
Víctor Manuel Jáquez Leal
7332eb6427
vaallocator: force non-derived for old mesa drivers
...
Mesa <23.3 can't map derived images for P010 format. This patch forces
non-derived if this is the case.
See: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24381
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5760 >
2023-12-07 10:42:50 +00:00
Víctor Manuel Jáquez Leal
ddf6fd9c61
va: check surface status before get derive image
...
According with documentation the surface has to be in ready state before getting
it derived image. This patch adds that check.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5760 >
2023-12-07 10:42:50 +00:00
Víctor Manuel Jáquez Leal
6b1fba14bf
vaallocator: remove runtime mapping selection
...
The original idea was to select the type of mapping (either using derive images
or downloading the image) in runtime, under the assumption that both methods
shared the same memory layout (offsets and strides), because a single
GstVideoMeta is assigned by the buffer pool at allocation time. Nonetheless, in
recent hardware this assumption is invalid, raising memory access errors.
This patch removes completely the mapping type selection at runtime, using the
method selected when the allocator is configured, synced with the bufferpool
allocation.
This problem was fixed originally for iHD driver only. But now it makes sense to
remove all of it.
Original-patch-by: Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5760 >
2023-12-07 10:42:50 +00:00
Víctor Manuel Jáquez Leal
90af9b7704
vaallocator: don't fail if drm fourcc are different
...
When exporting a DMABuf from a VASurface the user might tell that the surface
was allocated with certain fourcc, but the returned VADRMPRIMESurfaceDescriptor
migth tell a different fourcc, as in the case or radeonsi driver, for duplicated
fourcc, such as YUY2 and YUYV.
Originally it was supposed to be a failed exportation. This patch relax this
validation by allowing different fourcc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5760 >
2023-12-07 10:42:50 +00:00
Daniel Morin
4425562661
analytics: fix analytics-meta re-use
...
- Fix alignment error when source and destination analytics-meta have the same
relation order.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5767 >
2023-12-06 18:25:16 +00:00
Daniel Morin
aaee569087
analytics: replace id type from gint to guint
...
- Replace all id type from gint to guint
- Fix annotation for GstAnalyticsODMtdData
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5758 >
2023-12-04 10:14:59 -05:00
Seungha Yang
801492b334
d3d11: Add RBGA format support
...
Allocates DXGI_FORMAT_AYUV texture for RBGA so that it can be used
by video decoders.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5703 >
2023-11-29 16:54:16 +00:00
Benjamin Gaignard
cd14b0892e
codecparsers: av1: Clip max tile rows and cols values
...
Clip tile rows and cols to 64 as describe in AV1 specification
to avoid writing outside array range but preserve sb_cols
and sb_rows value which are used to futher computation.
Fixes ZDI-CAN-22226 / CVE-2023-44429
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5702 >
2023-11-29 15:48:50 +00:00
Benjamin Gaignard
f525de6d00
Revert "codecparsers: av1: Clip max tile rows and cols values"
...
This reverts commit b76a801f57
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5702 >
2023-11-29 15:48:50 +00:00
Seungha Yang
ccf6ac2b4c
h264decoder: Fix GstVideoCodecFrame leak
...
If current buffer has no slice data, frame should be released.
Otherwise frames will stay in decoder baseclass forever.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5693 >
2023-11-29 10:52:58 +00:00
Seungha Yang
6992e14eee
d3d11: Fix string version shader code
...
RGBA to BGRA conversion code should have written in compute
shader.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5723 >
2023-11-28 21:02:44 +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
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
df0e6c4140
d3d11converter: Do not use R32_UINT UAV
...
It does not work well with YUY2 texture on some GPUs. Always use
the same DXGI formats for each SRV and UAV
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5709 >
2023-11-25 20:27:43 +09:00
Seungha Yang
030800905b
d3d11device: Remove outdated comment
...
We do support 4:2:2 YUV formats using compute shader now
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
Stéphane Cerveau
15b719d7f6
vkbufferpool: add support for video encoded buffers
...
Add support for non video raw buffers to allocate memory
such as in encoded content scenario.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5645 >
2023-11-21 19:16:37 +00:00
Stéphane Cerveau
c6a5437e0d
vkbufferpool: allow to set allocation params
...
Add the possibility to change the vulkan usage and mem properties from
external source.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5645 >
2023-11-21 19:16:37 +00:00
Daniel Morin
d23a90cb16
analytics: base class for analytics meta
...
- GstAnalyticRelationMeta is a base class for analytics
meta. It's able to store analytics results (GstAnalyticRelatableMtd)
and describe the relation between each analysis results.
- GstAnalysisRelationMeta also contain an algorithm able to explore
analysis results relation using a bfs.
- Relation(edge) between analysis results (vertice) are stored in an adjacency-matrix
that allow to quickly identify if two analysis results are related and by
which relation they related. It also work for indirect relation
and can provide the path of analysis results by which two
analysis results are related.
- One allocation per buffer to store analysis results. Here we rely on
the application to guess how much space will be required to store all
analysis results. This is something that could be improved
significantly but it's a starting point.
- Define common analysis results, classification, object-detection,
tracking that are subclass of GstAnalyticRelatableMtd. The also
provide exemple of how to extend GstAnalyticRelatableMtd to have them
benefit for the mechanim to express relation with other analysis
results.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4962 >
2023-11-21 18:04:53 +00:00
Stéphane Cerveau
159f24c07f
vulkan: use gst_vulkan_device_select_queue
...
Use gst_vulkan_device_select_queue api to retrieve a valid queue
in vkupload, vkdownload, vkimagebufferpool, and vkvideofilter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5656 >
2023-11-21 13:51:21 +00:00
Stéphane Cerveau
74c6298eb7
vkdevice: select queue with expected flags
...
Allow to select a queue with the given flags
such as compute bit etc from a given device.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5656 >
2023-11-21 13:51:21 +00:00
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
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