122588 Commits

Author SHA1 Message Date
Daniel Morin
93241e4203 gstvalue: generalize gst_value_is_subset()
- Add case where we have element in subset that are equal to element in
  superset. In this case subset is still a subset if at least one element is a
  subset of the corresponding element in superset.
- clarify gst_value_is_subset inline documentation
- Add helper VALUE_TYPE_SINGLETON (type) to identify GType that represent a
  value that is not a collection.
- Fixed issue in gst_value_is_subset_array_array (<1, 2, 3>, <0, 1, 4, 2, 3>)
  would have returned TRUE because because the alignment of the subset could be
  done multiple times. Now once alignment of set as been done once, everything
  else in the superset need to be a subset of corresponding element without
  interuption. is_subset (<1, 2, 3>, <0, 1, 2, 3>) => TRUE, but is_subset (<1,
  2, 3>, <0, 1, 4, 2, 3>) => FALSE.
- If both array are fixed value and we perform a is_subset on them, both value
  can't be equal to be considered subset. (For consistency with other fixed
  values)
- Define gst_value_subtract (singleton, array) and
  gst_value_subtract (array, singleton), to allow a gst_value_is_subset
  (singleton, array) and gst_value_is_subset (array, singleton). General
  case of gst_value_is_subset (v1, v2) use gst_value_subtract (v1, v2) and
  gst_value_subtract (v2, v1) to evaluate _is_subset(), therefore we need these
  for is_subset() operation that involve singleton and array.

  Note gst_value_subtract (array, array) is not implemented but this case is not
  require by gst_value_is_subset () and as it has a direct handling. Warned if
  the case is used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9220>
2025-07-02 06:46:59 +00:00
Mathieu Duponchelle
39a7e0066c aggregator: add sub_latency_min to pad queue size
It should be possible for a subclass to let data accumulate on any of its input
pads for as long as it has introduced latency.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9320>
2025-07-02 06:11:27 +00:00
Thibault Saunier
c604196306 gl: cocoa: Add navigation event support
Implement keyboard, mouse, and scroll wheel event handling for the
OpenGL Cocoa backend.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9276>
2025-07-02 01:31:16 +00:00
Enock Gomes Neto
cade54e2af qtdemux: Fix incorrect FourCC used when iterating over sbgp atoms
In qtdemux_parse_traf(), the loop over sbgp atoms used FOURCC_sgpd instead
of FOURCC_sbgp when retrieving the next sibling node. This caused the loop
to either terminate early or attempt to parse sgpd atoms as sbgp, leading
to incorrect or incomplete seig group associations.

This fix ensures that all sbgp atoms are properly parsed in sequence.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4511
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9318>
2025-07-01 12:40:33 -03:00
Sebastian Dröge
da2da7711d ci: Update to Rust 1.88 and cargo-c 0.10.14
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9310>
2025-06-30 22:56:04 +00:00
Nicolas Dufresne
b6b6bf9370 opengl: Rename to _private EGL and GLX context header
Both only contains private symbols, clarify this by using a very explicit
name.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9306>
2025-06-30 21:53:55 +00:00
Nicolas Dufresne
7f18dc5411 gl: upload: Fix direct dmabuf transform function
When doing direct dmabuf upload, we rely on the GL stack for doing the color
transformation. The caps we transform from GL to DMABuf are always with a format
of RGBA. Instead of listing all GstVideoFormat and translating them back into
DRM formats, simply list all supported DRM format for the context.

This enable rendering DRM formats that don't have an shader based emulation
implemented such as NV15.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9306>
2025-06-30 21:53:55 +00:00
Nicolas Dufresne
c475088501 gl: context_egl: Add a helper to list all supported fourcc/modifiers
This helper creates a GST_TYPE_LIST of all possible DRM formats that the context
can support. This will be needed to fix support for formats that aren't emulated
using GStreamer shaders.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9306>
2025-06-30 21:53:55 +00:00
Nicolas Dufresne
ef98722709 gl: context_egl: Show all possible translation to GstVideoFormat
The code would simply trace one random format using the DRM fourcc. Instead,
trace the result of translating the pair and skip if there is not match.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9306>
2025-06-30 21:53:55 +00:00
Nicolas Dufresne
475083200d gl: utils: Correct gst/dma caps transformation
The transformation was fuzzy, adding random modifiers to the list. Use the newly
introduce helpers from 1.26 to precisely convert GStreamer formats to a DRM
fourcc and modifier pair and vice-versa.

