122680 Commits

Author SHA1 Message Date
Mathieu Duponchelle
cde27346fb rtmp2src: don't send window acknowledgement size commands twice
This causes servers such as AWS MediaLive to drop the connection, and
the message flow chart as documented in the "spec" always has the
server sending it first, and the client replying to it on reception of
the Set Peer Bandwidth, which we do since 286a3829b637.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9360>
2025-07-10 09:04:16 +00:00
Mathieu Duponchelle
668ef84171 rtmp2src: fix playback of URIs without a playpath
ffmpeg manages to play RTMP URLs in the form:

```
protocol://servername:port/appname
```

and does not require a second component to the path, adapt our code to
allow using such URLs as `tcUrl`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9360>
2025-07-10 09:04:16 +00:00
Piotr Brzeziński
c43d3900bf vtenc: Fix negotiation failure with profile=main-422-10
Previous version passed just enough data to the parser to detect
main/main-10, but main-422-10 is one of the range extensions profiles.
Those need a few more bits to be accurately detected, and since those
were just uinitialized memory previously, we'd incorrectly end up with
main or main-10 when the encoder was in fact giving us 4:2:2 10bit
output.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9348>
2025-07-10 08:04:45 +00:00
Nirbheek Chauhan
dabb3eb5bd ci: Don't forward default variables to downstream cerbero pipeline
Forward only the specified variables. Fixes an issue where the wrong
images were used for cerbero trigger pipeline jobs.

This list needs to be kept up-to-date whenever the rules: below it
change.

https://docs.gitlab.com/ci/yaml/#triggerforward

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9356>
2025-07-09 21:55:39 +00:00
Nicolas Dufresne
8092669a18 wayland: window: Fix next video info leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9353>
2025-07-09 20:07:38 +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
Nicolas Dufresne
c61b6f76b0 wayland: display: Detect HDR10 metadata feature
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9353>
2025-07-09 20:07:38 +00:00
Nirbheek Chauhan
19a2a158fa soup: Disable range requests when talking to Python's http.server
Python's SimpleHTTP server doesn't add Accept-Ranges and also doesn't
support range requests: https://github.com/python/cpython/issues/86809

According to the spec, this means the server may or may not support
Range requests, but we know that SimpleHTTP server doesn't, so let's
disable it. If they fix it, they will hopefully add an Accept-Ranges
header.

See also: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8505#note_2994060

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9341>
2025-07-09 13:53:57 +00:00
Doug Nazar
160205b483 buffer: Find initial memory block without unnecessary mapping
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9354>
2025-07-09 12:14:52 +00:00
Haihua Hu
4e7df779df v4l2videodec: Fix alternative output format support
Some decoder have the ability to output multiple formats.
This has been supported for a while but stopped working
after commit 77744c3d638. Restore this functionality
by replacing acquired_caps with the new caps.

Fixes #4528

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8674>
2025-07-09 11:08:40 +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
Doug Nazar
d694a38cc3 alsa: free conf cache under valgrind
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9352>
2025-07-09 07:13:06 +00:00
Julian Bouzas
7ad82930e2 h265parse: Parse and attach LCEVC metadata to buffers if present
Similar to h264parse, this patch enhances the element to parse LCEVC enhancement
data from SEI, and attach it to output buffers as GstLcevcMeta. The 'lcevc'
field in the output caps is also set to TRUE or FALSE depending on whether LCEVC
data is present or not.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9335>
2025-07-08 22:36:08 +00:00
Tim-Philipp Müller
24ee088cee Back to development after 1.27.1 2025-07-08 20:00:07 +01:00
Tim-Philipp Müller
1fa56616fb Release 1.27.1 2025-07-08 19:58:12 +01:00
Tim-Philipp Müller
336276be47 gst-plugins-good: update translations 2025-07-08 19:55:11 +01:00
Tim-Philipp Müller
618a193c1d gst-plugins-base: update translations 2025-07-08 19:55:11 +01:00
Tim-Philipp Müller
529ddd0c5f gstreamer: update translations 2025-07-08 19:55:11 +01:00
Nicolas Dufresne
d18dd3fa61 opengl: gldownload: Restore DMABuf support
The download element relied on a fuzzy translation from GStreamer format to a
DRM fourcc, and then all supported modifiers for that fourcc. Since !9306 this
was fixed to only enumerate that way when direct import is used.

Flag direct upload to the transform caps helper, so that we now enumerate all
non-external formats again.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9339>
2025-07-08 15:06:05 +01:00
Nicolas Dufresne
d45864d77c opengl: upload: Fix and improve DRM modifiers direct import
When using direct DMABuf upload, supported DRM formats and modifiers
pairs should be translated to RGBA. Instead of overwriting the translation
to RGBA, which may endup having nothing to override, we introduce a new
flag for the transform helper, so it can do direct translation.

This fixes a regression introduced by !9306, and fixes more negotiations
issues.

Fixes #4525

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9339>
2025-07-08 15:06:05 +01:00
Matthew Waters
4ed83e5973 vulkanfullscreenquad: add locks for synchronisation
Now all API can be accessed from any thread.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9337>
2025-07-08 11:43:13 +00:00
Doug Nazar
f11d258545 cpu-throttling-clock: fix race between async callback and unscheduling
It's possible that the callback is already scheduled to run on another
thread when we unschedule it during dispose and we would then access
a freed object.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:29 +00:00
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