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
Nicolas Dufresne
c803ce7a9c
waylandsink: Parse and set the HDR10 metadata
...
Basically whenever the compositor have support for it, and the caps includes it,
set the mastering display and light content level information.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9353 >
2025-07-09 20:07:38 +00:00
Doug Nazar
24dcc0a009
openh264: Ensure src_pic is initialized before use
...
valgrind was showing reads of uninitialized memory and the
library examples all memset the structure before use.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9352 >
2025-07-09 07:13:06 +00:00
Nicolas Dufresne
5ac6d2b635
gtkwaylandsink: Make the rotate property GST_PARAM_MUTABLE_PLAYING
...
This matches the change we made to waylandsink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283 >
2025-07-07 21:11:44 +00:00
Michael Olbrich
5275bb0c20
gstwaylandsink: add some locking documentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283 >
2025-07-07 21:11:44 +00:00
Michael Olbrich
0a524ca115
gstwaylandsink: add GST_PARAM_MUTABLE_PLAYING flag for more properties
...
The fullscreen state and rotate method can be changed while the element is
playing, so add the GST_PARAM_MUTABLE_PLAYING flag to those properties to
indicate this.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283 >
2025-07-07 21:11:44 +00:00
Michael Olbrich
96b800f82a
waylandsink: make sure self->window is not NULL before using it
...
self->window is created with the first frame, so it is not available when
properties are set during construction of the element.
Skip calling gst_wl_window_ensure_fullscreen() in this case.
The window is already constructed with the current configured fullscreen state,
nothing else in needed here.
Without this, running e.g. 'gst-launch-1.0 -v videotestsrc ! waylandsink
fullscreen=true' will result in:
GStreamer-Wayland-CRITICAL **: 14:11:19.921: gst_wl_window_ensure_fullscreen: assertion 'self' failed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283 >
2025-07-07 21:11:43 +00:00
Olivier Crête
1413dc37eb
webrtcbin: Add RTX/FEC for each relevant payload type
...
When sending an answer with multiple codecs, we need to add the RTX and FEC
payload for each codec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9031 >
2025-07-07 19:51:39 +00:00
Víctor Manuel Jáquez Leal
41ff02c349
vulkanh264enc: add Vulkan H264 encoder
...
Add an element to encode h264 content using the vulkan API.
Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197 >
2025-07-03 13:41:32 +02:00
Víctor Manuel Jáquez Leal
d81726f8d2
vulkan: h264encoder: introduce base class
...
H.264 base class oriented for hardware accelerated encoders, such as Vulkan, VA
and others.
1. It can be parametrized for hardware limits, such as lists size, b-frames
supports, etc.
2. It produces a GOP structure map [IDR, R/I/B, ...)
3. It proposes parameters set and other strucures such as bitrate limites.
Subclases can modify those structures.
4. It calls the subclass encode virtual method implementation.
It doesn't handle rate control algorithms or other encoding quality mechanisms.
For a deeper introduction to the class there was a lighting talk in the GstConf
2024: <https://www.youtube.com/watch?v=-fQY54KHH38 >
Co-authored-by: He Junyan <junyan.he@intel.com>
Co-authored-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197 >
2025-07-03 13:41:32 +02:00
Seungha Yang
de1166338c
webrtcdsp: Respect disabled feature option
...
Don't try to build this plugin if it's explicitly disabled
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8424 >
2025-06-30 17:18:18 +00:00
Vineet Suryan
13fc7ef932
onnx: Use system installed Eigen to avoid hash mismatch failure
...
Eigen’s download for the commit referenced by ONNX Runtime v1.16.3 was
updated upstream, so the SHA-256 embedded in ORT’s CMake scripts no
longer matches and the build aborts with a hash-mismatch error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9229 >
2025-06-30 13:13:38 +00:00
Doug Nazar
6be8b2974e
avtp: Fix memory leak
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273 >
2025-06-30 12:19:19 +00:00
Doug Nazar
3c69e6ddd2
srt: Fix warning about uninitialized memory
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273 >
2025-06-30 12:19:19 +00:00
Michael Olbrich
31f3e73066
waylandsink: Add force-aspect-ratio property
...
Similar to and inspired by glimagesink, xvimagesink and others.
The waylandsink never transform the buffer in any way but delegates this to the
Wayland compositor with the Wayland buffer transform API.
Rotation and window size are already supported, so this just changes the video
surface geometry that is communicated to the Wayland compositor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9210 >
2025-06-25 18:38:54 +00:00
Jan Alexander Steffens (heftig)
9363054e63
srtsink: Fix header buffer filtering
...
Cleans up the code and fixes two issues:
- If there are no streamheaders in the caps but we have `HEADER`
buffers, it would run `gst_buffer_list_foreach` with `self->headers`
being `NULL`.
- The code forgot to unmap the buffer if it decided to ignore it.
Fixes: 0a562a92d7ee38d8919d1b802add84d3c93b59eb
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9284 >
2025-06-25 15:44:54 +00:00
Doug Nazar
a8e3dc337b
analyticsoverlay: Fix memory leak
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9266 >
2025-06-23 12:29:06 +00:00
Doug Nazar
794cae4b03
dashsink: Fix memory leak
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9266 >
2025-06-23 12:29:06 +00:00
Víctor Manuel Jáquez Leal
743c425f64
vulkanupload: refactor frame copy in a single function
...
Avoiding code duplication
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9222 >
2025-06-20 11:08:17 +00:00
Víctor Manuel Jáquez Leal
bcf97b088f
vulkanupload: use gst_video_frame_copy() for VulkanBuffer
...
There's no need of a custom copy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9222 >
2025-06-20 11:08:17 +00:00
Víctor Manuel Jáquez Leal
76f52e5f98
vkupload: use gst_buffer_find_memory() to select memory
...
We never implemented correctly the selection of memories in a buffer given the
plane.
This patch uses gst_buffer_find_memory() for that. The offset is checked via the
video meta either in the input and output buffers, or the default offset given
the format and size.
This patch also requests the video meta option for the output buffers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9219 >
2025-06-18 09:06:55 +00:00
Matthew Waters
d59cc622f2
webrtcbin: disconnect signal ICE handlers on dispose
...
It is entirely possible that the in progress may still provide some state
updates until the ICE object is destroyed, these state updates should
not really be done when webrtcbin is in the process of destroying itself
and access freed data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9216 >
2025-06-18 00:41:38 +00:00
Xavier Claessens
961e7753b9
wraps: Add svtjpegxs from wrapdb
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9214 >
2025-06-17 17:57:23 +00:00