This fixes support for formats that have a GstVideoFormat value and requires a
modifier.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9306>
2025-06-30 21:53:55 +00:00
Nicolas Dufresne
5e2a4a6d13 v4l2codecs: h265dec: Fail when frame cropping is needed while using DMABuf
It is not possible to do frame cropping when DMABuf caps feature is negotiated.
The VideoInfo size is zero, resulting in empty destination buffers, and video
convert library may not understand what the format actually is.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>
2025-06-30 21:17:16 +00:00
Nicolas Dufresne
e7be87b3de v4l2codecs: h265dec: Avoid cropping for zero top/left alignments
If the conformance window does not requires cropping the top or left of the
window, we can use GstVideoMeta to crop in a zero-copy fashion. If a copy
is needed, the frame copy can also handle it, and is a lot faster.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>
2025-06-30 21:17:16 +00:00
Nicolas Dufresne
0fbd76dd50 v4l2codecs: dec: Remove has_videometa member
Now that the code is properly located, this member is not needed
anymore.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>
2025-06-30 21:17:16 +00:00
Nicolas Dufresne
c7b0b9a816 v4l2codecs: dec: Move copy_frames logic inside decide_allocation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>
2025-06-30 21:17:15 +00: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
55bd9434f3 ges: Fix using freed memory to print prop name
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>
2025-06-30 12:19:19 +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
Doug Nazar
c37a694b1b vc1parser: Fix warning about printing uninitialized variables
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>
2025-06-30 12:19:19 +00:00
Doug Nazar
27a55d9346 proxysrc: Fix order freeing pads
Free pads from bottom of parent tree first else with GST_DEBUG
enabled it would access freed memory printing object info.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>
2025-06-30 12:19:19 +00:00
Doug Nazar
d7e90e5a15 avtpcvfpay: tests: Initialize codec memory
If GST_DEBUG was enabled we would print unintialized memory

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>
2025-06-30 12:19:19 +00:00
Doug Nazar
7bf94c4c46 videodecoder: Print correct frame variable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>
2025-06-30 12:19:19 +00:00
Doug Nazar
b490629528 rtph265pay: Fix valgrind warning about uninitialized usage
Skip NALs less than minimum size of 2.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>
2025-06-30 12:19:19 +00:00
Doug Nazar
6ddb5b4ad9 selector: tests: Fix initialization of segment
If GST_DEBUG is enabled and it dumps the segment, valgrind will warn about
uninitialized memory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>
2025-06-30 12:19:19 +00:00
Doug Nazar
b06c9090a7 gstinfo: tests: Ensure that the target msg is one of the ones seen
If GST_DEBUG is enabled we will get multiple log messages. Signal
success if one of messages is correct.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>
2025-06-30 12:19:19 +00:00
Doug Nazar
4c7b2fe4cc memory: tests: Fix test to ensure all logs are less severe than WARN
If GST_DEBUG is enabled the existing test will fail as it gets INFO
log messages.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>
2025-06-30 12:19:19 +00:00
Doug Nazar
aa71fbd4ae transform: test: TestTransData is not an object
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>
2025-06-30 12:19:19 +00:00
Sebastian Dröge
8711294ea0 analytics: Fix docs of gst_tensor_check_type()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9311>
2025-06-30 11:13:24 +00:00
Robert Mader
7e2b383553 matroskademux: Send tags after seeking
Similar to what qtdemux does in `gst_qtdemux_stream_update_segment()`,
in which case we want to resend tags according to our position.
By setting the changed flag for all stream tags we ensure they will all
be (re-)send as we progrees.

This notably ensures that rotation tags are not lost when video players
finish playback and jump back to the beginning of a video.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8429>
2025-06-30 08:49:21 +00:00
Sebastian Dröge
bebec6d965 analytics: Fix transfer annotations of gst_tensor_check_type()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9293>
2025-06-30 08:00:17 +00:00
Sebastian Dröge
46df60ed1d Revert "streamsynchronizer: Consider streams having received stream-start as waiting"
This reverts commit a1a189c07cb66af06d7047c74f6421bd36e3d66c.

