939 Commits

Author SHA1 Message Date
acu
6422c7f343 added comments 2025-09-01 16:44:40 +02:00
052ce3ca15 delete Debug 2025-09-01 16:44:40 +02:00
acu
840e5b4dd1 opencl gpu acceleration tested - successful 2025-09-01 16:44:40 +02:00
0f0ddbb776 changed variable types in remap function in gstcameraundistort.cpp to support gpu acceleration - It still needs to be tested on the ACU! 2025-09-01 16:44:40 +02:00
Elias Rosendahl
75652a481a Add Execution Provider OpenVINO 2025-09-01 16:44:39 +02:00
Víctor Manuel Jáquez Leal
5e995b2b21 vulkanh26xdec: fix discont state handling
It fixes a couple tests in fluster for H.265 decoding.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9610>
2025-08-27 11:32:32 +00:00
Vivian LEE
5801dd0593 x265: Fix duplicate SEI at startup IDR frame problem
x265 encoder_headers return headers with SEI after encoding the frame,
while the output frame also contains SEI so two identical header
blocks appeared.
Cache the headers at init, leaving only a single copy in the stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9604>
2025-08-26 06:56:07 +00:00
Sebastian Dröge
9f19e0e0a2 gst: Convert is_writable() / make_writable() macros to inline functions
Plus actual functions that are exported from the library.

Apart from improving type-safety, this also makes bindings more happy.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9588>
2025-08-23 12:42:12 +00:00
Julian Bouzas
ea133d97a0 lcevcdec: Support all available formats
RGB and GRAY formats are only placeholders in LCEVCDec and therefore are not
supported yet.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>
2025-08-21 14:00:55 +00:00
Julian Bouzas
3fc37b90e1 lcevcdec: Remove unneeded LCEVC 2.0.0 workaround
This is not needed anymore as the min version for LCEVCdec is 4.0.1

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>
2025-08-21 14:00:55 +00:00
Julian Bouzas
30aa1e84e4 lcevcdec: Handle pixel aspect ratio and crop size correctly
LCEVCdec supports different pixel aspect ratios other than 1/1. This change
forwards the pixel aspect ratio of the base picture to the LCEVC decoder,
and also updates the output pixel aspect ratio caps base on the one from the
enhanced frame.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>
2025-08-21 14:00:55 +00:00
Julian Bouzas
d66213bfa3 lcevcdec: Peek the decoder for output resolution
The output resolution is not always twice as big as the input resultion divided
by the pixel aspect ratio. This is the case for LCEVC '0D' mode, where the
output resolution is the same as the input resolution, and the only enhancement
is the picture being clearer.

This patch uses LCEVC_PeekDecoder() after sending the LCEVC enhancement data to
know what the output resolution will be before allocating the output picture.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>
2025-08-21 14:00:54 +00:00
Julian Bouzas
3208d6c62a lcevcdec: Fix LCEVC picture access flags
Even though the LCEVC decoder works fine without this, it is recommended to
set read access to base pictures that are sent to the decoder, and write access
to enhanced pictures that are received from the decoder.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>
2025-08-21 14:00:54 +00:00
Julian Bouzas
265b69520a lcevcdec: Fix width type typo
This was always meant to be gint instead of gint32.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>
2025-08-21 14:00:53 +00:00
Víctor Manuel Jáquez Leal
fc647552fa vulkan: enable video maintenance2 for inline session parameters
.. in decoders.

Inline session parameters allows to not create session parameters handlers for
every new stream parameters (such as SPS and PPS for H.264, for example), but
instead to pass them as a chained structure in the decoding main structure. This
is completely align with GStreamer decoder base classes.

Even that the previous approach is kept, if the devices doesn't support video
maintenance2, it shows a lot of validation errors.

Also it was required to add another parameter when enabling extension to verify
if the extension is linked with a device feature and if it is enabled.

Bump Vulkan API (and driver version for both decoders and encoders) to 1.4.306

