883 Commits

Author SHA1 Message Date
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
L. E. Segovia
230fe47b59 curl: Recover missing comment
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8974#note_2955585

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9213>
2025-06-17 17:11:03 +00:00
Philippe Normand
189d33015d webrtcbin: Include all accepted media formats in SDP answers
Until this patch only the first format was added.

Fixes #4458

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9117>
2025-06-17 14:53:32 +00:00
Víctor Manuel Jáquez Leal
717198b38b vulkanupload: fix regression for uploading VulkanBuffer
Merge request !5651 introduced a regression for uploading VulkanBuffer. It can
be verified by

gst-launch-1.0 videotestsrc ! video/x-raw, format=NV12 ! vulkanupload ! \
  video/x-raw\(memory:VulkanBuffer\) ! fakesink

Nobody has complained about this regression, so we assume it's a very niche
use-case.

This patch solve the regression by instantiating a different buffer pool
depending on the output cap features, and configuring it accordingly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9218>
2025-06-16 23:23:44 +00:00
Olivier Crête
1fa4d154d8 onnx: Also implement stop to clean up session
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9176>
2025-06-10 18:15:11 +00:00
Olivier Crête
f48ad0fde6 onnxinference: Clean up session creation logic
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9176>
2025-06-10 18:15:11 +00:00
Víctor Manuel Jáquez Leal
82a71a7739 gstreamer-vaapi: remove subproject
It's almost superseded by va plugin in gst-plugins-bad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9200>
2025-06-10 17:32:46 +00:00
L. E. Segovia
ebee431dac curl: Fix wrong format specifier for macOS
> ../ext/curl/gstcurlhttpsrc.c:1331:11: error: format specifies type
> unsigned long long' but the argument has type 'curl_off_t' (aka 'long') [-Werror,-Wformat]

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8974>
2025-06-10 14:58:26 +00:00
Daniel Morin
28fafc5488 onnx: produce tensor caps
- Add tensor description to srcpads caps

onnx: formatting

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9172>
2025-06-10 09:04:48 +00:00
raghu447
a5586a50c2 tfliteinference: initialize means and stddevs arrays appropriately
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9189>
2025-06-08 17:07:47 +00:00
Jakub Adam
12607d67b1 meson: fix building -bad tests with disabled soundtouch
Fixes an error from Meson:

../subprojects/gst-plugins-bad/tests/validate/meson.build:16:93: ERROR:
Unknown variable "soundtouch_dep"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9190>
2025-06-06 17:43:53 +02:00
Julian Bouzas
841448cd94 lcevcdec: Check for errors after receiving all enhanced and base pictures
The LCEVC_ReceiveDecoderBase() and LCEVC_ReceiveDecoderPicture() APIs from the
LCEVCdec SDK can return LCEVC_Error if the enhancement data is wrong. This
change improves the lcevcdec element to check for those errors and stop the
pipeline when that happens.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9057>
2025-06-04 15:53:03 -04:00
Thibault Saunier
313435f6cb general: Stop checking G_HAVE_GNUC_VARARGS now that we depend on c99
Cleaning up a bit the code now that we can rely on C99 which specifies
varargs for macros.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8990>
2025-05-30 15:30:36 +00:00
Doug Nazar
99aba78c88 gstreamer: Ensure we free the template
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9044>
2025-05-27 10:44:37 +00:00
Doug Nazar
9a04896293 dash: mpdclient: Don't pass terminating NUL to adapter
libxml2 will complain if it detects any characters after the valid
XML, including a NUL byte.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8734>
2025-05-24 12:10:59 +00:00
Nirbheek Chauhan
331a381c66 meson: Fix qt detection for qt6d3d11 plugin
This now matches the code for the qml6gl plugin.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9046>
2025-05-23 09:43:17 +00:00
Olivier Crête
9e3d251c23 tflite: Also look for C symbols in libtensorflow-lite
For some builds, there isn't a separate C library such as
some Yocto builds of tflite.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>
2025-05-20 16:05:51 +00:00
Olivier Crête
25cf5262dd tflite: Make VSI header build in C code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>
2025-05-20 16:05:51 +00:00
Olivier Crête
c941ded4ba tflite: Add Coral EdgeTPU inference element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>
2025-05-20 16:05:51 +00:00
Denis Shimizu
05782229ee tflite: Add TensorFlow Lite element
A new element wrapping the LiteRT (aka TensorFlow Lite) inference engine.
It currently supports only CPU.