It breaks the uriplaylistbin tests and needs further investigation.

See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4506

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9309>
2025-06-30 09:26:29 +03:00
Tim-Philipp Müller
b0d952ef53 contributing: add section about deletion of merged branches
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9292>
2025-06-28 11:21:44 +00:00
David Maseda Neira
188a9fa7a2 adaptivedemux2: Fixed reverse playback
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9298>
2025-06-27 12:21:51 +00:00
David Monge
d22be5d383 mpegtsmux: fix double free caused by shared PMT descriptor
The PMT descriptor was owned by the stream object but also added to
the descriptors array without copying, leading to a double free and
core dump during cleanup

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9285>
2025-06-27 09:55:33 +00:00
Thibault Saunier
51cbcfbc57 cuda: Lower debug log level on nvrtc compilation failure
We have a fallback to compile with cubin and that compilation failure
might very well not be fatal.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9232>
2025-06-27 09:10:25 +00:00
Matthew Waters
87666a2d3b rtph265pay: add profile-id, tier-flag, and level-id to output rtp caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9300>
2025-06-27 07:36:47 +00:00
David Maseda Neira
73d57329e8 gst-inspect-1.0: Added type info for caps fields
gst-inspect-1.0 now shows the expected GType for each field of the
capabilities on a pad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9270>
2025-06-27 07:00:22 +00:00
He Junyan
eedd01ac3d h266parser: Fix overflow when parsing subpic_level_info
1. non_subpic_layers_fraction, ref_level_idc and ref_level_fraction_minus1
   fields should not have the GST_H266_MAX_SUBLAYERS limitation.
2. Should check max_sublayers_minus1, no more than GST_H266_MAX_SUBLAYERS-1

Fixes ZDI-CAN-27381, CVE-2025-6663

Closes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4503
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9294>
2025-06-26 19:45:05 +01:00
Johan Sternerup
af63e991ec hip: Add missing #ifdef
So that it compiles without gstreamer-gl.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9289>
2025-06-26 11:37:30 +00:00
Sebastian Dröge
d236538d28 gstutils: Mark times array as static to avoid symbol conflict with the POSIX function
It works fine but there can be linker warnings, e.g. with mold.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9288>
2025-06-26 09:22:14 +00:00
Xavier Claessens
472d528ffe audioconvert: Fix setting mix-matrix when input caps changes
When the number of input channels changes, application might have to set
a new mix-matrix. Application must set the new matrix before
audioconvert receives updated caps, otherwise negotiation would fail.
That means it should be allowed to set an invalid mix-matrix until we
receive new caps or next buffer.

This fixes a regression in GStreamer >=1.24.9 caused by:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7363

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9215>
2025-06-26 00:58:05 +00:00
Xavier Claessens
73d5b5b3db audioconvert: Replace g_warning with GST_WARNING_OBJECT
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9215>
2025-06-26 00:58:05 +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
Seungha Yang
e3d0a8d83e d3d12screencapturesrc: Fix OS handle leaks/random crash in WGC mode
Multiple DispatcherQueues per thread seems to be causing OS handle leak
and random crashes were observed. Instead of creating
thread/DispatcherQueue per GstD3D12GraphicsCapture object,
reuse only single thread and DispatcherQueue

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4351
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9153>
2025-06-25 14:30:56 +00:00
Doug Nazar
c15a898742 vkvideoencodeh26x: ensure we call teardown() for each test
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9062>
2025-06-25 10:43:51 +00:00
Doug Nazar
35bceff695 gstrtspsrc: Don't emit error during close if server is EOF
During a graceful close we try to notify the server that we're
finished. There is no reason to consider it an error if the
server has already closed the connection.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9278>
2025-06-25 00:00:57 -04:00
Seungha Yang
67031a508c hip: Add plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>
2025-06-25 01:17:27 +09:00
Seungha Yang
1d6ae8791d hip: Add hipcompositor element
Feature-wise it's the same as cudacompositor

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>
2025-06-25 00:15:55 +09:00