Víctor Manuel Jáquez Leal
1df99ec0d4
vulkan: store in GstVulkanVideoCapabilities encoder and decoder caps
...
The structure already stored the generic video capabilities and the specific
codec capabilities both for encoding an decoding. The generic decoder
capabilities weren't stored because it was only used internally in the decoder
helper object. Nonetheless, for the encoder, the elements will need the generic
encoder capabilities to configure the encoding. That's why it's required to
expose it as part of GstVulkanVideoCapabilities. And the generic decoder is
included for the sake of symmetry.
While updating the API vkvideoencodeh265 test got some code-style fixes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
cf9cc5ec1b
vkencoder-private: rename GstVulkanEncoderPicture
...
GstVulkanEncodePicture breaks the namespace. This commit fixes it by renaming it
to GstVulkanEncoderPicture, also new() and free() signature functions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:44 +00:00
Víctor Manuel Jáquez Leal
1cc0a7d2bb
vkencoder-private: keep only one DPB view for layered DPB
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
133011c9ba
vkencoder-private: increase reference slots array
...
H264 has the maximum number of refs (36) of any supported codec.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
479defdcf9
vkencoder_private: move view creation to picture init
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
15a3ebf01e
vkencoder-private: shuffle up operation and query creation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
83cd24a30d
vkencoder-private: shuffle up get format to bail out better
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
98d30cc30a
vkencoder-private: define encoded feedback flags by removing override bit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
984956a6fe
vkencoder-private: fix parameters overrides
...
First remove validations since they will fail if there isn't a write operation.
It's valid to pass data without write operations.
Finally, it should check for hasOverride in feedback info. Nonetheless, there's
a NVIDIA bug returning always FALSE for hasOverride, that's why we currently
force it to TRUE.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7993 >
2024-11-29 06:36:52 +00:00
Víctor Manuel Jáquez Leal
603e7c3e5f
vulkan: add gst_vulkan_video_image_create_view()
...
This function is moved from gstvkdecoder-private so it could be used by
gstvkencoder-private too, removing there what it should be duplicated code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7984 >
2024-11-28 07:05:40 +01:00
Víctor Manuel Jáquez Leal
3389347467
vkencoder-private: fix documentation
...
The function doesn't take the reference from caller, it keeps it's own
reference, so transfer is none.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
b88f15406f
vkencoder-private: fix code style and use gpointer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
20a0a46676
vkencoder-private: fix and complete public functions prechecks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
e9ef5e0c36
vkencoder-private: check for layered buffer when new picture
...
And balance `if` curly brackets.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
066144f78c
vkencoder-private: early return if dpb pool or dpb buffer already exist
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
52bd1931b8
vkencoder-private: usage structure is provided by caller
...
As all the profile structure, it's not intended to be filled in
gst_vulkan_encoder_start() function, but by the caller.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
a12daaca28
vkencoder-private: fix how to get bitstream buffer size
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
7a9bd2c9d4
vkencoder-private: doc: fix function name
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
e79ff5a4f1
vkencoder-private: use gst_clear_object()
...
Instead of g_clear_object() for sake of coherence.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
5e78ffe87a
vkencoder-private: fix return value to gst_vulkan_encoder_encode()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
751d628160
vkencoder-private: doc: remove (in) annotation
...
because it's the default one
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Víctor Manuel Jáquez Leal
af0e15e9be
vkencoder-private: move out indent macros
...
Outside of the structures whenever is possible, given indent limitations. In this way
the code has a better readability.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7974 >
2024-11-27 20:13:12 +00:00
Seungha Yang
6bcedb0d8b
d3d12converter: Gamma LUT related enhancements
...
* Build gamma LUT using shader, instead of CPU side math then uploading
* Make gamma LUT sharable across multiple converters
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7951 >
2024-11-26 16:06:08 +00:00
Seungha Yang
f3191aca58
d3dshader: Add shader for building gamma LUT
...
Newly added shader will be used by converter to construct
gamma encode/decode LUT texture
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7951 >
2024-11-26 16:06:08 +00:00
Stéphane Cerveau
7dfed55929
vkoperation: update doc to skip barriers array methods
...
Some methods are using arrays of element which type can
vary at compile time. These methods should not
be introspectable as it's not possible to determine
the final type.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7880 >
2024-11-25 15:24:17 +00:00
He Junyan
24944fd153
libs: codecparsers: Implement the VVC(H266) parser part II
...
Implement the picture header, slice header and SEI parsing functions.
Co-authored-by: spartazhc <spartazhc@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5003 >
2024-11-24 16:49:25 +00:00
He Junyan
5005d555a1
libs: codecparsers: Implement the VVC(H266) parser part I
...
Implement all the VPS, SPS and APS parsing functions.
Co-authored-by: spartazhc <spartazhc@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5003 >
2024-11-24 16:49:25 +00:00
He Junyan
1ec9f829d1
libs: codecparsers: Add the VVC(H266) parser header file
...
Co-authored-by: spartazhc <spartazhc@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5003 >
2024-11-24 16:49:25 +00:00
Seungha Yang
44cb3025ff
d3d12: Add gst_d3d12_flush_all_devices() method
...
... and removing implicit flushing behavior on GstD3D12Device::finalize
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7929 >
2024-11-20 15:44:58 +00:00
Nicolas Dufresne
a966f03cd7
wayland: dmabuf: Translate tiled strides
...
GStreamer uses a different representation of tiled strides that needs
to be translated before being sent to wayland.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7849 >
2024-11-19 21:22:38 +00:00
Matthew Waters
605cff0642
vulkan/videoutils: silence some maybe-unitialized warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875 >
2024-11-18 12:10:57 +11:00
Stéphane Cerveau
0dd706a420
vkutils: add gst_vulkan_ensure_element_device
...
In order to keep the same device across
the elements in the pipeline, use either the device id
to create the device or get the device from the context
set by the peer elements.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7843 >
2024-11-15 20:32:24 +00:00
Stéphane Cerveau
9a771b6909
vkinstance: add gst_vulkan_instance_create_device_with_index
...
This method will allow to create a device with its device_index
preparing the support of multiple device.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7843 >
2024-11-15 20:32:24 +00:00
Víctor Manuel Jáquez Leal
46f4dbe57b
codecparser: remove unused headers
...
Mainly <string.h> but also <stdlib.h> in jpegparse
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7869 >
2024-11-15 19:33:10 +00:00
Víctor Manuel Jáquez Leal
e60efa4b9a
codecparsers: avoid libc math library
...
Instead of the libc ceil() and pow() machinery for double types, since the
library uses it for unsigned integers use a simple math function for for ceil
division and bit left shift for integer power of two.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7869 >
2024-11-15 19:33:10 +00:00
Stéphane Cerveau
ff9100eb4d
h265parser/bitwriter: add some comments for ceil_log2 use
...
Validate that the length of field must be calculate with
ceil_logs2 and not bit storage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7429 >
2024-11-15 16:52:29 +00:00
Stéphane Cerveau
8f9ed667cd
h264parse: use of ceil_log2 instead of bit_storage
...
According to the specification:
The length of the slice_group_id[ i ] syntax element is Ceil( Log2(
num_slice_groups_minus1 + 1 ) ) bits
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7429 >
2024-11-15 16:52:29 +00:00
Víctor Manuel Jáquez Leal
986b91fbe9
h26Xbitwriter: use quote form directive for internal header
...
Since nalutils.h is not installed it should be included for the local path.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7868 >
2024-11-12 06:29:22 +00:00
Víctor Manuel Jáquez Leal
d9aa8a78ea
h264bitwriter: implement gst_h264_bit_writer_filler()
...
This is required for vulkan encoder since it can only write slides after aligned
offsets.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7785 >
2024-11-11 16:05:38 +00:00
Olivier Crête
d934ea3f7a
tensormeta: Add APIs to create and access GstTensorMeta contents
...
Also document those APIs better.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000 >
2024-11-08 14:58:49 +00:00
Olivier Crête
5e73e8e1b3
tensor: Add APIs to create and access GstTensor contents
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000 >
2024-11-08 14:58:49 +00:00
Olivier Crête
4295386804
tensors: Use full GstTensorDataType type name in type members
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000 >
2024-11-08 14:58:49 +00:00
Olivier Crête
e01a3b1d79
analytics: Add APIs to add or get a GstTensorMeta
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000 >
2024-11-08 14:58:49 +00:00
Daniel Morin
6a5a63f051
analytics: Adding abstraction on tensor dims
...
Tensor can be row or col major, but it's also possible that the order by we need
to read the tensor with more than two dimension need to be described. The
reserved field in GstTensorDim is there for this purpose. If we need this we
can add GST_TENSOR_DIM_ORDER_INDEXED, and follow an index defining order for
each dimension.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000 >
2024-11-08 14:58:49 +00:00
Daniel Morin
8169863f01
analytics: Make GstTensor more suitable for inline allocation
...
GstTensor contained two fields (data, dims) that were dynamicallay allocated. For
data it's for a GstBuffer and we have pool for efficient memory management. For
dims it's a small array to store the dimension of the tensor. The dims field
can be allocated inplace by moving it at the end of the structure. This will
allow a better memory management when GstTensor is stored in an analytics meta
which will take advantage of the _clear interface for re-use.
- New api to allocate and free GstTensor
To continue to support use-cases where GstTensor is not stored in an
analytics-meta we provide gst_tensor_alloc, gst_tensor_alloc_n and
gst_tensor_free that will facilitate memory management.
- Make GstTensor a boxed type
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000 >
2024-11-08 14:58:49 +00:00
Daniel Morin
7c925eae61
analytics: Move batch to GstTensor
...
- batch_size is required to interpret the tensor depending on the tensor format
the batch are not necessarily memory plane therefore it's preferable to keep it
inside GstTensor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000 >
2024-11-08 14:58:49 +00:00
Daniel Morin
43c7e524ce
analytics: Decouple GstTensor from GstTensorMeta
...
- To support transporting tensor as GstMeta, Analytics-Meta and Media we need to
decouple GstTensor from GstTensorMeta.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000 >
2024-11-08 14:58:49 +00:00
Olivier Crête
03fd6fadbc
analytics: Move tensor meta to the analytics library
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000 >
2024-11-08 14:58:49 +00:00
Seungha Yang
f94c84c828
d3d12converter: Add support for colorbalance
...
Adding support for hue, saturation, brightness, and contrast adjustment
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817 >
2024-11-03 21:33:37 +00:00
Seungha Yang
0c6e7e7f1a
d3d11converter: Fix constant buffer update
...
Fixing regression of
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6434
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7814 >
2024-11-02 16:36:27 +00:00