1524 Commits

Author SHA1 Message Date
Nicolas Dufresne
7205433549 video: pool: Fix pool size configuration for DMA DRM
Now that VideoPool accept DMA DRM, it is quite likely that the size does not get
provided in the configuration even if the format have a matching GstVideoFormat.

Fix this by reporting back the minimum expected size in the configuration. This
allows the configuration handshake to succeed.

Fixes regression caused by !9345

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9600>
2025-08-27 15:30:22 +00:00
Robert Mader
c24dc93944 gl: Add support for the NV24 pixel format
For completeness - and because it came in handy while testing the format
in a related context.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9596>
2025-08-24 11:43:23 +02:00
Thibault Saunier
fac2d62054 validate: videorate: Update tests to use fakevideodec and fix race condition
There was a case where we could end up having more buffers on the sinkpads
than what was expected, depending on timings. This ensure that we have a fixed
number of buffers produced by the testsrc, and we play until EOS.

Replace theora encoder/decoder chain with fakevideodec for testing
QoS handling in videorate rate property tests. This simplifies the
test pipeline and removes dependency on theora codecs.

Also adjust test expectations to match RGBA format output from
fakevideodec instead of I420 from theoradec, and limit buffer
counts to make tests more deterministic.

This also fixes the rate we set for 2.0 test as we were actually testing
0.5 there.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>
2025-08-19 17:11:51 +00:00
Thibault Saunier
0b745f67db videorate: Convert input ts to output scale to close segment
Otherwise we compare values that are in two different time scales.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>
2025-08-19 17:11:50 +00:00
Thibault Saunier
e697fe98eb videorate: Bring all timestamp in the runtime scale when applying rate to QoS
Otherwise the timescale won't match and we might end up with totally broken
QoS events.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>
2025-08-19 17:11:50 +00:00
Thibault Saunier
51d43529c3 videorate: Refactor so upstream/downstream time domains are properly decoupled
Refactor the videorate element to properly separate upstream and downstream
time domains when the `rate` property is set.

The previous implementation had issues with time domain conversions when
changing rates, especially during seeks after which we were basically confusing
input and output timestamps.

This also fixes rate changes as we are now tracking the wanted input timestamps
and not confusing them with the output, so this way we do not drop buffers when
the rate is changed while playing, meaning that the related tests have been
fixed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>
2025-08-19 17:11:49 +00:00
Thibault Saunier
242b4fa931 videorate: Handle the case where the base_ts is > qo.timestamp
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>
2025-08-19 17:11:49 +00:00
Thibault Saunier
d21c1f13d1 videorate: Do not fail setting caps on flushing pad
Avoiding to error out when flushing "at the wrong time" for example.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>
2025-08-19 17:11:49 +00:00
Olivier Crête
e37d5b7b74 rtpbasedepayload: Avoid potential use-after free
Clear the pointer after freeing the reference.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9579>
2025-08-19 09:15:03 -04:00
Jan Alexander Steffens (heftig)
e40a037b67 decodebin3: Update stream tags
parsebin does this, so should decodebin3.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9557>
2025-08-18 09:43:39 +00:00
Adrian Perez de Castro
2ebb835381 alsa: Fill in alsa.name for PCM sinks
The device description may be used as the "alsa.name" property, to match
what is done for card devices.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9534>
2025-08-15 20:54:16 +00:00
Adrian Perez de Castro
aae0ed6eb2 alsa: Enumerate output-only PCM sinks
Change the logic to skip only devices which have "Input" as their IOID. The ALSA
Input/Output identifier (IOID) it may be either "Input", "Output", or NULL; with
the latter meaning that the device supports both input and output.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9534>
2025-08-15 20:54:16 +00:00
Adrian Perez de Castro
9c166d6dfa alsa: Check for element types when reconfiguring
Make gst_alsa_device_reconfigure_element() check whether the passed element
type matches that of the device itself before attempting to apply the new
configuration.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9558>
2025-08-14 21:44:59 +03:00
Andrey Khamukhin
e94830c79d videorate: don't hold the reference to the buffer in drop-only mode
Pushing the buffer via gst_pad_push () in transform_ip () function
causes downstream elements to process the buffer with a reference
count > 1. This leads to performance issue if there are downstream
elements which modify the buffer memory.

However, in drop-only mode this reference is not required.

So, let GstBaseTransform push the buffer in drop-only mode.

Fixes #4258

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9532>
2025-08-13 08:47:27 +00:00
Elliot Chen
fd6168709c video: dma-drm: Add P016_LE format map
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9513>
2025-08-11 17:24:15 +00:00
Nirbheek Chauhan
e8e12db5f4 debug: Category init should happen in class_init when possible
plugin_init() will not get called if element/feature registration
happens manually, such as when using linking only specific plugin
features with gstreamer-full. That is possible when plugins contain
static features.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9496>
2025-08-08 11:38:50 +05:30
Sebastian Dröge
8ea031b400 uridecodebin3: Add missing locking and NULL checks when adding URIs to messages
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4559

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9500>
2025-08-06 12:51:54 +00:00
Xavier Claessens
24356c099a audioconvert: Fix regression when using a mix matrix
This fixes regression introduced by commit da3a1011. When a mix matrix
is set, we still want to set the default channel-mask on output caps.