Also bumped the ABI_CHECK_TAG because the CI finally catches up with the vulkan
video symbols that are not exposed by a public header (tough they are binary
public).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9585>
2025-08-21 05:22:19 +00:00
Víctor Manuel Jáquez Leal
48dd6aee51 vulkanh265dec: fix validation layer complain
Silence the validation VUID-VkImageMemoryBarrier2-srcAccessMask-03915

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9591>
2025-08-20 20:11:18 +02:00
Víctor Manuel Jáquez Leal
c1d0fb0165 vulkanh26xdec: fix debug category name
This is a regression from merge request !78011

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9560>
2025-08-16 16:33:14 +00:00
Víctor Manuel Jáquez Leal
9c93152599 vulkanh26xdec: re-negotiate after FLUSH
Vulkan decoders also have the same issue as VA decoders fixed in !9457, where
FLUSH event doesn't renegotiate downstream the pipeline.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9560>
2025-08-16 16:33:14 +00:00
Jan Alexander Steffens (heftig)
69ddd8c3c7 cccombiner: Don't crash when first frame has no duration
Aggregate again so the code above can determine the end time or EOS.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9415>
2025-08-15 00:12:03 +00:00
Jan Alexander Steffens (heftig)
1428a86783 cccombiner: Avoid dividing by zero framerate
This was broken in b29262e662b86cd76225894f7504ee505125fa49.

The `gst_util_uint64_scale` emitted a critical warning and returned
`GST_CLOCK_TIME_NONE`, so beyond removing the warning this fix does not
change behavior.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9415>
2025-08-15 00:12:03 +00:00
Jan Schmidt
9317c0442b hlsdemux: Fix parsing of byterange and init map directives
Don't reuse the same offset and size variables when reading
the byterange out of a MAP directive, as it can overwrite
values from a pending BYTERANGE directive for the next
fragment URI.

Fixes problems where the EXT-X-MAP directive has been written
into the playlist between an EXT-X-BYTERANGE and the fragment
URI it applies to.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9533>
2025-08-12 02:47:46 +00:00
Víctor Manuel Jáquez Leal
c84982b5c9 vulkan: fine grained access to API
This patch is the payment to my technical debt.

The symbol GST_VULKAN_HAVE_VIDEO_EXTENSIONS is defined at compilation-time if
the user requests for the usage of the Vulkan Video extensions. And we used this
symbol for anything related with Vulkan Video. But this is not the smartest
approach.

The rule should be:

- If the code allocates Vulkan Video resources, use
  GST_VULKAN_HAVE_VIDEO_EXTENSIONS

- Otherwise, use the Vulkan's guard for the used API

In this way, API version bumps will be easier.

Also, this commit marks the end of GST_VULKAN_HAVE_VIDEO_EXTENSIONS guarded code
for readability.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>
2025-08-08 11:48:25 +00:00
Nirbheek Chauhan
e8e12db5f4 debug: Category init should happen in class_init when possible
plugin_init() will not get called if element/feature registration
happens manually, such as when using linking only specific plugin
features with gstreamer-full. That is possible when plugins contain
static features.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9496>
2025-08-08 11:38:50 +05:30
Julian Bouzas
1b041d8114 lcevcdec: Set LCEVCdec min version to 4.0.0 and fix build
V-Nova's LCEVCdec SDK 4.0.0 was released with a small API change. This patch
fixes the 'lcevcdec' element so that it builds with the new version. For more
information see:

https://github.com/v-novaltd/LCEVCdec/blob/4.0.0/docs/v4_migration_guide.md

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9414>
2025-08-06 17:45:14 +00:00
Philippe Normand
ea69849cd8 webrtc: sdp: Validate ICE SDP attributes
According to https://datatracker.ietf.org/doc/html/rfc5245#section-15.4,
those attributes should contain only alpha-numerical (with / and + allowed),
should be less than 256 characters, the ufrag should be at least 4 characters
and the pwd should be at least 22 characters.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9485>
2025-08-04 10:22:24 +00:00
Philippe Normand
80e663d560 webrtc: sdp: Relax ice-ufrag and ice-pwd checks
According to RFC 8839 section 5.4, if two data streams have identical
"ice-ufrag"s, they MUST have identical "ice-pwd"s.

