122708 Commits

Author SHA1 Message Date
Doug Nazar
12c08027b2 meson: Disable flags not compatible with sanitizers if enabled
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:29 +00:00
Doug Nazar
13f3656b7b h266parse: test: Pass correct size argument to va_arg function
sizeof(int) != sizeof (gsize)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:29 +00:00
Doug Nazar
0add16906a analytics: tests: Copy correct size of array to buffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:29 +00:00
Doug Nazar
50a6f31902 decklink: Fix a memory leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:29 +00:00
Doug Nazar
dac375ab7a webrtc: tests: Fix a few memory leaks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:29 +00:00
Doug Nazar
f6cc177dab camerabin: Fix a memory leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:29 +00:00
Doug Nazar
63302342ff splitmuxsrc: Fix a memory leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:29 +00:00
Doug Nazar
03f465a6de videoscale: Fix test for allowed caps
videoscale_get_allowed_caps_for_method() could leave holes in the
returned array, causing the test to skip some caps and not free them.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:29 +00:00
Doug Nazar
3c8cb96826 glviewconvert: Fix a memory leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:29 +00:00
Doug Nazar
1c5430a394 glstereosplit: Fix a leaked event
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:28 +00:00
Doug Nazar
d155aeecb3 tracerutils: Fix a few memory leaks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:28 +00:00
Nirbheek Chauhan
f08635d5fa gst-device-monitor: Fix caps filter splitting
max_tokens=-1 means we will split on `:` in the caps as well, for
example caps features, and then discard those tokens.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9342>
2025-07-08 08:24:48 +00:00
Hanna Weiß
3232e7a948 vulkan: Fix drawing too many triangles in fullscreenquad
was using a index buffer for triangle list but drawn as strip

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9338>
2025-07-07 21:56:50 +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
f86fb556df sdp: Keep profile-level-id in caps
If it is present in the SDP, then keep it in the caps,
it should be equal for it to work.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9031>
2025-07-07 19:51:39 +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
Olivier Crête
5d9abea64c sdpmessage: Try to re-create profile-level-id
Some WebRTC implementations such as Pion are unhappy if the
profile-level-id isn't returned with a compatible profile as the
RFC requires. Let's try to reform it

In practice, the correct way to do this would be to not use caps
intersection, but to instead implement the correct RFC compliant
SDP O/A negotiation of formats.

Include a unit test written by Philippe Normand

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9031>
2025-07-07 19:51:39 +00:00
Olivier Crête
7fb6965ded sdpmessage: Avoid duplicating the extmap when adding multiple codecs
The extmap aren't per-codec in SDP, so if one adds multiple codecs
to the same SDP media, the extmap were duplicated. Look if they are
already present and skip them if they are.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9031>
2025-07-07 19:51:39 +00:00
Seungha Yang
feedb9a769 hipmemorycopy: Use stream associated with buffer
... instead of global device stream. memory object might hold
different stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>
2025-07-07 14:39:54 +00:00
Seungha Yang
c1f023baaf hipconverter: Avoid unnecessary sync
If input and output buffers are running on the same stream,
record event instead of sync

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>
2025-07-07 14:39:54 +00:00
Seungha Yang
7d259c4224 hipmemory: Allow lazy sync
Store recorded hip event and wait for sync later if needed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>
2025-07-07 14:39:54 +00:00
Seungha Yang
e9d96fd4e7 hip: Add GstHipEvent object
hip event handle wrapper object

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>
2025-07-07 14:39:54 +00:00
Seungha Yang
ad942d2627 hip: Use non-default stream
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>
2025-07-07 14:39:54 +00:00
Seungha Yang
b465694957 hip: Add GstHipStream object
Adding hip stream abstraction layer

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>
2025-07-07 14:39:53 +00:00
Doug Nazar
9575de7367 netclientclock: Update gir file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>
2025-07-07 13:01:34 +00:00
Doug Nazar
88314f7706 netclientclock: Add deinitialize function for testing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>
2025-07-07 13:01:34 +00:00
Doug Nazar
15ae6d13f8 tests: appsrc: fix race accessing expected list
Without synchronization, a thread may still see an old value.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>
2025-07-07 13:01:34 +00:00
Doug Nazar
88412c9ebf tests: rtpbin_buffer_list: unref clock after usage
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>
2025-07-07 13:01:34 +00:00
Doug Nazar
50208d6064 netclientclock: test: add delay under valgrind to free clock from cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>
2025-07-07 13:01:34 +00:00
Doug Nazar
c5b9e5dcd5 info: free dwarf cache during shutdown
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>
2025-07-07 13:01:34 +00:00
Doug Nazar
45eef1a000 alphacombine: fix memory leaks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>
2025-07-07 13:01:34 +00:00
Doug Nazar
8873237131 cpu-throttling-clock: free clock when finished
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>
2025-07-07 13:01:34 +00:00
Doug Nazar
6aca08f155 encoding-target: free fullname on failure
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>
2025-07-07 13:01:34 +00:00
Doug Nazar
fdbc6deb39 identity: unref clock after usage
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>
2025-07-07 13:01:34 +00:00
Nirbheek Chauhan
beb07214a5 meson: Update gl-headers wrap
More ergonomic build with -Dauto_features=disabled

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9332>
2025-07-07 12:23:34 +00:00
Nirbheek Chauhan
8571f35b73 python: Allow pygobject to auto-find built modules on Windows
There is no consensus on the upstream MR about how to solve this:

