122761 Commits

Author SHA1 Message Date
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
Thibault Saunier
47213732b5 ignore: Exclude build artifacts and minified files from ripgrep
Add common build directories, minified files, and node_modules
to .ignore file to reduce noise when using ripgrep for code search.

Follow-up to !9458 which addressed git grep via .gitattributes.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9459>
2025-07-29 12:09:49 -04:00
Thibault Saunier
fb36c54bd8 gitattributes: Mark dots-viewer dist files as binary
This prevents git grep from searching through minified JavaScript
and other generated files in the dots-viewer static distribution
directory, reducing noise in search results.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9458>
2025-07-29 11:15:07 -04:00
Derek Foreman
f1f482f3d6 av1parse: Set CLL and MDI caps
We already parse the content-light-level and mastering-display-info data
from the stream, so propagate that into caps.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9445>
2025-07-29 11:06:24 +00:00
Derek Foreman
a26983d043 wayland: display: Scale whitepoint the same as the primaries
The whitepoint metadata also needs the same scale factor as the
display_primaries.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9444>
2025-07-29 04:08:52 +00:00
Derek Foreman
e33f89a4bf wayland: window: Name the color management queue
Wayland debugging is easier if we use queue names.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9446>
2025-07-29 00:12:00 +00: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
Julian Bouzas
7411337812 h266parse: Fix typo when finding compatible profiles
This solves some critical errors about not fixed caps with some H266 streams.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>
2025-07-28 23:13:05 +00:00
Julian Bouzas
064d2dedd6 h266parse: Wait for SEI before exposing src caps
Similar to h264parse, this makes sure 'lcevc=false' src caps are not set before
parsing SEI. It is needed for decodebin2 to work properly with the LCEVC decoder.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>
2025-07-28 23:13:05 +00:00
Julian Bouzas
b904ac195f h265parse: Wait for SEI before exposing src caps
Similar to h264parse, this makes sure 'lcevc=false' src caps are not set before
parsing SEI. It is needed for decodebin2 to work properly with the LCEVC decoder.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>
2025-07-28 23:13:05 +00:00
Julian Bouzas
98d3228fc2 codecparsersbad: Accept lcevc=false sink caps
This is needed if the LCEVC enhancement data is part of the video stream as SEI
and the demuxer outputs 'lcevc=false' src caps because LCEVC enhancement data is
not stored as a separate stream in the container.

To clarify, 'lcevc=true' just means that the video buffers have LCEVC metadata
attached. Therefore, it is valid to have a stream with LCEVC enhancement data as
SEI with 'lcevc=false' as long as it is not attached as metadata.

This will be needed once we add support for the demuxer to attach LCEVC metadata
to video buffers if it is stored in a separate track.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>
2025-07-28 23:13:05 +00:00
Nirbheek Chauhan
08db7b9497 ci: Ensure that the docs build is triggered for script changes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9452>
2025-07-29 01:49:32 +05:30
Nirbheek Chauhan
c98d49f13e ci: Fix gst-full breakage due to typos
This broke in 81bdef0150df3306136137a5187dc25a7c5f4aee. Simplify
removal of the plugin from the plugin list if features are listed, and
fix invocation of the script -- it was adding an extra space before
the first plugin filename.

Also ensure that gst-full CI is run when the script changes.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9452>
2025-07-29 01:48:44 +05:30
Nirbheek Chauhan
81bdef0150 gst-full: Fix detection of duplicate plugin entries
Just because a plugin name is a substring of another plugin, doesn't
mean it is the same plugin. If the list of plugins can contain
a filename, that will be a static lib of the form libgstfoo.a

For example, if you had `-p applemedia -e app:appsrc,appsink` then
`applemedia` would be removed from the plugins list.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9442>
2025-07-27 01:36:28 +00:00
Seungha Yang
32e6b47b07 examples: Add d3d12fisheyedewarp test example
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9441>
2025-07-27 01:22:28 +09:00
Seungha Yang
461e3946d4 d3d12: Add support for dewarping fisheye images
Add d3d12fisheyedewarp element that performs fisheye image dewarping
using D3D12. A UV remap LUT texture is generated via a compute shader,
and the actual remapping is performed in a pixel shader using this LUT

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9441>
2025-07-27 01:22:28 +09:00
Nirbheek Chauhan
316473f722 gitignore: Update for latest meson
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9431>
2025-07-26 00:06:37 +00:00
Nirbheek Chauhan
ba73cfd36e gstreamer: Disable C5287 warning on MSVC
```
../subprojects/gstreamer/gst/gstpad.c(3866): warning C5287:
operands are different enum types 'GstQueryType' and 'GstQueryTypeFlags';
use an explicit cast to silence this warning
```

We abuse these enums, and MSVC emits a warning for this specific case:

