Víctor Manuel Jáquez Leal
e03b124c10
vkencoder-private: implement callback to chain control rate structures
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
b99276a7f9
vkencoder-private: implement callback to chain codec specific structures
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
ab6aafb076
vkencoder-private: handle quality level
...
It creates a new structure for passing the codec quality structure at _start(),
where it will be filled. The quality level can be set or changed according
encoder limits.
Later the quality level will be set at _update_session_parameters() and at each
frame encoding. That's why it has to be set at _start().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
d63ec09b5e
vkencoder-private: rename first_encode_cmd to session_reset
...
Since it reflect better when it's needed to be used: to reset the current
session.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
200484a84b
vkencoder-private: shuffle down VkVideoBeginCodingInfoKHR initialization
...
to make it more cohesive
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007 >
2024-12-04 02:17:45 +00:00
Víctor Manuel Jáquez Leal
fbeb012617
vkencoder-private: remove rate control handling
...
It will be reintroduced later with different approach.
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
8fc2af44c8
vkencoder-private: enhance algorithm to get the slot index
...
The algorithm for generating the current slot index is a simple round robin,
nonetheless it's not assured that the next slot index it's not still used by a
still living encode picture.
This new way holds an array with the still living encode pictures and the next
slot index looks for a released index in the array.
Its downside is deallocating a picture need to be removed from the array, so the
helper has to be passed to the uninit() function
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
d4de932664
vkencoder-private: add VkVideoReferenceSlotInfoKHR in GstVulkanEncoderPicture
...
And remove slotIndex since it's part of VkVideoReferenceSlotInfoKHR, simplifying
the reference slots array creation, and changing the tests accordingly.
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
75a6ddf2be
vkencoder-private: check for codec buffer
...
gst_vulkan_video_codec_buffer_new() can return NULL, so it's required to check
the returned value and bail out if needed.
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
d9e9d2ff72
vkencoder-private: avoid GstVulkanEncoderPicture allocation
...
By using it as apart of the encoder picture structure that has to initialized
and uninitalized.
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
c1e364ecdc
vkencoder-private: remove width, height and fps from GstVulkanEncoderPicture
...
In GStreamer that buffer information is decoupled, holding other structures to
describe the stream: GstCaps. So, to keep the GStreamer design this patch
removes these information from GstVulkanEncoderPicture and pass to
gst_vulkan_encoder_encode() a pointer to GstVideoInfo.
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
eef9717478
vkencoder-private: replace packed headers with offset handling
...
Instead of holding all headers in an external array and add them into the
bitstream buffer before the encoding operation, adding extra memory and extra
copy operations, the encoder picture should specify the offset where the Vulkan
will start to add the bitstream slices/frame, because the element has written
already the headers until that offset.
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
48b2c3cf74
vkencoder-private: remove nb_refs from GstVulkanEncoderPicture
...
That's the number of references that gst_vulkan_encoder_encode() receives to
process, so it has to go as a parameter, because it's part of the reference
list, not of the picture.
This commit also modified unit tests accordingly.
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
87db136cc7
vkencoder-private: remove pic_num and pic_order_cnt from GstVulkanEncoderPicture
...
Since they aren't semantically part of the codec-independent encoding operation.
And modify unit tests accordingly.
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
a8e676a0da
vkencoder-private: remove is_ref member from GstVulkanEncoderPicture
...
It's not used. Modified the unit test accordingly.
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
4a221aad8a
vkencoder-private: don't store output data size
...
There's no need to store in encoder helper the output data size, that's
responsibility of the caller when an output buffer is allocated.
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
091fe0c1e7
vkencoder-private: enhance capabilities logging
...
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
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
Edward Hervey
fb16abcd73
mpegts: Fix JPEG-XS Extension Descriptor handling
...
The initial specification for the descriptor (from H.222.0 06/21) was wrong and
introduced duplicate descriptor_tag/descriptor_length field.
This was later corrected in H.222.0 (2021) Amendment 1 (12/22)
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3945
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7775 >
2024-10-31 10:02:01 +00:00
Nicolas Dufresne
30c6f2c163
wayland: Add NV15 support
...
This format, which maps to NV12_10LE40 in GStreamer is produced by Rockchip
video decoders when decoding 4:2:0 10 bit content.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7569 >
2024-10-30 02:27:12 +00:00
Seungha Yang
7f9be72e72
vp8decoder: Fix resolution change handling
...
Do not store resolution in set_format() so that resolution change
can be detected on keyframe as intended.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3928
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7710 >
2024-10-29 20:19:15 +00:00
Sebastian Dröge
5da635c2da
play: Improve play message API inconsistencies
...
* Consistently name parse functions according to their message type and
deprecate the misnamed ones,
* Add missing parse functions,
* Check for the correct message type when parsing
* Use correct field name for warning message details
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7754 >
2024-10-29 10:14:56 +00:00
Edward Hervey
8bc8aedc62
codecparsers: Fix gtk-doc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455 >
2024-10-25 13:55:20 +00:00
Edward Hervey
908fc15411
docs: Fix av1parser symbols
...
Don't use un-named structures
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455 >
2024-10-25 13:55:19 +00:00
Edward Hervey
38c07a2d01
all: Fix closure annotations
...
This was misused almost everywhere.
See
https://gi.readthedocs.io/en/latest/annotations/giannotations.html#support-for-gobject-closures
and: https://www.bassi.io/articles/2023/02/20/bindable-api-2023/
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7725 >
2024-10-25 08:58:29 +00:00
Seungha Yang
8c3d516a14
d3d12: Additional fixes for MinGW build
...
Various fixes for GCC build, including actual bug fixes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7722 >
2024-10-24 06:54:30 +09:00
Seungha Yang
703cc1783e
d3d12: Fix MinGW build with installed DirectX-Headers
...
Required for cerbero MinGW build
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7154 >
2024-10-22 21:25:11 +00:00
Jochen Henneberg
982bfe4f5d
codecparsers: vp8parser: Added frame type enums
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6959 >
2024-10-22 11:48:49 +00:00
Víctor Manuel Jáquez Leal
45b01f9456
h26xbitwriter: false have_space if aligning fails on aud
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7655 >
2024-10-19 17:28:41 +00:00
Benjamin Gaignard
0f171b2086
codecs: vp9 decoder: Drain output buffers before resolution change
...
We must drain the pending output picture so that subclass can renegotiate
the caps. Not doing so while still renegotiating would mean that the
subclass would have to do an allocation query before pushing the caps.
Pushing the caps now without this would also not work since these caps
won't match the pending buffers format.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7684 >
2024-10-19 01:39:04 +00:00
Daniel Morin
6db6d44ff5
analytics: add segmentation analytics-meta
...
- Add a new analytics-meta to store segmentation analysis result.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6026 >
2024-10-17 18:13:03 +00:00
Daniel Morin
98653aa43a
analytics: Allow specific analytics-meta (Mtd) to handle their clear
...
- Add mtd_meta_clear to allow specific analytics-meta to handle their clear
operation specific to their type.
- Clear mtd's attached when analytic-meta is freed. When the buffer where
analytics-meta is attached is not from a buffer pool
gst_analytics_relation_meta_clear will not be called unless we explicitly call
it in _free. This important otherwise _mtd_clear are not called and lead to
leak if embedded mtd's allocated memory
- Un-ref in transform if it's a copy
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6026 >
2024-10-17 18:13:03 +00:00
Víctor Manuel Jáquez Leal
0e9634e17c
codecparsers: add debug categories to bitwriters
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7653 >
2024-10-14 22:05:04 +00:00
Nirbheek Chauhan
303dd73779
meson: Explicitly use cpp_std=c++11 for dxva
...
dxva is built unconditionally on all platforms where introspection is
enabled, so let's fix the build on macOS so that introspection can be
enabled there: https://gitlab.freedesktop.org/nirbheek/cerbero/-/jobs/65009118
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7659 >
2024-10-13 19:31:27 +00:00
L. E. Segovia
4dcc4b6235
meson: Undefine any WINVER and _WIN32_WINNT entries before redefining them
...
Fixes Cerbero build with MinGW GCC 14, where specifying -DWINVER=0x0601 -DWINVER=0x0A00 is a hard -Werror.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7658 >
2024-10-12 19:10:46 -03:00
L. E. Segovia
4af2121189
meson: d3d12: fix build with MinGW GCC 14
...
Also apply the d3d11 fix since both use the same header.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7658 >
2024-10-12 19:01:46 -03:00
L. E. Segovia
f8d6b3d568
meson: d3d11: fix build with MinGW GCC 14
...
In my tests with the new GCC 14 compiler for Cerbero, I got the
following error:
> In file included from include/directxmath/DirectXMath.h:2275,
> from ../gst-libs/gst/d3d11/gstd3d11converter.cpp:46:
> include/directxmath/DirectXMathMatrix.inl: In function 'bool
> DirectX::XMMatrixDecompose(XMVECTOR*, XMVECTOR*, XMVECTOR*, FXMMATRIX)':
> include/directxmath/DirectXMathMatrix.inl:1161:16:
> error: variable 'aa' set but not used [-Werror=unused-but-set-variable]
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7658 >
2024-10-12 19:01:13 -03:00
Seungha Yang
7c06001705
d3d12: Shorten various names
...
Update names of various objects and method to be shorter, for instance
GstD3D12CommandAllocator is changed to GstD3D12CmdAlloc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7642 >
2024-10-10 10:35:36 -04:00
Seungha Yang
024f450204
d3d12: Fix typo in docs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7642 >
2024-10-10 09:21:54 -04:00
Seungha Yang
ef55b31f46
d3d12: Early error out on Signal() fail
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7642 >
2024-10-10 09:21:54 -04:00
Julian Bouzas
fea8578ee9
codecparsers: Add LCEVC metadata API
...
This new metadata API allows elements to attach LCEVC enhancement data to video
buffers. Usually, the video parser elements are charged to parse the LCEVC
enhancement data from SEI Nal units (Supplemental enhancement Information).
However, other elements such as demuxers can also use this API if the LCEVC
enhancement data of the video is stored in a separate stream in the container.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330 >
2024-10-02 20:33:13 +00:00
Sebastian Dröge
b7b24573ce
common: Use more efficient versions of GstCapsFeatures API where possible
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:26:18 +03:00
Sebastian Dröge
6233eb0ff3
common: Stop using GQuark-based GstStructure field name API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Sebastian Dröge
0c1611d31d
common: Stop using GQuark-based GstStructure name API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:21:29 +03:00
Seungha Yang
2d91521dfc
d3d12: Fix resource allocation on old Windows version
...
D3D12_HEAP_FLAG_CREATE_NOT_ZEROED flag was introduced as of
Windows 10 May 2020 Update, and older versions don't understand
the heap flag. Checks the feature support and enables the
D3D12_HEAP_FLAG_CREATE_NOT_ZEROED only if it's supported by OS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7573 >
2024-09-26 12:48:55 +00:00
Seungha Yang
cef201734c
d3d12: Add d3d12mipmapping element
...
Adding a new element for texture conversion from single mip level
texture to mipmapping enabled RGBA texture
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7555 >
2024-09-23 13:52:37 +00:00
Seungha Yang
51e1834e81
d3d12: Use D3D12_FILTER_MIN_MAG_MIP_LINEAR filter by default
...
... instead of D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT, since we supports
mipmap texture now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7555 >
2024-09-23 13:52:37 +00:00
Seungha Yang
8550ed5888
d3d12: Add support for mipmap texture
...
Consider D3D12_RESOURCE_DESC.MipLevels > 1 or zero case
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7555 >
2024-09-23 13:52:37 +00:00
Seungha Yang
eb6d083ebe
d3d12converter: Fix crash on pso update
...
Allocates D3D12_INPUT_ELEMENT_DESC memory on heap instead of using
stack memory for later reuse
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00
Seungha Yang
7cf27c456b
d3d12converter: Add support initial pso DXGI_SAMPLE_DESC setting
...
Add more options for pso, in order to avoid redundant pso
creation when MSAA is used
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00
Seungha Yang
a1029d5b87
d3d12converter: Add support for sampler filter update
...
Creates new root signature and pipeline state object
if sampler filter method is updated
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00