https://gitlab.gnome.org/GNOME/pygobject/-/merge_requests/415

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9332>
2025-07-07 12:23:34 +00:00
Seungha Yang
239a679fbf d3d12screencapture: Add support for monitor add/remove in device provider
Update device list on WM_DISPLAYCHANGE event

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4521
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9330>
2025-07-04 18:47:58 +00:00
Nicolas Dufresne
5c6273d663 Revert "vp9parse: Always default to super-frame"
This reverts commit fd1428d3ebf937d7656c3788df3ef3ff85fecc31.

As reported in #4524, this changes cause regressions. The problem is due to a
bug in how vp9parse interact with parsebin, presenting downstream negotiation of
alignment to work. This revert to being stuck using frame alignment always,
which fortunately works with libvpx, though less efficient.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9329>
2025-07-04 12:53:46 -04:00
Nicolas Dufresne
b77a4b4a97 test: virtme: Disable one of the VP9 SVC test
The virtual driver VISL does not support dynamic resolution changes. Before the
vp9parser fix, the first frame would be decoded and display and the rest
dropped. Though, since we fixed the handling of super frame, that frame is now
dropped, since it is marked DECODE_ONLY. All other frames in that stream can't
be decoded. So no frame gets decoded which leads to an error.

Simply skip this test until visl can handle this type of stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8944>
2025-07-03 20:55:52 -04:00
Nicolas Dufresne
cf1aa3ecc6 vp9parse: Only show the last frame of a super frame
Only the last frame of a super frame should be displayed by default. When
converting from super frame to frame, mark all frames as decode only except the
last one. This fixes vp90-2-22-svc_1280x720_3.ivf conformance test with
stateless decoders such as VA.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8944>
2025-07-03 20:48:12 -04:00
Nicolas Dufresne
d5d47d211e vp9parse: Always default to super-frame
Sort the list of structure before truncating so that we don't prefer
"frame"" alignment over "super-frame" in some cases.

Fixes vp90-2-22-svc_1280x720_3.ivf conformance test when using libvpx based
decoder.

Fixes #4371

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8944>
2025-07-03 20:48:12 -04:00
Nicolas Dufresne
a8f5618d1a vp9parse: Fix typo Aligment vs Alignment
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8944>
2025-07-03 20:48:12 -04:00
Julian Bouzas
3e4c17633e h264parse: Forward LCEVC caps
This makes sure the parser exposes lcevc=true output caps if the demuxer
attached LCEVC data to video frames.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9321>
2025-07-03 13:54:39 +00:00
Víctor Manuel Jáquez Leal
e8ebd6398f examples: vulkan encoder test
Similar as d3d11 and va.

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
9ae93f1a71 gst-docs: update symbols_index.json
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
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