Commit graph

8748 commits

Author SHA1 Message Date
Seungha Yang
bb4d21001f examples: Add example for nvenc extern-cuda-bufferpool property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8516>
2025-02-21 10:10:53 +00:00
Seungha Yang
d17e8707c9 nvencoder: Add extern-cuda-bufferpool property
Add new property to support application allocated GstCudaMemory.

CUDA memory alloc/free is a global device synchronization point
as if launching CUDA kernel on default CUDA stream. To avoid the global
synchronization, we added stream-ordered allocation support
which allocates CUDA memory asynchronously.
However, NVENC does not allow registering the stream-ordered
allocated memory. Thus encoder was allocating normal CUDA
memory in case that input CUDA memory is stream-ordered type.

In this commit, newly introduced property will allow application
to provide encoder with GstCudaBufferPool. Application can
preallocate sufficient amount of CUDA memory in advance
to avoid global device synchronization while pipeline is running.

For now, this pool is used only if input CUDA memory is allocated
via stream-ordered-allocation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8516>
2025-02-21 10:10:53 +00:00
Seungha Yang
700e31d146 cudaconverter: Use stream ordered allocation if requested
... to avoid global device synchronization

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8516>
2025-02-21 10:10:52 +00:00
Seungha Yang
6ef54dd883 cudaconverter: Remove unnecessary CUDA memory allocation
We can pass struct to kernel by value

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8516>
2025-02-21 10:10:52 +00:00
Matthew Waters
9f7fe58054 vkupload: don't require that input memory count matches output memory count
It can very easily not. e.g.

videotestsrc ! video/x-raw,format=NV12 ! identity drop-allocation=true ! \
    vulkanupload ! vulkancolorconvert ! vulkansink

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8530>
2025-02-21 17:22:15 +11:00
Nicolas Dufresne
08e76f993c video: dma-drm: Fix MT2110R/T DRM mapping
The base format for these should be NV15 (10bit) rather then NV12.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8524>
2025-02-20 21:25:03 +00:00
Thibault Saunier
b042085ba4 dots-viewer: Move away from forEach in js
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8521>
2025-02-20 13:50:59 +00:00
Thibault Saunier
ce912c6320 dots-viewer: Remove containing div when removing last dot file from a folder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8521>
2025-02-20 13:50:59 +00:00
Thibault Saunier
0155655854 tracers: dots: Simplify the way we check dot file to be removed
Fixing removing dot files that are in the root directory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8521>
2025-02-20 13:50:59 +00:00
Thibault Saunier
c3bf39e7a4 tracer: Add memory init/free hooks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8510>
2025-02-20 12:48:45 +00:00
Jan Schmidt
ae33acda5d convertframe: Fix video crop meta handling
Cropping parameters were being miscalculated - getting
the output width/height wrong when an x/y crop offset
was given.

Cropping was also incorrectly being applied twice (because at
some point after the convertframe code was written,
`videocrop` also started paying attention to the
GstVideoCropMeta, but not in useful ways for this purpose). Add
a buffer probe to strip the crop meta from the input buffer
so videocrop can do its job correctly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8526>
2025-02-20 10:55:48 +00:00
Michael Olbrich
8d42a7e233 gl: upload: use empty caps if transform_caps returns NULL
transform_caps() from the upload methods can return NULL in some cases, so fall
back to empty caps in that case.

This can happen if "Raw Data" is the currently selected method and new caps with
memory:DMABuf caps feature are negotiated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8514>
2025-02-20 09:43:28 +00:00
Guillaume Desmottes
368492ba88 gstvalue: fix leak in gst_value_deserialize_bytes()
The GValue needs to take ownership.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8515>
2025-02-19 19:12:55 +00:00
Guillaume Desmottes
1b04ec5cb2 gstvalue: fix leak in gst_value_deserialize_g_date_time()
gst_date_time_to_g_date_time() does not take ownership.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8515>
2025-02-19 19:12:55 +00:00
Thibault Saunier
8162b4ec86 audiorate: Take the tolerance into account when filling gaps
The property is defined as:

> The difference between incoming timestamp and next timestamp must exceed
> the given value for audiorate to add or drop samples.

so if the gap duration < tolerance, we should not act.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8498>
2025-02-19 16:32:11 +00:00
Markus Ebner
2171c5d27e gstvorbistag: Add support for lyrics tag
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8513>
2025-02-19 13:10:49 +00:00
Seungha Yang
9baff8e4e0 closedcaption: Add h265ccextractor element
This element will collect closed caption meta from H.265 stream
and output caption buffers in display order

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8500>
2025-02-19 11:10:30 +00:00
Seungha Yang
98e1db8f31 h264ccextractor: Port to GstVecDeque
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8500>
2025-02-19 11:10:30 +00:00
Sebastian Dröge
359183c6a4 mpegts: Rename un-namespaced REG_TO_UINT32 macro
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4226

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8506>
2025-02-19 09:29:28 +00:00
Jan Schmidt
5542e525f5 test-onvif: Re-add mulawenc
Accidentally lost mulawenc from the rtppcmupay case
in the previous commit !8378

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8503>
2025-02-18 15:07:38 +00:00
Edward Hervey
03902c30de mpegts: Update annotations
Specify whether the various functions can return a NULL value

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8466>
2025-02-18 14:05:53 +00:00
Benjamin Gaignard
fab7e43fe2 debugutils: videocodectestsink: Add GBR_10LE as supported pixel format
Add GBR_10LE in the list of supported format of the element.
GBR_10LE is used as output format in Fluster ARGON tests suite.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8502>
2025-02-18 13:01:14 +00:00
Benjamin Gaignard
a50dddeea2 videoparsers: av1: Fix typo in debug log
comsumed -> consumed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8502>
2025-02-18 13:01:13 +00:00
Benjamin Gaignard
2f81d53efc videoparsers: av1: Allow av1parse to parse annexb streams
Let's av1 parser do it job event it receives an annexb stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8502>
2025-02-18 13:01:13 +00:00
Benjamin Gaignard
515e241b38 typefind: Add typefinder for AV1 obu/annexb raw streams
AV1 specification [1] define 2 AV1 raw bitstreams storage
formats without containers:
- OBU in chapiter 5.2
- Annexb in chapiter 11.