Fixes: #4579

Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9487>
2025-08-06 10:25:51 +00:00
Nirbheek Chauhan
a9f803247f device-monitor: Also accept utf8 in launch lines
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9494>
2025-08-06 07:05:11 +00:00
Nirbheek Chauhan
fe2db9df3d device-monitor: Fix criticals when dumping non-string values
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9494>
2025-08-06 07:05:11 +00:00
Elliot Chen
a1faec5f47 glupload: check the return value when transforming caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9478>
2025-08-04 16:00:31 +00:00
Elliot Chen
a374bd51fb videopool: support parsing dma_drm caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9345>
2025-08-04 12:11:41 +00:00
Jan Schmidt
e653acc200 decodebin3: Don't error out for unknown streams in default selection
If there is only unknown stream-type streams in the current collection
don't post an error straight away. This fixes a problem with RTSP
cameras and legacy upstream collection building, if the first
stream that rtspsrc outputs is the ONVIF metadata track. That
happens often on bandwidth-constrained camera inputs, as the
video and audio will naturally take longer to arrive.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9433>
2025-08-04 06:14:00 +00:00
Nirbheek Chauhan
55f72b1840 gst-device-monitor: Add shell quoting for launch lines
Launch-lines will be pasted into a shell, and `gst_value_serialize()`
yields strings that will likely be interpreted by the shell. For
example:

`gst-launch-1.0 ... ! osxaudiosink unique-id="AppleUSBAudioEngine:BEHRINGER:UMC202HD\ 192k:12345678:1\,2"`

The shell will remove the double-quotes `"` but keep the `\ ` which
means the output of `gst_value_deserialize()` will not be the original
string, and the launch line will not work.

So let's use `gst_value_serialize()` only if the string is non-ASCII,
and if it's ASCII and needs quoting, we do some shell quoting.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9466>
2025-08-02 17:26:58 +05:30
Nirbheek Chauhan
5c14cb882e gst-device-monitor: Don't loop unnecessarily when printing properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9466>
2025-08-02 10:12:22 +00:00
Olivier Crête
4650a7a58f test glfilter: Make sure the meta are not copied twice
This only happens if there are no tags, so we use a custom meta to
check it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6212>
2025-08-01 16:30:01 -04:00
Olivier Crête
14493fa064 Revert "glcolorconvert: should copy metadatas from the incoming buffer"
This reverts commit 199b62570fd201fd67e41af1932d6ae19ead2b76.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6212>
2025-08-01 16:30:01 -04:00
Olivier Crête
7ac6e8e1ec random: Remove historical LICENSE header
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>
2025-08-01 16:00:20 +00:00
Olivier Crête
f88e6781cd AUTHORS: Remove outdated files
They only contained historical contributors, the modern version is
to look at the git logs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>
2025-08-01 16:00:20 +00:00
Olivier Crête
668d54f8fb MAINTAINERS: Update to reflect current maintainership
Instead of listing everyone, just point to GitLab

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>
2025-08-01 16:00:20 +00:00
Olivier Crête
235258259d REQUIREMENTS: Remove outdated doc
They contained information which was completely outdated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>
2025-08-01 16:00:19 +00:00
Nicolas Dufresne
33d0170d6e docs: Update documentation cache for new RGB 10bit support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>
2025-07-31 21:34:35 +00:00
Nicolas Dufresne
6078cee500 opengl: Add opaque 10bit RGB support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>
2025-07-31 21:34:35 +00:00
Nicolas Dufresne
b634094928 video: Add more variants of 10bit RGB formats
Add support for RGB10A2/BGR10x2/RGB10x2.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>
2025-07-31 21:34:35 +00:00
Seungha Yang
ffc3d16983 device-monitor: Use gst_print instead of g_print
Avoid broken stdout output on Windows. Same change was made for
gst-launch in commit 493a3261a9757b5ade7aec289eb07221966f9eed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9467>
2025-07-31 20:12:43 +09:00
Matthew Waters
9522551e1d gl/basesrc: add get_gl_context
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9455>
2025-07-31 02:24:46 +00:00
Matthew Waters
9dca1f4a6f gl/basesrc: support changing caps
Caps may change the framerate used and the frame counting approach for
timestamps, needs to account for this by taking a snapshot of the current frames
and running time to add to all subsequent produced frames.  Code is mostly taken
from videotestsrc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9455>
2025-07-31 02:24:46 +00:00
Jaslo Ziska
b58605ec0d gloverlay: Recompute geometry when caps change
Set geometry_changed when setting caps so that the geometry is
recomputed correctly with the new dimensions.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9434>
2025-07-30 03:07:08 +00:00
Jaslo Ziska
3f99fb7f94 gloverlay: Load texture after stopping and starting again
Set location_has_changed when stopping so that the texture will be
loaded when starting again.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9434>
2025-07-30 03:07:08 +00:00
Nirbheek Chauhan
7788186a30 meson: Pass sysprof=disabled to glib
sysprof cannot be built on Windows, and this causes the build to fail
on Windows.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9438>
2025-07-30 00:21:18 +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
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
618a193c1d gst-plugins-base: 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
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
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