Co-authored-by: Daniel Morin <daniel.morin@collabora.com>
Co-authored-by: Denis Shimizu <denis.shimizu@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>
2025-05-20 16:05:51 +00:00
Doug Nazar
a9f5362ff7 musepack: Switch to GST_AUDIO_NE()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8984>
2025-05-14 14:45:55 -04:00
Alexander Slobodeniuk
da2e67d5d8 handdetect: canonicalize property names
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915>
2025-05-10 12:09:38 +00:00
Alexander Slobodeniuk
d437e92049 properties: add G_PARAM_STATIC_STRINGS where missing
"Hold on, I know you need to generate the registry, but let me just
create copies of all those strings first", Framework whispered

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915>
2025-05-10 12:09:38 +00:00
Pablo García
380a947155 curl: use CURL_SOCKET_BAD to ensure cross-platform
Solves this error in Windows build:
        ../ext/curl/gstcurlbasesink.c:1154:14: error: comparison of unsigned
        expression in '< 0' is always false [-Werror=type-limits]
        1154 |   if (curlfd < 0) {

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8615>
2025-05-09 00:16:11 +00:00
L. E. Segovia
86ef06ddff curl: Fix build with MSVC
See https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1740#note_2895537

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8932>
2025-05-07 00:52:16 +00:00
Olivier Crête
fcf9f9ea06 lcevcdec: Use portable printf formatting macros
This should fix 32bit builds

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8926>
2025-05-02 20:12:10 +00:00
Olivier Crête
2a26b0e75c lcevcenc: Use portable printf formatting macros
This should fix 32bit builds

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8926>
2025-05-02 20:12:10 +00:00
Philippe Normand
28d97212c5 wpe2: New WPE plugin making use of the "WPE Platform API"
Currently only a wpevideosrc2 element is exposed. GL and SHM buffer rendering
are supported, navigation events too (touch is un-tested). Audio pads handling
is not supported yet (that requires new WPE API).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8789>
2025-04-29 08:10:01 +01:00
Alexander Slobodeniuk
a03c4de48f elements: use set_static_metadata when it's allowed
Those strings are nice but CPU doesn't want to copy them

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8905>
2025-04-26 19:30:15 +02:00
Sebastian Dröge
953bc7cd0e x265enc: Add bitrate tags to the output
Based on the same code in x264enc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8838>
2025-04-19 15:30:51 +00:00
jan vermaete
3f0808a910 motioncells: fix typo in header comment
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8867>
2025-04-18 10:52:23 +01:00
Philippe Normand
72433cb942 webrtc: stats: Improve spec compliance for ICE candidate stats
We now fill the foundation, related-address, related-port, username-fragment and
tcp-type fields.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8792>
2025-04-17 21:13:36 +00:00
Stéphane Cerveau
a2793a4663 vkh265dec: add main-10 support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8282>
2025-04-10 19:58:47 +00:00
Philippe Normand
1a55ae2c51 Revert "webrtc: stats: Increase spec compliance for ICE candidate stats"
This reverts commit 4718fc9be72ccbbb9278c9abe7d72106e161aebf.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8787>
2025-04-08 09:35:49 +01:00
Philippe Normand
4718fc9be7 webrtc: stats: Increase spec compliance for ICE candidate stats
We now fill the foundation, related-address, related-port, username-fragment and
tcp-type fields.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>
2025-04-07 12:07:16 +00:00