The previous code wasn't allowing different ice-ufrag values in bundled medias.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9485>
2025-08-04 10:22:24 +00:00
Philippe Normand
9e38ee7526 webrtc: stats: Set DTLS role and state on transport stats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9485>
2025-08-04 10:22:24 +00:00
Olivier Crête
0428b71c68 avtpbasepay: Add debug message for time handling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>
2025-07-31 22:15:07 +00:00
Olivier Crête
c76f65e0ee avtpbasepay: Make make constants more readable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>
2025-07-31 22:15:07 +00:00
Olivier Crête
a6a38dcab9 avtp: Use the DTS as the AVTP base time
Make it work a little more like RTP. Have the source interact with the
clock and set the capture time on each packet. Then the other elements
can use that to do adjustments. Since AVTP is always very low latency,
it can be assumed that the gPTP clock at the packet reception is very
close to the sending time, never more than 2 seconds off, so the
timestamps can be compared directly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>
2025-07-31 22:15:07 +00:00
Olivier Crête
134ff5b45f avtp: Use nicely abstracted process function in base depayloader class
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>
2025-07-31 22:15:07 +00:00
Olivier Crête
0398e376b0 avtp: Intercept changes in the latency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>
2025-07-31 22:15:06 +00:00
Olivier Crête
cf039e49e8 avtpvfpaybase: Don't require a caps handling method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>
2025-07-31 22:15:06 +00:00
Olivier Crête
40828d890b onnx: Add Verisilicon provider
Add the option to use the VSI provider for the Verisilicon NPUs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9408>
2025-07-31 18:09:19 +00:00
Víctor Manuel Jáquez Leal
6cfc1d383c vulkanh264enc: calculate latency with corrected framerate
Fix for the h264encoder base class in the same spirit of !9437.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9465>
2025-07-30 15:37:21 +00:00
Nirbheek Chauhan
eef8ec6e47 meson: Pass python=false to libxml2
We don't need this in gstreamer anyway.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4510

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9438>
2025-07-30 00:21:18 +00:00
Olivier Crête
f69c8bf4aa onnx: Add debug message with tensor id
Also downgrade input dimensions as it's shown on
each buffer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9439>
2025-07-29 14:20:48 -04:00
Olivier Crête
edd46c51f1 ssdtensordecoder: Use tensor ids from the registry
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9439>
2025-07-29 14:20:14 -04:00
Julian Bouzas
b375b7d3e9 lcevcdecoder: Add lcevch265decodebin and lcevch266decodebin elements
Similar to lcevch264decodebin, these new elements are needed for LCEVC H265 and
H266 video streams to be decoded properly with autoplugging elements.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>
2025-07-28 23:13:05 +00:00
Olivier Crête
7456266117 objectdetectionoverlay: Print tracking id
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9440>
2025-07-25 17:09:16 +00:00
Seungha Yang
338d5501d0 nvdsdewarp: Disallow resizing in case of passthrough
It's not supported yet

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>
2025-07-23 12:37:43 +00:00
Seungha Yang
608e57e542 nvdsdewarp: Avoid synchronization if possible
If input/output memory objects have the same cuda stream,
don't need to synchronize stream

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>
2025-07-23 12:37:43 +00:00
Seungha Yang
6d2530fb37 nvdsdewarp: Cache texture object
... instead of creating texture for every frame

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>
2025-07-23 12:37:43 +00:00
Seungha Yang
f93e200bfe nvdsdewarp: Add support for output resizing
... and adding "add-borders" property

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>
2025-07-23 12:37:43 +00:00
Stéphane Cerveau
7320acdaca vkdownload: implement decide_allocation virtual method
In the case of caps change such as frame size, a new buffer pool should be
created according to this new caps via the decide_allocation() vmethod.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8931>
2025-07-23 09:45:20 +00:00
Olivier Crête
9fb3df1422 analyticsoverlay: Add expire-overlay property
If there has been no new data for this amount of time, just
expire the overlay and don't send one. Otherwise, it keeps sending
the old one for the following frames.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9409>
2025-07-22 23:31:23 +00:00
Olivier Crête
69e91b78a7 tflite: Add support for VSI delegate
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9410>
2025-07-21 17:40:04 -04:00
Philippe Normand
6db20592ef dtls: Use ECDSA private key for default certificate
ECDSA is widely used in browsers and SFUs, some servers such as the ones using
BouncyCastle only accept certificates signed with ECDSA.

Based on closed MR https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2458

Fixes #4516

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9323>
2025-07-18 00:57:40 +00:00
Stéphane Cerveau
d1022fb469 vkupload: fix the refactored frame copy
When refactoring the code in 743c425f64,
the wrong GstBuffer has been used to copy to,
leading to a failing frame copy.

The bug has been discovered running
elements_vkcolorconvert.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9373>
2025-07-17 15:30:25 +00:00
Doug Nazar
c00d77e6d7 avtp: crf: Setup socket during state change to ensure we handle failure
Previously the socket would be created in the thread, which take some
time to start. As the tests were so short they would usually pass as
they don't actually use the socket.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9364>
2025-07-10 15:50:30 +00:00