Implement a detection function for the both cases mostly
by testing OBU forbidden, type, has_size_field and reserved bits.
For annexb case testing if temporal unit size, frame unit size and
obu length are valid. If they are check that the first OBU is
a temporal delimiter.

[1] https://aomediacodec.github.io/av1-spec/av1-spec.pdf

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8502>
2025-02-18 13:01:13 +00:00
Sebastian Dröge
a4a1de05f1 gstreamer: Fix various gobject-introspection warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8501>
2025-02-18 12:02:55 +00:00
Sebastian Dröge
fb34f63835 uridecodebin3: Don't hold play items lock while activating source items
Activating them can cause messages that call back into the message handler of
uridecodebin3 and take exactly the same lock again.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8215>
2025-02-18 09:14:59 +00:00
Sebastian Dröge
f902f70659 buffer: Mark gst_buffer_extract() size parameter as in-parameter
Otherwise it's considered an out-parameter because of its relationship with
the dest array pointer.

Suggested-by: Sergey Bugaev <bugaevc@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8494>
2025-02-18 08:16:19 +00:00
Matthew Waters
a2320509b4 vkfencecache: call parent release() only after resources have been removed
The parent class will allow the handle to be reused at the end of the function.
If we are still modifying the released fence, then another thread can acquire
the fence while we are still clearing some of its data and produce a data race
or a leaked fence depending on which thread wins.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8491>
2025-02-17 23:28:56 +00:00
Brad Hards
ec679507f6 qtdemux: look up uncompressed component type
This fix handles the case where the order of components in the cmpd box
does not correspond to the order used for a specific track. That
is the case where the uncC component_index values are something
other than 0, 1, 2, 3.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8483>
2025-02-17 16:23:37 +00:00
Olivier Crête
3dc6abbe68 analyticsmeta: Make output struct annotation more explicit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8489>
2025-02-17 15:25:51 +00:00
Olivier Crête
7b6ba90416 analyticsmeta: Avoid crash when adding Mtd with NULL Mtd structure
It's documented that you don't need to get the position of the Mtd
when adding it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8489>
2025-02-17 15:25:50 +00:00
Seungha Yang
a3c45f2848 glupload: Fix for wrongly recognized reconfigure condition
gst_gl_upload_transform_caps() method might return non-fixed
caps (texture-target for example) but priv->out_caps is fixed one
so the former (non-fixed caps) is superset.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8492>
2025-02-17 13:16:46 +00:00
Stéphane Cerveau
7ef98ba41d vulkan: register always vulkansink elements
vulkansink elements were enabled only if
the video extensions were present which
is breaking backward compatibility such as Android
or ios.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8488>
2025-02-17 12:00:17 +00:00
Tim-Philipp Müller
5751a33997 srtp: require libsrtp2, drop support for libsrtp1
Even old old debian stable from 2019 ships with a
recent-enough libsrtp2 version.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8205>
2025-02-17 10:49:59 +00:00
Sebastian Dröge
f6cc65a6bc splitmuxsink: Be less strict about queueing negative durations
In case of temporary backwards timestamps durations can become negative. Instead
of erroring out, simply clip the durations and warn.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8390>
2025-02-17 09:36:00 +00:00
Xavier Claessens
f25668a223 gststructure: Fix deserialization of GStrv
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8438>
2025-02-17 08:31:36 +00:00
Xavier Claessens
e06e977304 gstvalue: Add (de)serialize of G_TYPE_STRV
This allows setting strv properties from gst-launch-1.0, such as uris in
uriplaylistbin.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8438>
2025-02-17 08:31:36 +00:00
Tim-Philipp Müller
5cd582c9c6 libxml2: update wrap to v2.13.5
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Tim-Philipp Müller
46b473f226 glib: update to v2.82.4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Tim-Philipp Müller
85782a06b6 pcre2: update wrap to v10.44
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Tim-Philipp Müller
cb51d065eb sqlite3: update wrap to v3.49.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Tim-Philipp Müller
b4746103f5 freetype: update to v2.13.3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Tim-Philipp Müller
740b9a2760 wayland-protocols: update to v1.40
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Tim-Philipp Müller
72ef471ad9 libsrtp: update wrap to v2.6.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Tim-Philipp Müller
2843397f7d openh264: update wrap to v2.6.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Tim-Philipp Müller
34bc22e5ba expat: update wrap to v2.6.4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Tim-Philipp Müller
1246d277fa fdk-aac: update wrap to v2.0.3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Tim-Philipp Müller
54e49fdd48 libopenjp2: update wrap to v2.5.3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00
Tim-Philipp Müller
a98dfec836 json-glib: update to v1.10.6
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8490>
2025-02-17 06:30:17 +00:00