https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warnings-c5200-through-c5399

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9431>
2025-07-26 00:06:37 +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
Víctor Manuel Jáquez Leal
4a986e611b vaXXXenc: calculate latency with corrected framerate
Fixes: #4558
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9437>
2025-07-25 09:56:50 +00:00
Seungha Yang
0d2157e801 wasapi2: Add continue-on-error property
If enabled, wasapi2src/sink will post a warning message instead of an error,
when device failures occur, such as open failure, I/O error,
or device removal.
The element will continue to produce/consume audio buffers and behave as if
a capture/render device were active, allowing pipeline to keep running even when
no audio endpoint is available

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>
2025-07-24 17:04:53 +00:00
Seungha Yang
37637d9611 wasapi2: Use 48kHz default sample rate
That's most common default value

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>
2025-07-24 17:04:53 +00:00
Seungha Yang
fc861119ed wasapi2deviceprovider: Probe device form factor and enumerator name
Adding form factor and enumerator information to device property struct

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>
2025-07-24 17:04:53 +00:00
Seungha Yang
9dbc7a491e wasapi2: Add support for dynamic device switch
Ringbuffer implementation is re-written to support "device" property
change in playing state

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>
2025-07-24 17:04:53 +00:00
François Laignel
6b32228573 gst-env: only-environment: only dump added and updated vars
By default, `gst-env.py` spawns a new shell with an updated environment
suitable for working with current branch.

The option `only-environment` dumps the resulting environment on `stdout`
without spawing a new shell. This can be used to save it to a file and `source`
it later, possibly from another shell.

However the resulting environment contains all the env vars from the initial
environment, some of which are session, display or DE specific (e.g.
`XAUTHORITY`, `DESKTOP_SESSION`, `WAYLAND_DISPLAY`, ...). This can cause
problems when sourced later.

Reproduction:

1. `gst-env.py --only-environment > env-full`
2. `source env-full`
3. `gst-launch-1.0 videotestsrc ! ximagesink` <= this works
4. Reboot
5. `source env-full`
6. `gst-launch-1.0 videotestsrc ! ximagesink` <= this doesn't work because
   `XAUTHORITY` was overriden with previous value in step 5.

This was initially observed with a Qt application running with the X11 backend.

This commit changes the behaviour of `only-environment` to only dump env vars
that are actually set or modified by `gst-env.py`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8846>
2025-07-24 11:00:07 +02:00
Mathieu Duponchelle
eb4caff16a rtspclientsink: post error message on RTCP timeout
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9124>
2025-07-23 19:20:02 +02:00
Mathieu Duponchelle
17f9d8a18e rtsp-stream-transport: expose new timed-out property
Upon RTCP timeout, rtpsession emits a signal that we catch to set a
timed_out private field, this also exposes it as a property of the
transport in order for users (such as rtspclientsink) to get notified
about it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9124>
2025-07-23 19:20:02 +02: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
Seungha Yang
5325ec41e4 nvencoder: Always allow interlaced stream
... even if hardware does not support interlaced encoding at bitstream level.
Although interlacing information is not written in the bitstream,
that information can be signalled via container, thus allow interlaced
stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9328>
2025-07-22 15:49:04 +00:00
Seungha Yang
4f932ee081 d3d12swapchainsink: Add last-rendered-sample action signal
Add a new action signal to allow applications to capture
the most recently rendered frame directly from the swapchain
back buffer.

Unlike the existing "last-sample" property, which exposes
the raw input sample before any sink-side processing, this
signal captures the final displayed image after any internal
image processing (e.g., UV remap, color balance, overlay) has been
applied.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9423>
2025-07-22 12:02:15 +00:00
Stéphane Cerveau
559dbdecf1 tests: vkh26xenc: use vkvideoencodebase
To avoid duplicating code, use vkvideoencodebase.c

Code cleanup and function clarifications.
Fix leaks in case of multiple device.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9077>
2025-07-22 10:35:16 +00:00
Xavier Claessens
6122c8070f svtjpegxs: Update wrap file
It fixes build with older GCC version.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9426>
2025-07-21 22:43:55 +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
Olivier Crête
d1b00839c3 classifiertensordecoder: Use utility functions to get tensors
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>
2025-07-21 14:49:42 +00:00
Olivier Crête
d1483d6c55 classifiertensordecoder: Handle error cases better with labels file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>
2025-07-21 14:49:42 +00:00
Olivier Crête
fe0d7f249d ssdobjectdetector: Validate tensor type and dimensions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>
2025-07-21 14:49:42 +00:00
Olivier Crête
561e2b28af tensor: Print tensor name in debug name
It makes it easier to understand which one is rejected.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>
2025-07-21 14:49:42 +00:00
Tim-Philipp Müller
15c9bc4d2a unixfd: fix and improve the example pipelines in the documentation
- Add a videoconvert element before the videosink so that the output
  works no matter what format gets negotiated (A444_16LE for me)

- Specify a reasonable video format and size with a capsfilter, so
  we don't default to something silly like A444_16LE @ 240p.

- Add a timeoverlay element, so it's obvious when stoppping/restarting
  the pipeline that the input stream is just picked up again from the
  moment the consumer pipeline is restarted.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9422>
2025-07-18 17:52:42 +01:00
Philippe Normand
990c8b91a9 transcoder: Fix warning/error APIs
The GError pointers were actually not out-parameters. :(

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9407>
2025-07-18 08:02:50 +00:00
Philippe Normand
a03d5bedd3 transcoder: Remove unused priv->bus variable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9407>
2025-07-18 08:02:50 +00:00
Philippe Normand
9babc9a9e5 transcoder: signal-adapter: Fix error/warning details access
The field names were missing in the gst_structure_get() calls...

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9407>
2025-07-18 08:02:50 +00:00
Philippe Normand
e31b1d8859 check: Silence some OpenSSL memory leaks
The OpenSSL version shipping in Fedora 40 leaks memory, the issue is fixed in
F42.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9323>
2025-07-18 00:57:40 +00: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
Jordan Petridis
8ab5e5b7cb ci: Update the kernel version we use with fluster
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9401>
2025-07-17 22:30:37 +00:00